[Sqlalchemy-tickets] Issue #3374: negated_contains_or_equals inconsistently uses committed state, n
Brought to you by:
zzzeek
|
From: Mike B. <iss...@bi...> - 2015-04-20 20:54:41
|
New issue 3374: negated_contains_or_equals inconsistently uses committed state, not state attr https://bitbucket.org/zzzeek/sqlalchemy/issue/3374/negated_contains_or_equals-inconsistently Mike Bayer: ``` #!python from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class A(Base): __tablename__ = 'a' id = Column(Integer, primary_key=True) class B(Base): __tablename__ = 'b' id = Column(Integer, primary_key=True) a_id = Column(ForeignKey('a.id')) a = relationship("A") s = Session() stmt = s.query(B).filter(B.a == A(id=7)).statement.compile() print stmt print stmt.params stmt = s.query(B).filter(B.a != A(id=7)).statement.compile() print stmt print stmt.params ``` output: ``` #! SELECT b.id, b.a_id FROM b WHERE :param_1 = b.a_id {u'param_1': 7} SELECT b.id, b.a_id FROM b WHERE b.a_id != :a_id_1 OR b.a_id IS NULL {u'a_id_1': None} ``` because for the latter its pulling from committed state. |