server/querier.py
changeset 6427 c8a5ac2d1eaa
parent 6401 d7f5d873e1b8
child 7027 d3d7ff6ab54c
equal deleted inserted replaced
6426:541659c39f6a 6427:c8a5ac2d1eaa
   600         # set backend on the rql helper, will be used for function checking
   600         # set backend on the rql helper, will be used for function checking
   601         rqlhelper.backend = repo.config.sources()['system']['db-driver']
   601         rqlhelper.backend = repo.config.sources()['system']['db-driver']
   602         self._parse = rqlhelper.parse
   602         self._parse = rqlhelper.parse
   603         self._annotate = rqlhelper.annotate
   603         self._annotate = rqlhelper.annotate
   604         # rql planner
   604         # rql planner
   605         # note: don't use repo.sources, may not be built yet, and also "admin"
   605         if len(repo.sources) < 2:
   606         #       isn't an actual source
       
   607         if len([uri for uri in repo.config.sources() if uri != 'admin']) < 2:
       
   608             from cubicweb.server.ssplanner import SSPlanner
   606             from cubicweb.server.ssplanner import SSPlanner
   609             self._planner = SSPlanner(schema, rqlhelper)
   607             self._planner = SSPlanner(schema, rqlhelper)
   610         else:
   608         else:
   611             from cubicweb.server.msplanner import MSPlanner
   609             from cubicweb.server.msplanner import MSPlanner
   612             self._planner = MSPlanner(schema, rqlhelper)
   610             self._planner = MSPlanner(schema, rqlhelper)
   613         # sql generation annotator
   611         # sql generation annotator
   614         self.sqlgen_annotate = SQLGenAnnotator(schema).annotate
   612         self.sqlgen_annotate = SQLGenAnnotator(schema).annotate
       
   613 
       
   614     def set_planner(self):
       
   615         if len(self._repo.sources) < 2:
       
   616             from cubicweb.server.ssplanner import SSPlanner
       
   617             self._planner = SSPlanner(self.schema, self._repo.vreg.rqlhelper)
       
   618         else:
       
   619             from cubicweb.server.msplanner import MSPlanner
       
   620             self._planner = MSPlanner(self.schema, self._repo.vreg.rqlhelper)
   615 
   621 
   616     def parse(self, rql, annotate=False):
   622     def parse(self, rql, annotate=False):
   617         """return a rql syntax tree for the given rql"""
   623         """return a rql syntax tree for the given rql"""
   618         try:
   624         try:
   619             return self._parse(unicode(rql), annotate=annotate)
   625             return self._parse(unicode(rql), annotate=annotate)