From: | Karsten Hilbert <Karsten(dot)Hilbert(at)gmx(dot)net> |
---|---|
To: | psycopg(at)postgresql(dot)org |
Subject: | Re: 2.7.2 still problem with readonly/autocommit, was: Changing set_session implementation |
Date: | 2017-08-11 13:33:27 |
Message-ID: | 20170811133327.kvwatwdqab6zh3bz@hermes.hilbert.loc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | psycopg |
On Fri, Aug 11, 2017 at 12:34:35PM +0100, Daniele Varrazzo wrote:
> > After this I would assume the connection to be in readwrite
> > mode (per your explanation, psycopg2 would (also) emit a "set
> > default_trans...off" when the last readonly=False is given.
> >
> > However, it does NOT, as the PostgreSQL log snippet shows.
>
> Ok, I see your point, and yes, I think it is a bug.
Thank you very much and I am sorry for being so stubborn ! :-)
> In [9]: cnn.autocommit = False
> [23759] conn_set_session: autocommit 0, isolevel 5, readonly 2, deferrable 2
>
> In [10]: cnn.readonly = True
> [23759] conn_set_session: autocommit 0, isolevel 5, readonly 1, deferrable 2
>
> In [11]: cnn.autocommit = True
> [23759] conn_set_session: autocommit 1, isolevel 5, readonly 1, deferrable 2
>
> In [12]: cnn.readonly = True
> [23759] conn_set_session: autocommit 1, isolevel 5, readonly 1, deferrable 2
>
> The operation in [12] would be idempotent: the code checks that the
> new value is the same of the previous one and bails out early.
That was my suspicion.
> But
> checking the internal state for idempotence when in autocommit is
> wrong: the only state that matters is what's in the server session.
Aha, I understand !
> I'll take a look at the logic of the state switching.
Thanks !
Karsten
--
GPG key ID E4071346 @ eu.pool.sks-keyservers.net
E167 67FD A291 2BEA 73BD 4537 78B9 A9F9 E407 1346
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Raiskup | 2017-08-16 06:24:01 | documentation build failure with python sphinx 1.6.3 |
Previous Message | Daniele Varrazzo | 2017-08-11 11:34:35 | Re: 2.7.2 still problem with readonly/autocommit, was: Changing set_session implementation |