Okay never mind, the behaviour I observed was due to me loading the objects 
from cache again *after* having changed their attributes - I think. I shall 
post again if I have to revisit this :)

On Wednesday, February 1, 2017 at 12:01:58 PM UTC+1, Denis Krienbühl wrote:
>
> Hi
>
> I'm trying to add a somewhat transparent cache to certain SQLAlchemy 
> objects in my application. Not a general query cache, just a cache for 
> often used objects with a Memcached backend.
>
> This is all working just as expected with one caveat. After loading an 
> object from the cache I merge it back into the session using 
> session.merge(obj, load=False). If I try to make changes to this object 
> through its attributes I noticed that I never see a flush. That is, for 
> merged objects I need to call flush explicitly. Otherwise zope.sqlalchemy 
> which I use in conjunction with SQLAlchemy won't commit the transaction as 
> it uses a flush event to determine if a transaction has anything to commit.
>
> What I find interesting is that objects changed after session.merge(obj, 
> load=*True*) will result in an automatic flush. I'm wondering now if this 
> is intentional and why that would be. I looked through the docs but I can't 
> find anything that explains this behaviour.
>
> Also, if there is some specific reason for this I would be interested to 
> find out if I can somehow distinguish objects loaded through load=False 
> from objects loaded through load=True. I've used sqlalchemy.inspect in this 
> regard to no avail.
>
> Thanks for your input.
>
> Denis
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to