rqlrewrite.py
changeset 8056 8909800a8c51
parent 7879 9aae456abab5
child 8074 a7f76e322659
equal deleted inserted replaced
8055:368d8902e597 8056:8909800a8c51
   205             assert snippetvar in 'SOX'
   205             assert snippetvar in 'SOX'
   206             self.revvarmap[snippetvar] = (selectvar, i)
   206             self.revvarmap[snippetvar] = (selectvar, i)
   207             vi = {}
   207             vi = {}
   208             self.varinfos.append(vi)
   208             self.varinfos.append(vi)
   209             try:
   209             try:
   210                 vi['const'] = typed_eid(selectvar) # XXX gae
   210                 vi['const'] = typed_eid(selectvar)
   211                 vi['rhs_rels'] = vi['lhs_rels'] = {}
   211                 vi['rhs_rels'] = vi['lhs_rels'] = {}
   212             except ValueError:
   212             except ValueError:
   213                 try:
   213                 try:
   214                     vi['stinfo'] = sti = self.select.defined_vars[selectvar].stinfo
   214                     vi['stinfo'] = sti = self.select.defined_vars[selectvar].stinfo
   215                 except KeyError:
   215                 except KeyError:
   658         stmt = self.current_statement()
   658         stmt = self.current_statement()
   659         if node.name in self.revvarmap:
   659         if node.name in self.revvarmap:
   660             selectvar, index = self.revvarmap[node.name]
   660             selectvar, index = self.revvarmap[node.name]
   661             vi = self.varinfos[index]
   661             vi = self.varinfos[index]
   662             if vi.get('const') is not None:
   662             if vi.get('const') is not None:
   663                 return n.Constant(vi['const'], 'Int') # XXX gae
   663                 return n.Constant(vi['const'], 'Int')
   664             return n.VariableRef(stmt.get_variable(selectvar))
   664             return n.VariableRef(stmt.get_variable(selectvar))
   665         vname_or_term = self._get_varname_or_term(node.name)
   665         vname_or_term = self._get_varname_or_term(node.name)
   666         if isinstance(vname_or_term, basestring):
   666         if isinstance(vname_or_term, basestring):
   667             return n.VariableRef(stmt.get_variable(vname_or_term))
   667             return n.VariableRef(stmt.get_variable(vname_or_term))
   668         # shared term
   668         # shared term