equal
deleted
inserted
replaced
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) |