server/msplanner.py
branchstable
changeset 6673 5eb2f1f2c277
parent 6654 18d159a2d1ba
child 6758 28b11ecf319b
equal deleted inserted replaced
6672:2008fd2f628c 6673:5eb2f1f2c277
   743                                     for term in terms:
   743                                     for term in terms:
   744                                         if isinstance(term, Variable) \
   744                                         if isinstance(term, Variable) \
   745                                                and self._need_ext_source_access(term, rel):
   745                                                and self._need_ext_source_access(term, rel):
   746                                             self.needsplit = True
   746                                             self.needsplit = True
   747                                             return
   747                                             return
       
   748         else:
       
   749             # remove sources only accessing to constant nodes
       
   750             for source, terms in self._sourcesterms.items():
       
   751                 if source is self.system_source:
       
   752                     continue
       
   753                 if not any(x for x in terms if not isinstance(x, Constant)):
       
   754                     del self._sourcesterms[source]
       
   755             if len(self._sourcesterms) < 2:
       
   756                 self.needsplit = False
   748 
   757 
   749     @cached
   758     @cached
   750     def _need_ext_source_access(self, var, rel):
   759     def _need_ext_source_access(self, var, rel):
   751         if not var._q_invariant:
   760         if not var._q_invariant:
   752             return True
   761             return True