server/msplanner.py
changeset 5161 a19f22bacedc
parent 5047 ed048e317eae
child 5177 395e1ff018ae
equal deleted inserted replaced
5160:27d4cab5db03 5161:a19f22bacedc
   310         for varname, varobj in self.rqlst.defined_vars.items():
   310         for varname, varobj in self.rqlst.defined_vars.items():
   311             # if variable has an eid specified, we can get its source directly
   311             # if variable has an eid specified, we can get its source directly
   312             # NOTE: use uidrel and not constnode to deal with "X eid IN(1,2,3,4)"
   312             # NOTE: use uidrel and not constnode to deal with "X eid IN(1,2,3,4)"
   313             if varobj.stinfo['uidrel'] is not None:
   313             if varobj.stinfo['uidrel'] is not None:
   314                 rel = varobj.stinfo['uidrel']
   314                 rel = varobj.stinfo['uidrel']
       
   315                 hasrel = len(varobj.stinfo['relations']) > 1
   315                 for const in rel.children[1].get_nodes(Constant):
   316                 for const in rel.children[1].get_nodes(Constant):
   316                     eid = const.eval(self.plan.args)
   317                     eid = const.eval(self.plan.args)
   317                     source = self._session.source_from_eid(eid)
   318                     source = self._session.source_from_eid(eid)
   318                     if not any(source.support_relation(r.r_type)
   319                     if (source is self.system_source
   319                                for r in varobj.stinfo['relations'] if not r is rel):
   320                         or (hasrel and
       
   321                             not any(source.support_relation(r.r_type)
       
   322                                     for r in varobj.stinfo['relations']
       
   323                                     if not r is rel))):
   320                         self._set_source_for_term(self.system_source, varobj)
   324                         self._set_source_for_term(self.system_source, varobj)
   321                     else:
   325                     else:
   322                         self._set_source_for_term(source, varobj)
   326                         self._set_source_for_term(source, varobj)
   323                 continue
   327                 continue
   324             rels = varobj.stinfo['relations']
   328             rels = varobj.stinfo['relations']