If never present in __dict__, why does it need to be marked as expired after an insert or update? If not in __dict__ and referenced, isn't won't it load as whether or not it is marked as expired?
On Wed, May 10, 2017 at 1:48 PM, mike bayer <mike...@zzzcomputing.com> wrote: > nevermind, the issue is at > > https://bitbucket.org/zzzeek/sqlalchemy/issues/3984/deferred > -column_property-gets-set-to > > the fix is not as obvious as that, that particular check is assuming a > column_property() where its value was never present in __dict__ in the > first place, so it needs to be marked "expired". > > > On 05/10/2017 01:38 PM, Kent wrote: > >> The regular columns seem to expire and reload properly without issue. >> (Is that what you're asking?) >> >> You want me to submit a PR changing: >> >> if p.expire_on_flush or p.key*not*in state.dict >> >> to >> >> if p.expire_on_flush*and*p.key in state.dict* >> * >> >> >> ? >> >> (If so, which branch?) >> >> >> On Wednesday, May 10, 2017 at 12:55:45 PM UTC-4, Mike Bayer wrote: >> >> so you can confirm this is only for custom SQL + column_property(), >> not >> a regular column right? definitely a bug for 1.2 if you can post it >> up >> >> >> On 05/10/2017 12:37 PM, Kent wrote: >> > I'm thinking that should be >> > *"if p.expire_on_flush and p.key in state.dict"* >> > >> > >> > On Wednesday, May 10, 2017 at 11:35:30 AM UTC-4, Kent wrote: >> > >> > deferred column_properties may be less-efficient subquery >> selects >> > (and thus marked deferred). When a flush occurs that updates >> an >> > object, any read-only column_properties are marked as >> expired, even >> > if they weren't even loaded. This means if the object needs >> to be >> > refreshed, all these deferred column properties are loaded. >> > >> > We probably want the behavior to only expire read-only >> attributes >> > that were actually loaded, right? >> > >> > See attached script. This behavior is as of 1.1.1 >> > >> > Thoughts? >> > >> > >> > -- >> > SQLAlchemy - >> > The Python SQL Toolkit and Object Relational Mapper >> > >> > http://www.sqlalchemy.org/ >> > >> > To post example code, please provide an MCVE: Minimal, Complete, >> and >> > Verifiable Example. See http://stackoverflow.com/help/mcve >> <http://stackoverflow.com/help/mcve> for a full >> > description. >> > --- >> > You received this message because you are subscribed to the Google >> > Groups "sqlalchemy" group. >> > To unsubscribe from this group and stop receiving emails from it, >> send >> > an email to sqlalchemy+...@googlegroups.com <javascript:> >> > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. >> > To post to this group, send email to sqlal...@googlegroups.com >> <javascript:> >> > <mailto:sqlal...@googlegroups.com <javascript:>>. >> > Visit this group at https://groups.google.com/group/sqlalchemy >> <https://groups.google.com/group/sqlalchemy>. >> > For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. >> >> -- >> SQLAlchemy - >> The Python SQL Toolkit and Object Relational Mapper >> >> http://www.sqlalchemy.org/ >> >> To post example code, please provide an MCVE: Minimal, Complete, and >> Verifiable Example. See http://stackoverflow.com/help/mcve for a full >> description. >> --- >> You received this message because you are subscribed to the Google Groups >> "sqlalchemy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sqlalchemy+unsubscr...@googlegroups.com <mailto: >> sqlalchemy+unsubscr...@googlegroups.com>. >> To post to this group, send email to sqlalchemy@googlegroups.com <mailto: >> sqlalchemy@googlegroups.com>. >> Visit this group at https://groups.google.com/group/sqlalchemy. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- You received this message because you are subscribed to a topic in the > Google Groups "sqlalchemy" group. > To unsubscribe from this topic, visit https://groups.google.com/d/to > pic/sqlalchemy/g0QVQ6RbxNU/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.