rqlrewrite.py
changeset 3720 5376aaadd16b
parent 3689 deb13e88e037
child 3826 0c0c051863cb
equal deleted inserted replaced
3678:29f74716fd70 3720:5376aaadd16b
    30         rqlst = rqlst.stmt
    30         rqlst = rqlst.stmt
    31     eschema = schema.eschema
    31     eschema = schema.eschema
    32     allpossibletypes = {}
    32     allpossibletypes = {}
    33     for solution in solutions:
    33     for solution in solutions:
    34         for varname, etype in solution.iteritems():
    34         for varname, etype in solution.iteritems():
    35             if not varname in newroot.defined_vars or eschema(etype).is_final():
    35             if not varname in newroot.defined_vars or eschema(etype).final:
    36                 continue
    36                 continue
    37             allpossibletypes.setdefault(varname, set()).add(etype)
    37             allpossibletypes.setdefault(varname, set()).add(etype)
    38     for varname in sorted(allpossibletypes):
    38     for varname in sorted(allpossibletypes):
    39         try:
    39         try:
    40             var = newroot.defined_vars[varname]
    40             var = newroot.defined_vars[varname]
   287         aliases = [selectvar]
   287         aliases = [selectvar]
   288         subselect.add_restriction(transformedsnippet.copy(subselect))
   288         subselect.add_restriction(transformedsnippet.copy(subselect))
   289         stinfo = self.varinfo['stinfo']
   289         stinfo = self.varinfo['stinfo']
   290         for rel in stinfo['relations']:
   290         for rel in stinfo['relations']:
   291             rschema = self.schema.rschema(rel.r_type)
   291             rschema = self.schema.rschema(rel.r_type)
   292             if rschema.is_final() or (rschema.inlined and
   292             if rschema.final or (rschema.inlined and
   293                                       not rel in stinfo['rhsrelations']):
   293                                       not rel in stinfo['rhsrelations']):
   294                 self.select.remove_node(rel)
   294                 self.select.remove_node(rel)
   295                 rel.children[0].name = selectvar
   295                 rel.children[0].name = selectvar
   296                 subselect.add_restriction(rel.copy(subselect))
   296                 subselect.add_restriction(rel.copy(subselect))
   297                 for vref in rel.children[1].iget_nodes(n.VariableRef):
   297                 for vref in rel.children[1].iget_nodes(n.VariableRef):