server/msplanner.py
branchstable
changeset 6673 5eb2f1f2c277
parent 6654 18d159a2d1ba
child 6758 28b11ecf319b
--- a/server/msplanner.py	Fri Nov 05 09:14:10 2010 +0100
+++ b/server/msplanner.py	Fri Nov 05 09:17:43 2010 +0100
@@ -745,6 +745,15 @@
                                                and self._need_ext_source_access(term, rel):
                                             self.needsplit = True
                                             return
+        else:
+            # remove sources only accessing to constant nodes
+            for source, terms in self._sourcesterms.items():
+                if source is self.system_source:
+                    continue
+                if not any(x for x in terms if not isinstance(x, Constant)):
+                    del self._sourcesterms[source]
+            if len(self._sourcesterms) < 2:
+                self.needsplit = False
 
     @cached
     def _need_ext_source_access(self, var, rel):