[Sqlalchemy-tickets] Issue #3984: deferred column_property gets set to "expired" state on flush, u
Brought to you by:
zzzeek
From: Michael B. <iss...@bi...> - 2017-05-10 17:47:23
|
New issue 3984: deferred column_property gets set to "expired" state on flush, unconditionally loads on unexpire https://bitbucket.org/zzzeek/sqlalchemy/issues/3984/deferred-column_property-gets-set-to Michael 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) a = Column(Integer) b = Column(Integer) aplusb = column_property( a + b, deferred=True ) e = create_engine("sqlite://", echo=True) Base.metadata.create_all(e) s = Session(e) s.add(A(a=1, b=2)) s.commit() a1 = s.query(A).first() assert 'aplusb' not in a1.__dict__ a1.b = 5 s.flush() s.commit() a1.b assert 'aplusb' not in a1.__dict__ ``` |