816 lhsvar, _, rhsvar, rhsconst = relation_info(relation) |
816 lhsvar, _, rhsvar, rhsconst = relation_info(relation) |
817 # we are sure here to have a lhsvar |
817 # we are sure here to have a lhsvar |
818 assert lhsvar is not None |
818 assert lhsvar is not None |
819 if isinstance(relation.parent, Not) \ |
819 if isinstance(relation.parent, Not) \ |
820 and len(lhsvar.stinfo['relations']) > 1 \ |
820 and len(lhsvar.stinfo['relations']) > 1 \ |
821 and (rhsvar is None or rhsvar._q_invariant): |
821 and (rhsvar is not None and rhsvar._q_invariant): |
822 self._state.done.add(relation.parent) |
822 self._state.done.add(relation.parent) |
823 return '%s IS NULL' % self._inlined_var_sql(lhsvar, relation.r_type) |
823 return '%s IS NULL' % self._inlined_var_sql(lhsvar, relation.r_type) |
824 lhssql = self._inlined_var_sql(lhsvar, relation.r_type) |
824 lhssql = self._inlined_var_sql(lhsvar, relation.r_type) |
825 if rhsconst is not None: |
825 if rhsconst is not None: |
826 return '%s=%s' % (lhssql, rhsconst.accept(self)) |
826 return '%s=%s' % (lhssql, rhsconst.accept(self)) |