equal
deleted
inserted
replaced
36 |
36 |
37 from cubicweb.utils import QueryCache, RepeatList |
37 from cubicweb.utils import QueryCache, RepeatList |
38 from cubicweb.misc.source_highlight import highlight_terminal |
38 from cubicweb.misc.source_highlight import highlight_terminal |
39 from cubicweb.server.rqlannotation import RQLAnnotator, set_qdata |
39 from cubicweb.server.rqlannotation import RQLAnnotator, set_qdata |
40 from cubicweb.server.ssplanner import (READ_ONLY_RTYPES, add_types_restriction, |
40 from cubicweb.server.ssplanner import (READ_ONLY_RTYPES, add_types_restriction, |
41 SSPlanner) |
41 prepare_plan) |
42 from cubicweb.server.edition import EditedEntity |
42 from cubicweb.server.edition import EditedEntity |
43 from cubicweb.statsd_logger import statsd_timeit, statsd_c |
43 from cubicweb.statsd_logger import statsd_timeit, statsd_c |
44 |
44 |
45 ETYPE_PYOBJ_MAP[Binary] = 'Bytes' |
45 ETYPE_PYOBJ_MAP[Binary] = 'Bytes' |
46 |
46 |
471 self.set_schema(schema) |
471 self.set_schema(schema) |
472 |
472 |
473 def set_schema(self, schema): |
473 def set_schema(self, schema): |
474 self.schema = schema |
474 self.schema = schema |
475 self.clear_caches() |
475 self.clear_caches() |
476 # rql planner |
|
477 self._planner = SSPlanner(schema, self._repo.vreg.rqlhelper) |
|
478 |
476 |
479 def clear_caches(self, eids=None, etypes=None): |
477 def clear_caches(self, eids=None, etypes=None): |
480 if eids is None: |
478 if eids is None: |
481 self.rql_cache = RQLCache(self._repo, self.schema) |
479 self.rql_cache = RQLCache(self._repo, self.schema) |
482 else: |
480 else: |
546 if v is None])) |
544 if v is None])) |
547 # make an execution plan |
545 # make an execution plan |
548 plan = self.plan_factory(rqlst, args, cnx) |
546 plan = self.plan_factory(rqlst, args, cnx) |
549 plan.cache_key = cachekey |
547 plan.cache_key = cachekey |
550 plan.rql_query_tracing_token = str(uuid.uuid4()) |
548 plan.rql_query_tracing_token = str(uuid.uuid4()) |
551 self._planner.build_plan(plan) |
549 prepare_plan(plan, self.schema, self._repo.vreg.rqlhelper) |
552 |
550 |
553 query_debug_informations = { |
551 query_debug_informations = { |
554 "rql": rql, |
552 "rql": rql, |
555 "rql_query_tracing_token": plan.rql_query_tracing_token, |
553 "rql_query_tracing_token": plan.rql_query_tracing_token, |
556 "args": args, |
554 "args": args, |