Permalink
Browse files

Throw nice error if server is too old to support psql's \ef or \sf co…

…mmand.

Previously, you'd get "function pg_catalog.pg_get_functiondef(integer) does
not exist", which is at best rather unprofessional-looking.  Back-patch
to 8.4 where \ef was introduced.

Josh Kupershmidt
  • Loading branch information...
tglsfdc committed Nov 10, 2011
1 parent 788cb1c commit 6f3dc00e24aa2a8e7e2c5e5095b6223712b8204c
Showing with 14 additions and 2 deletions.
  1. +14 −2 src/bin/psql/command.c
View
@@ -583,7 +583,13 @@ exec_command(const char *cmd,
{
int lineno = -1;
if (!query_buf)
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);
status = PSQL_CMD_ERROR;
}
else if (!query_buf)
{
psql_error("no query buffer\n");
status = PSQL_CMD_ERROR;
@@ -1115,7 +1121,13 @@ exec_command(const char *cmd,
func_buf = createPQExpBuffer();
func = psql_scan_slash_option(scan_state,
OT_WHOLE_LINE, NULL, true);
if (!func)
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);
status = PSQL_CMD_ERROR;
}
else if (!func)
{
psql_error("function name is required\n");
status = PSQL_CMD_ERROR;

0 comments on commit 6f3dc00

Please sign in to comment.