From: Tom Lane Date: Thu, 10 Nov 2011 23:36:55 +0000 (-0500) Subject: Throw nice error if server is too old to support psql's \ef or \sf command. X-Git-Tag: REL9_1_2~31 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=07d5205582daa0a2b1472404f7929536d702e947;p=postgresql Throw nice error if server is too old to support psql's \ef or \sf command. 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 --- diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index 472bcab03b..a451c2b8ea 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -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; @@ -1110,7 +1116,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;