server/querier.py
changeset 9448 3e7cad3967c5
parent 9286 02a491f6fa92
child 9460 a2a0bc984863
equal deleted inserted replaced
9447:0636c4960259 9448:3e7cad3967c5
    34 
    34 
    35 from cubicweb.utils import QueryCache, RepeatList
    35 from cubicweb.utils import QueryCache, RepeatList
    36 from cubicweb.server.rqlannotation import SQLGenAnnotator, set_qdata
    36 from cubicweb.server.rqlannotation import SQLGenAnnotator, set_qdata
    37 from cubicweb.server.ssplanner import READ_ONLY_RTYPES, add_types_restriction
    37 from cubicweb.server.ssplanner import READ_ONLY_RTYPES, add_types_restriction
    38 from cubicweb.server.edition import EditedEntity
    38 from cubicweb.server.edition import EditedEntity
    39 
    39 from cubicweb.server.ssplanner import SSPlanner
    40 
    40 
    41 ETYPE_PYOBJ_MAP[Binary] = 'Bytes'
    41 ETYPE_PYOBJ_MAP[Binary] = 'Bytes'
    42 
    42 
    43 
    43 
    44 def empty_rset(rql, args, rqlst=None):
    44 def empty_rset(rql, args, rqlst=None):
   518         # set backend on the rql helper, will be used for function checking
   518         # set backend on the rql helper, will be used for function checking
   519         rqlhelper.backend = repo.config.sources()['system']['db-driver']
   519         rqlhelper.backend = repo.config.sources()['system']['db-driver']
   520         self._parse = rqlhelper.parse
   520         self._parse = rqlhelper.parse
   521         self._annotate = rqlhelper.annotate
   521         self._annotate = rqlhelper.annotate
   522         # rql planner
   522         # rql planner
   523         if len(repo.sources) < 2:
   523         self._planner = SSPlanner(schema, rqlhelper)
   524             from cubicweb.server.ssplanner import SSPlanner
       
   525             self._planner = SSPlanner(schema, rqlhelper)
       
   526         else:
       
   527             from cubicweb.server.msplanner import MSPlanner
       
   528             self._planner = MSPlanner(schema, rqlhelper)
       
   529         # sql generation annotator
   524         # sql generation annotator
   530         self.sqlgen_annotate = SQLGenAnnotator(schema).annotate
   525         self.sqlgen_annotate = SQLGenAnnotator(schema).annotate
   531 
       
   532     def set_planner(self):
       
   533         if len(self._repo.sources) < 2:
       
   534             from cubicweb.server.ssplanner import SSPlanner
       
   535             self._planner = SSPlanner(self.schema, self._repo.vreg.rqlhelper)
       
   536         else:
       
   537             from cubicweb.server.msplanner import MSPlanner
       
   538             self._planner = MSPlanner(self.schema, self._repo.vreg.rqlhelper)
       
   539 
   526 
   540     def parse(self, rql, annotate=False):
   527     def parse(self, rql, annotate=False):
   541         """return a rql syntax tree for the given rql"""
   528         """return a rql syntax tree for the given rql"""
   542         try:
   529         try:
   543             return self._parse(unicode(rql), annotate=annotate)
   530             return self._parse(unicode(rql), annotate=annotate)