summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2018-02-06 00:40:20 +0000
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2018-02-08 15:00:38 +0000
commit5309da117dd790aaf9dd74b6083638123a383bfa (patch)
tree1a1382e581e413673f54119b86cf2e62a59e26d4
parentc52e49a9daa95ae069e7e804e41f6534d5849ba1 (diff)
downloadpsycopg2-5309da117dd790aaf9dd74b6083638123a383bfa.tar.gz
Autocommit shouldn't change deferrable on servers not supporting it
Regression on unsupported Postgres versions after fixing bug #580
-rw-r--r--psycopg/connection_int.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/psycopg/connection_int.c b/psycopg/connection_int.c
index 3ea5ca3..a60c4a9 100644
--- a/psycopg/connection_int.c
+++ b/psycopg/connection_int.c
@@ -1194,7 +1194,7 @@ conn_set_session(connectionObject *self, int autocommit,
int want_autocommit = autocommit == SRV_STATE_UNCHANGED ?
self->autocommit : autocommit;
- if (deferrable != self->deferrable && self->server_version < 90100) {
+ if (deferrable != SRV_STATE_UNCHANGED && self->server_version < 90100) {
PyErr_SetString(ProgrammingError,
"the 'deferrable' setting is only available"
" from PostgreSQL 9.1");
@@ -1256,7 +1256,7 @@ conn_set_session(connectionObject *self, int autocommit,
goto endlock;
}
}
- if (self->deferrable != STATE_DEFAULT) {
+ if (self->server_version >= 90100 && self->deferrable != STATE_DEFAULT) {
if (0 > pq_set_guc_locked(self,
"default_transaction_deferrable", "default",
&pgres, &error, &_save)) {