My understanding is that it’s a micro optimization that a rollback is slightly 
more efficient than a commit. I’m not aware of any good arguments against 
defaulting to changed. Would need to ask the zope.sqlalchemy folks for some 
insights. 

- Michael

> On May 2, 2022, at 17:55, Theron Luhn <[email protected]> wrote:
> 
> I’m using a cookiecutter-based Pyramid+zope.sqlalchemy+SQLAlchemy stack.  
> More and more lately I’ve been skipping the ORM and using Core for write 
> operations, and I frequently run into issues where I forget to mark_changed 
> and zope.sqlalchemy ROLLBACKs by default:
> 
>> By default, zope.sqlalchemy puts sessions in an ‘active’ state when they are 
>> first used. ORM write operations automatically move the session into a 
>> ‘changed’ state. This avoids unnecessary database commits. Sometimes it is 
>> necessary to interact with the database directly through SQL. It is not 
>> possible to guess whether such an operation is a read or a write. Therefore 
>> we must manually mark the session as changed when manual SQL statements 
>> write to the DB.
> 
> 
> The docs go on to describe how I can change the behavior to COMMIT by default:
> 
>> If this is a problem you may register the events and tell them to place the 
>> session in the ‘changed’ state initially.
> 
> 
> My question:  Is there any downside to COMMITing by default?  I assume 
> there’s a good reason why the default is to ROLLBACK.  I’m using PostgreSQL, 
> but I’d be interested in hearing about how this affects RDBMSs too.
> 
> — Theron
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "pylons-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/pylons-discuss/598CAFEC-A22F-47E1-8AFE-7B06F29EC5CF%40luhn.com.

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/A6882305-07EA-4A31-9347-142895CF8296%40gmail.com.

Reply via email to