summaryrefslogtreecommitdiff
path: root/src/bin/psql
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/psql')
-rw-r--r--src/bin/psql/command.c36
-rw-r--r--src/bin/psql/common.c8
-rw-r--r--src/bin/psql/describe.c98
3 files changed, 98 insertions, 44 deletions
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index e210d072f1e..d345f5b9f3d 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -589,8 +589,11 @@ exec_command(const char *cmd,
if (pset.sversion < 80400)
{
- psql_error("The server (version %d.%d) does not support editing function source.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support editing function source.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
status = PSQL_CMD_ERROR;
}
else if (!query_buf)
@@ -1198,8 +1201,11 @@ exec_command(const char *cmd,
OT_WHOLE_LINE, NULL, true);
if (pset.sversion < 80400)
{
- psql_error("The server (version %d.%d) does not support showing function source.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support showing function source.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
status = PSQL_CMD_ERROR;
}
else if (!func)
@@ -1809,22 +1815,21 @@ connection_warnings(bool in_startup)
if (!pset.quiet && !pset.notty)
{
int client_ver = PG_VERSION_NUM;
+ char cverbuf[32];
+ char sverbuf[32];
if (pset.sversion != client_ver)
{
const char *server_version;
- char server_ver_str[16];
/* Try to get full text form, might include "devel" etc */
server_version = PQparameterStatus(pset.db, "server_version");
+ /* Otherwise fall back on pset.sversion */
if (!server_version)
{
- snprintf(server_ver_str, sizeof(server_ver_str),
- "%d.%d.%d",
- pset.sversion / 10000,
- (pset.sversion / 100) % 100,
- pset.sversion % 100);
- server_version = server_ver_str;
+ formatPGVersionNumber(pset.sversion, true,
+ sverbuf, sizeof(sverbuf));
+ server_version = sverbuf;
}
printf(_("%s (%s, server %s)\n"),
@@ -1835,10 +1840,13 @@ connection_warnings(bool in_startup)
printf("%s (%s)\n", pset.progname, PG_VERSION);
if (pset.sversion / 100 > client_ver / 100)
- printf(_("WARNING: %s major version %d.%d, server major version %d.%d.\n"
+ printf(_("WARNING: %s major version %s, server major version %s.\n"
" Some psql features might not work.\n"),
- pset.progname, client_ver / 10000, (client_ver / 100) % 100,
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ pset.progname,
+ formatPGVersionNumber(client_ver, false,
+ cverbuf, sizeof(cverbuf)),
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
#ifdef WIN32
checkWin32Codepage();
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index bd23be5aca6..31fcfbafb38 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -22,6 +22,7 @@
#include "settings.h"
#include "command.h"
#include "copy.h"
+#include "dumputils.h"
#include "mbprint.h"
@@ -926,8 +927,11 @@ SendQuery(const char *query)
{
if (on_error_rollback_warning == false && pset.sversion < 80000)
{
- psql_error("The server (version %d.%d) does not support savepoints for ON_ERROR_ROLLBACK.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support savepoints for ON_ERROR_ROLLBACK.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
on_error_rollback_warning = true;
}
else
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 3465117282a..aad1455e4d8 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -134,8 +134,11 @@ describeTablespaces(const char *pattern, bool verbose)
if (pset.sversion < 80000)
{
- psql_error("The server (version %d.%d) does not support tablespaces.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support tablespaces.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -227,8 +230,11 @@ describeFunctions(const char *functypes, const char *pattern, bool verbose, bool
if (showWindow && pset.sversion < 80400)
{
- psql_error("\\df does not take a \"w\" option with server version %d.%d\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("\\df does not take a \"w\" option with server version %s\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -806,8 +812,11 @@ listDefaultACLs(const char *pattern)
if (pset.sversion < 90000)
{
- psql_error("The server (version %d.%d) does not support altering default privileges.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support altering default privileges.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3187,8 +3196,11 @@ listCollations(const char *pattern, bool verbose, bool showSystem)
if (pset.sversion < 90100)
{
- psql_error("The server (version %d.%d) does not support collations.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support collations.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3318,8 +3330,11 @@ listTSParsers(const char *pattern, bool verbose)
if (pset.sversion < 80300)
{
- psql_error("The server (version %d.%d) does not support full text search.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support full text search.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3551,8 +3566,11 @@ listTSDictionaries(const char *pattern, bool verbose)
if (pset.sversion < 80300)
{
- psql_error("The server (version %d.%d) does not support full text search.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support full text search.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3619,8 +3637,11 @@ listTSTemplates(const char *pattern, bool verbose)
if (pset.sversion < 80300)
{
- psql_error("The server (version %d.%d) does not support full text search.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support full text search.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3687,8 +3708,11 @@ listTSConfigs(const char *pattern, bool verbose)
if (pset.sversion < 80300)
{
- psql_error("The server (version %d.%d) does not support full text search.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support full text search.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3885,8 +3909,11 @@ listForeignDataWrappers(const char *pattern, bool verbose)
if (pset.sversion < 80400)
{
- psql_error("The server (version %d.%d) does not support foreign-data wrappers.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support foreign-data wrappers.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -3965,8 +3992,11 @@ listForeignServers(const char *pattern, bool verbose)
if (pset.sversion < 80400)
{
- psql_error("The server (version %d.%d) does not support foreign servers.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support foreign servers.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -4044,8 +4074,11 @@ listUserMappings(const char *pattern, bool verbose)
if (pset.sversion < 80400)
{
- psql_error("The server (version %d.%d) does not support user mappings.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support user mappings.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -4102,8 +4135,11 @@ listForeignTables(const char *pattern, bool verbose)
if (pset.sversion < 90100)
{
- psql_error("The server (version %d.%d) does not support foreign tables.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support foreign tables.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -4177,8 +4213,11 @@ listExtensions(const char *pattern)
if (pset.sversion < 90100)
{
- psql_error("The server (version %d.%d) does not support extensions.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support extensions.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}
@@ -4231,8 +4270,11 @@ listExtensionContents(const char *pattern)
if (pset.sversion < 90100)
{
- psql_error("The server (version %d.%d) does not support extensions.\n",
- pset.sversion / 10000, (pset.sversion / 100) % 100);
+ char sverbuf[32];
+
+ psql_error("The server (version %s) does not support extensions.\n",
+ formatPGVersionNumber(pset.sversion, false,
+ sverbuf, sizeof(sverbuf)));
return true;
}