diff options
Diffstat (limited to 'src/bin/psql/common.c')
-rw-r--r-- | src/bin/psql/common.c | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 1b224bf9e42..ec975c3e2a5 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -1200,7 +1200,6 @@ SendQuery(const char *query) bool OK = false; int i; bool on_error_rollback_savepoint = false; - static bool on_error_rollback_warning = false; if (!pset.db) { @@ -1264,28 +1263,16 @@ SendQuery(const char *query) (pset.cur_cmd_interactive || pset.on_error_rollback == PSQL_ERROR_ROLLBACK_ON)) { - if (on_error_rollback_warning == false && pset.sversion < 80000) - { - char sverbuf[32]; - - pg_log_warning("The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK.", - formatPGVersionNumber(pset.sversion, false, - sverbuf, sizeof(sverbuf))); - on_error_rollback_warning = true; - } - else + results = PQexec(pset.db, "SAVEPOINT pg_psql_temporary_savepoint"); + if (PQresultStatus(results) != PGRES_COMMAND_OK) { - results = PQexec(pset.db, "SAVEPOINT pg_psql_temporary_savepoint"); - if (PQresultStatus(results) != PGRES_COMMAND_OK) - { - pg_log_info("%s", PQerrorMessage(pset.db)); - ClearOrSaveResult(results); - ResetCancelConn(); - goto sendquery_cleanup; - } + pg_log_info("%s", PQerrorMessage(pset.db)); ClearOrSaveResult(results); - on_error_rollback_savepoint = true; + ResetCancelConn(); + goto sendquery_cleanup; } + ClearOrSaveResult(results); + on_error_rollback_savepoint = true; } if (pset.gdesc_flag) |