equal
deleted
inserted
replaced
478 self.set_schema(schema) |
478 self.set_schema(schema) |
479 |
479 |
480 def set_schema(self, schema): |
480 def set_schema(self, schema): |
481 self.schema = schema |
481 self.schema = schema |
482 self.clear_caches() |
482 self.clear_caches() |
483 rqlhelper = self._repo.vreg.rqlhelper |
|
484 self._annotate = rqlhelper.annotate |
|
485 # rql planner |
483 # rql planner |
486 self._planner = SSPlanner(schema, rqlhelper) |
484 self._planner = SSPlanner(schema, self._repo.vreg.rqlhelper) |
487 # sql generation annotator |
485 # sql generation annotator |
488 self.sqlgen_annotate = SQLGenAnnotator(schema).annotate |
486 self.sqlgen_annotate = SQLGenAnnotator(schema).annotate |
489 |
487 |
490 def clear_caches(self, eids=None, etypes=None): |
488 def clear_caches(self, eids=None, etypes=None): |
491 if eids is None: |
489 if eids is None: |
547 # a new syntax tree is built from them. |
545 # a new syntax tree is built from them. |
548 rqlst = rqlst.copy() |
546 rqlst = rqlst.copy() |
549 # Rewrite computed relations |
547 # Rewrite computed relations |
550 rewriter = RQLRelationRewriter(cnx) |
548 rewriter = RQLRelationRewriter(cnx) |
551 rewriter.rewrite(rqlst, args) |
549 rewriter.rewrite(rqlst, args) |
552 self._annotate(rqlst) |
550 self._repo.vreg.rqlhelper.annotate(rqlst) |
553 if args: |
551 if args: |
554 # different SQL generated when some argument is None or not (IS |
552 # different SQL generated when some argument is None or not (IS |
555 # NULL). This should be considered when computing sql cache key |
553 # NULL). This should be considered when computing sql cache key |
556 cachekey += tuple(sorted([k for k, v in args.items() |
554 cachekey += tuple(sorted([k for k, v in args.items() |
557 if v is None])) |
555 if v is None])) |