server/sources/rql2sql.py
branchstable
changeset 5844 df7608ecea29
parent 5793 1faff41593df
child 5849 9db65b381028
child 5887 3f55f0f10a22
--- a/server/sources/rql2sql.py	Tue Jun 22 13:47:35 2010 +0200
+++ b/server/sources/rql2sql.py	Wed Jun 30 18:47:10 2010 +0200
@@ -829,10 +829,11 @@
             # if the rhs variable is only linked to this relation, this mean we
             # only want the relation to exists, eg NOT NULL in case of inlined
             # relation
-            if len(rhsvar.stinfo['relations']) == 1 and rhsvar._q_invariant:
+            if rhsvar._q_invariant:
+                sql = self._extra_join_sql(relation, lhssql, rhsvar)
+                if sql:
+                    return sql
                 return '%s IS NOT NULL' % lhssql
-            if rhsvar._q_invariant:
-                return self._extra_join_sql(relation, lhssql, rhsvar)
         return '%s=%s' % (lhssql, rhsvar.accept(self))
 
     def _process_relation_term(self, relation, rid, termvar, termconst, relfield):