Re: psycopg3 transactions - Mailing list psycopg

From Magnus Hagander
Subject Re: psycopg3 transactions
Date
Msg-id CABUevExE-Ts9C4XECW4USwxMGtte93dezA+0S9akYszHd75guA@mail.gmail.com
Whole thread Raw
In response to Re: psycopg3 transactions  (Karsten Hilbert <Karsten.Hilbert@gmx.net>)
List psycopg
On Sun, Oct 17, 2021 at 12:59 AM Karsten Hilbert <Karsten.Hilbert@gmx.net> wrote:
Am Sun, Oct 17, 2021 at 12:48:40AM +0200 schrieb Karsten Hilbert:

> > https://www.psycopg.org/psycopg3/docs/basic/transactions.html
>
> I am sorry to say this but this concept:
>
>       This way we don’t have to remember to call neither
>       close() nor commit() and the database operation have
>       actually a persistent effect.
>
> seems fundamentally flawed to me in terms of databases.
> Actually changing the content of a database should be a
> conscious decision by program(mer) logic.

I could, perhaps, agree with the *transaction* context
manager being default-commit because:

        - after the context block the transaction has gone away

        - hence what happens inside either failed (auto-rollback)

        - or is to be committed

Not so for the *connection* context manager.

Just to chime in here as well, but this is pretty much what I was trying to say in the thread on Twitter (before I realized I was on this list and should've replied here). I have no problem with the transaction context manager working like that, but for the "connectoin" one it's very strange and it's dangerous in that it behaves differently when it's used as a context manager and when it's not.

--

psycopg by date:

Previous
From: Karsten Hilbert
Date:
Subject: Re: psycopg3 transactions
Next
From: Daniele Varrazzo
Date:
Subject: Re: psycopg3 transactions