mirror of
https://github.com/postgres/postgres.git
synced 2025-08-12 15:23:02 +03:00
Fix pg_dump/pg_restore's ExecuteSqlCommand() to behave suitably if PQexec
returns NULL instead of a PGresult. The former coding would fail, which is OK, but it neglected to give you the PQerrorMessage that might tell you why. In the oldest branches, there was another problem: it'd sometimes report PQerrorMessage from the wrong connection.
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
* Implements the basic DB functions used by the archiver.
|
* Implements the basic DB functions used by the archiver.
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.61.4.3 2006/02/09 18:28:43 tgl Exp $
|
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.61.4.4 2008/08/16 02:25:30 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@@ -309,8 +309,6 @@ _executeSqlCommand(ArchiveHandle *AH, PGconn *conn, PQExpBuffer qry, char *desc)
|
|||||||
|
|
||||||
/* fprintf(stderr, "Executing: '%s'\n\n", qry->data); */
|
/* fprintf(stderr, "Executing: '%s'\n\n", qry->data); */
|
||||||
res = PQexec(conn, qry->data);
|
res = PQexec(conn, qry->data);
|
||||||
if (!res)
|
|
||||||
die_horribly(AH, modulename, "%s: no result from server\n", desc);
|
|
||||||
|
|
||||||
if (PQresultStatus(res) != PGRES_COMMAND_OK && PQresultStatus(res) != PGRES_TUPLES_OK)
|
if (PQresultStatus(res) != PGRES_COMMAND_OK && PQresultStatus(res) != PGRES_TUPLES_OK)
|
||||||
{
|
{
|
||||||
@@ -332,8 +330,7 @@ _executeSqlCommand(ArchiveHandle *AH, PGconn *conn, PQExpBuffer qry, char *desc)
|
|||||||
errStmt[DB_MAX_ERR_STMT - 1] = '\0';
|
errStmt[DB_MAX_ERR_STMT - 1] = '\0';
|
||||||
}
|
}
|
||||||
warn_or_die_horribly(AH, modulename, "%s: %s Command was: %s\n",
|
warn_or_die_horribly(AH, modulename, "%s: %s Command was: %s\n",
|
||||||
desc, PQerrorMessage(AH->connection),
|
desc, PQerrorMessage(conn), errStmt);
|
||||||
errStmt);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user