goa/rqlinterpreter.py
branchstable
changeset 3689 deb13e88e037
parent 1977 606923dff11b
child 4212 ab6573088b4a
equal deleted inserted replaced
3688:421fb447ecb2 3689:deb13e88e037
   154 
   154 
   155     def complete_and_filter(self, solutions, results):
   155     def complete_and_filter(self, solutions, results):
   156         myvar = self.rhs.name
   156         myvar = self.rhs.name
   157         ovar = self.var.name
   157         ovar = self.var.name
   158         rtype = self.rtype
   158         rtype = self.rtype
   159         if self.schema.rschema(rtype).is_final():
   159         if self.schema.rschema(rtype).final:
   160             # should be detected by rql.stcheck: "Any C WHERE NOT X attr C" doesn't make sense
   160             # should be detected by rql.stcheck: "Any C WHERE NOT X attr C" doesn't make sense
   161             #if self._not:
   161             #if self._not:
   162             #    raise NotImplementedError()
   162             #    raise NotImplementedError()
   163             for result in results:
   163             for result in results:
   164                 result[myvar] = result[ovar].get('s_'+rtype)
   164                 result[myvar] = result[ovar].get('s_'+rtype)
   593         neged = node.neged(strict=True)
   593         neged = node.neged(strict=True)
   594         if neged:
   594         if neged:
   595             # ok, we *may* process this Not node (not implemented error will be
   595             # ok, we *may* process this Not node (not implemented error will be
   596             # raised later if we can't)
   596             # raised later if we can't)
   597             extra[node.parent] = True
   597             extra[node.parent] = True
   598         if rschema.is_final():
   598         if rschema.final:
   599             self._visit_final_relation(rschema, node, constraints, extra)
   599             self._visit_final_relation(rschema, node, constraints, extra)
   600         elif neged:
   600         elif neged:
   601             self._visit_non_final_neged_relation(rschema, node, constraints)
   601             self._visit_non_final_neged_relation(rschema, node, constraints)
   602         else:
   602         else:
   603             self._visit_non_final_relation(rschema, node, constraints)
   603             self._visit_non_final_relation(rschema, node, constraints)