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
This commit is contained in:
Tom Lane 2011-11-10 18:37:05 -05:00
parent fe3bc4e331
commit 2463f5da3c

View File

@ -492,7 +492,13 @@ exec_command(const char *cmd,
*/
else if (strcmp(cmd, "ef") == 0)
{
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;