# HG changeset patch # User Sylvain Thénault # Date 1245083191 -7200 # Node ID b3f6fa7ad59f5b770043e1fc20312a19073a8ae2 # Parent 6c4a4c514ac2065cc031ad31f53072200c2ed570 add test and fix for queries where all variables are simplified and come from an external source diff -r 6c4a4c514ac2 -r b3f6fa7ad59f server/msplanner.py --- a/server/msplanner.py Mon Jun 15 12:42:48 2009 +0200 +++ b/server/msplanner.py Mon Jun 15 18:26:31 2009 +0200 @@ -352,6 +352,8 @@ if source is self.system_source: for const in vconsts: self._set_source_for_term(source, const) + elif not self._sourcesterms: + self._set_source_for_term(source, const) elif source in self._sourcesterms: source_scopes = frozenset(t.scope for t in self._sourcesterms[source]) for const in vconsts: diff -r 6c4a4c514ac2 -r b3f6fa7ad59f server/test/unittest_msplanner.py --- a/server/test/unittest_msplanner.py Mon Jun 15 12:42:48 2009 +0200 +++ b/server/test/unittest_msplanner.py Mon Jun 15 18:26:31 2009 +0200 @@ -2110,6 +2110,14 @@ []) ]) + def test_fully_simplified_extsource(self): + self.repo._type_source_cache[999998] = ('Note', 'vcs', 999998) + self.repo._type_source_cache[999999] = ('Note', 'vcs', 999999) + self._test('Any X, Y WHERE NOT X multisource_rel Y, X eid 999998, Y eid 999999', + [('OneFetchStep', [('Any 999998,999999 WHERE NOT 999998 multisource_rel 999999', [{}])], + None, None, [self.vcs], {}, []) + ]) + if __name__ == '__main__': from logilab.common.testlib import unittest_main