mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-22 17:06:33 +03:00
Revert default_transaction_* to default only if set
When moving from autocommit True -> False reset only the server parameters that were actually specified by psycopg to honour the serssion characteristics.
This commit is contained in:
parent
d7bba865f3
commit
61101888e4
|
@ -1237,17 +1237,21 @@ conn_set_session(connectionObject *self, int autocommit,
|
|||
else if (self->autocommit) {
|
||||
/* we are moving from autocommit to not autocommit, so revert the
|
||||
* characteristics to defaults to let BEGIN do its work */
|
||||
if (0 > pq_set_guc_locked(self,
|
||||
"default_transaction_isolation", "default",
|
||||
&pgres, &error, &_save)) {
|
||||
goto endlock;
|
||||
if (self->isolevel != ISOLATION_LEVEL_DEFAULT) {
|
||||
if (0 > pq_set_guc_locked(self,
|
||||
"default_transaction_isolation", "default",
|
||||
&pgres, &error, &_save)) {
|
||||
goto endlock;
|
||||
}
|
||||
}
|
||||
if (0 > pq_set_guc_locked(self,
|
||||
"default_transaction_read_only", "default",
|
||||
&pgres, &error, &_save)) {
|
||||
goto endlock;
|
||||
if (self->readonly != STATE_DEFAULT) {
|
||||
if (0 > pq_set_guc_locked(self,
|
||||
"default_transaction_read_only", "default",
|
||||
&pgres, &error, &_save)) {
|
||||
goto endlock;
|
||||
}
|
||||
}
|
||||
if (self->server_version >= 90100) {
|
||||
if (self->deferrable != STATE_DEFAULT) {
|
||||
if (0 > pq_set_guc_locked(self,
|
||||
"default_transaction_deferrable", "default",
|
||||
&pgres, &error, &_save)) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user