server/querier.py
changeset 7141 ef29d3ea3909
parent 7139 20807d3d7cf6
child 7237 9f619715665b
equal deleted inserted replaced
7109:611663348158 7141:ef29d3ea3909
     1 # copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     1 # copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
     3 #
     3 #
     4 # This file is part of CubicWeb.
     4 # This file is part of CubicWeb.
     5 #
     5 #
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
     6 # CubicWeb is free software: you can redistribute it and/or modify it under the
    36 from cubicweb import server, typed_eid
    36 from cubicweb import server, typed_eid
    37 from cubicweb.rset import ResultSet
    37 from cubicweb.rset import ResultSet
    38 
    38 
    39 from cubicweb.server.utils import cleanup_solutions
    39 from cubicweb.server.utils import cleanup_solutions
    40 from cubicweb.server.rqlannotation import SQLGenAnnotator, set_qdata
    40 from cubicweb.server.rqlannotation import SQLGenAnnotator, set_qdata
    41 from cubicweb.server.ssplanner import READ_ONLY_RTYPES, add_types_restriction, EditedEntity
    41 from cubicweb.server.ssplanner import READ_ONLY_RTYPES, add_types_restriction
       
    42 from cubicweb.server.edition import EditedEntity
    42 from cubicweb.server.session import security_enabled
    43 from cubicweb.server.session import security_enabled
    43 
    44 
    44 def empty_rset(rql, args, rqlst=None):
    45 def empty_rset(rql, args, rqlst=None):
    45     """build an empty result set object"""
    46     """build an empty result set object"""
    46     return ResultSet([], rql, args, rqlst=rqlst)
    47     return ResultSet([], rql, args, rqlst=rqlst)
   351                     if not lcheckdef:
   352                     if not lcheckdef:
   352                         continue
   353                         continue
   353                     myrqlst = select.copy(solutions=lchecksolutions)
   354                     myrqlst = select.copy(solutions=lchecksolutions)
   354                     myunion.append(myrqlst)
   355                     myunion.append(myrqlst)
   355                     # in-place rewrite + annotation / simplification
   356                     # in-place rewrite + annotation / simplification
   356                     lcheckdef = [((var, 'X'), rqlexprs) for var, rqlexprs in lcheckdef]
   357                     lcheckdef = [({var: 'X'}, rqlexprs) for var, rqlexprs in lcheckdef]
   357                     rewrite(myrqlst, lcheckdef, lchecksolutions, self.args)
   358                     rewrite(myrqlst, lcheckdef, lchecksolutions, self.args)
   358                     add_noinvariant(noinvariant, restricted, myrqlst, nbtrees)
   359                     add_noinvariant(noinvariant, restricted, myrqlst, nbtrees)
   359                 if () in localchecks:
   360                 if () in localchecks:
   360                     select.set_possible_types(localchecks[()])
   361                     select.set_possible_types(localchecks[()])
   361                     add_types_restriction(self.schema, select)
   362                     add_types_restriction(self.schema, select)