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

Commit656fe39

Browse files
committed
Conditionally output the server version number in psql if it doesn't
exactly match the client version number, and warn about major versionmismatches.
1 parente8f3541 commit656fe39

File tree

1 file changed

+43
-5
lines changed

1 file changed

+43
-5
lines changed

‎src/bin/psql/startup.c

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*
44
* Copyright (c) 2000-2005, PostgreSQL Global Development Group
55
*
6-
* $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.120 2005/07/25 17:17:41 momjian Exp $
6+
* $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.121 2005/09/05 13:59:08 momjian Exp $
77
*/
88
#include"postgres_fe.h"
99

@@ -312,13 +312,51 @@ main(int argc, char *argv[])
312312

313313
if (!QUIET()&& !pset.notty)
314314
{
315-
printf(_("Welcome to %s %s, the PostgreSQL interactive terminal.\n\n"
316-
"Type: \\copyright for distribution terms\n"
315+
/*
316+
*Server value for 8.12 is 80102.
317+
*This code does not handle release numbers like
318+
*8.112. (Is that 8.1, version 12, or 8.11, version 2?
319+
*/
320+
intclient_ver_major_int=atoi(PG_VERSION)*100+
321+
strchr(PG_VERSION,'.')[1]-'0';
322+
intclient_ver_int=atoi(PG_VERSION)*10000+
323+
(strchr(PG_VERSION,'.')[1]-'0')*100+
324+
(isdigit(strchr(PG_VERSION,'.')[2]) ?
325+
strchr(PG_VERSION,'.')[2]-'0' :'\0');
326+
327+
if (pset.sversion /100!=client_ver_major_int)
328+
{
329+
printf(_("WARNING: You are connected to a server with major version %d.%d,\n"
330+
"but your %s client is major version %d.%d. Informational backslash\n"
331+
"commands, like \\d, might not work properly.\n\n"),
332+
pset.sversion /10000, (pset.sversion /100) %10,
333+
pset.progname,atoi(PG_VERSION),strchr(PG_VERSION,'.')[1]-'0');
334+
}
335+
336+
if (pset.sversion!=client_ver_int)
337+
{
338+
charserver_ver_str[16];
339+
340+
snprintf(server_ver_str,16,"%d.%c%c",pset.sversion /10000,
341+
(pset.sversion /100) %10+'0',
342+
/* print last digit? */
343+
(pset.sversion %10!=0) ?
344+
pset.sversion %10+'0' :'\0');
345+
346+
printf(_("Welcome to %s, the PostgreSQL interactive terminal.\n"),
347+
pset.progname);
348+
printf(_("%s version %s, server version %s\n\n"),
349+
pset.progname,PG_VERSION,server_ver_str);
350+
}
351+
else
352+
printf(_("Welcome to %s %s, the PostgreSQL interactive terminal.\n\n"),
353+
pset.progname,PG_VERSION);
354+
355+
printf(_("Type: \\copyright for distribution terms\n"
317356
" \\h for help with SQL commands\n"
318357
" \\? for help with psql commands\n"
319358
" \\g or terminate with semicolon to execute query\n"
320-
" \\q to quit\n\n"),
321-
pset.progname,PG_VERSION);
359+
" \\q to quit\n\n"));
322360
#ifdefUSE_SSL
323361
printSSLInfo();
324362
#endif

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp