cubicweb/server/querier.py
changeset 12496 ad995a9905f9
parent 12495 23081860ea60
child 12508 a8c1ea390400
equal deleted inserted replaced
12495:23081860ea60 12496:ad995a9905f9
   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]))