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