Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdd81eee

Browse files
committed
Use libpq's new logic to get the server version, instead of doing it ourselves.
1 parente92dc1e commitdd81eee

File tree

2 files changed

+16
-26
lines changed

2 files changed

+16
-26
lines changed

‎src/bin/pg_dump/pg_backup_db.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*Implements the basic DB functions used by the archiver.
66
*
77
* IDENTIFICATION
8-
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.47 2003/05/14 03:26:02 tgl Exp $
8+
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_db.c,v 1.48 2003/06/22 00:56:58 tgl Exp $
99
*
1010
*-------------------------------------------------------------------------
1111
*/
@@ -53,29 +53,23 @@ _parse_version(ArchiveHandle *AH, const char *versionString)
5353
staticvoid
5454
_check_database_version(ArchiveHandle*AH,boolignoreVersion)
5555
{
56-
PGresult*res;
5756
intmyversion;
5857
constchar*remoteversion_str;
5958
intremoteversion;
60-
PGconn*conn=AH->connection;
6159

6260
myversion=_parse_version(AH,PG_VERSION);
6361

64-
res=PQexec(conn,"SELECT version();");
65-
if (!res||
66-
PQresultStatus(res)!=PGRES_TUPLES_OK||
67-
PQntuples(res)!=1)
68-
die_horribly(AH,modulename,"could not get version from server: %s",PQerrorMessage(conn));
69-
70-
remoteversion_str=PQgetvalue(res,0,0);
71-
remoteversion=_parse_version(AH,remoteversion_str+11);
62+
remoteversion_str=PQparameterStatus(AH->connection,"server_version");
63+
if (!remoteversion_str)
64+
die_horribly(AH,modulename,"could not get server_version from libpq\n");
7265

73-
PQclear(res);
66+
remoteversion=_parse_version(AH,remoteversion_str);
7467

7568
AH->public.remoteVersion=remoteversion;
7669

7770
if (myversion!=remoteversion
78-
&& (remoteversion<AH->public.minRemoteVersion||remoteversion>AH->public.maxRemoteVersion))
71+
&& (remoteversion<AH->public.minRemoteVersion||
72+
remoteversion>AH->public.maxRemoteVersion))
7973
{
8074
write_msg(NULL,"server version: %s; %s version: %s\n",
8175
remoteversion_str,progname,PG_VERSION);

‎src/bin/pg_dump/pg_dumpall.c

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Portions Copyright (c) 1994, Regents of the University of California
77
*
88
*
9-
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.21 2003/06/11 05:13:11 momjian Exp $
9+
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.22 2003/06/22 00:56:58 tgl Exp $
1010
*
1111
*-------------------------------------------------------------------------
1212
*/
@@ -701,7 +701,7 @@ connectDatabase(const char *dbname, const char *pghost, const char *pgport,
701701
PGconn*conn;
702702
char*password=NULL;
703703
boolneed_pass= false;
704-
PGresult*res;
704+
constchar*remoteversion_str;
705705

706706
if (require_password)
707707
password=simple_prompt("Password: ",100, false);
@@ -745,23 +745,19 @@ connectDatabase(const char *dbname, const char *pghost, const char *pgport,
745745
exit(1);
746746
}
747747

748-
res=executeQuery(conn,"SELECT version();");
749-
if (PQntuples(res)!=1)
748+
remoteversion_str=PQparameterStatus(conn,"server_version");
749+
if (!remoteversion_str)
750750
{
751751
fprintf(stderr,_("%s: could not get server version\n"),progname);
752752
exit(1);
753753
}
754-
else
754+
server_version=parse_version(remoteversion_str);
755+
if (server_version<0)
755756
{
756-
char*val=PQgetvalue(res,0,0);
757-
server_version=parse_version(val+strcspn(val,"0123456789"));
758-
if (server_version<0)
759-
{
760-
fprintf(stderr,_("%s: could not parse server version \"%s\"\n"),progname,val);
761-
exit(1);
762-
}
757+
fprintf(stderr,_("%s: could not parse server version \"%s\"\n"),
758+
progname,remoteversion_str);
759+
exit(1);
763760
}
764-
PQclear(res);
765761

766762
returnconn;
767763
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp