Make psql support tab completion of EXECUTE <prepared-statement-name>.

Andreas Karlsson, reviewed by Josh Kupershmidt
This commit is contained in:
Tom Lane 2011-10-23 19:25:34 -04:00
parent 7299778a95
commit 8140c1bcf3
1 changed files with 12 additions and 1 deletions

View File

@ -588,6 +588,11 @@ static const SchemaQuery Query_for_list_of_views = {
" FROM pg_catalog.pg_available_extensions "\
" WHERE substring(pg_catalog.quote_ident(name),1,%d)='%s' AND installed_version IS NULL"
#define Query_for_list_of_prepared_statements \
" SELECT pg_catalog.quote_ident(name) "\
" FROM pg_catalog.pg_prepared_statements "\
" WHERE substring(pg_catalog.quote_ident(name),1,%d)='%s'"
/*
* This is a list of all "things" in Pgsql, which can show up after CREATE or
* DROP; and there is also a query to get a list of them.
@ -1908,7 +1913,8 @@ psql_completion(char *text, int start, int end)
pg_strcasecmp(prev_wd, "ON") == 0)
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_views, NULL);
/* complete CREATE TRIGGER ... EXECUTE with PROCEDURE */
else if (pg_strcasecmp(prev_wd, "EXECUTE") == 0)
else if (pg_strcasecmp(prev_wd, "EXECUTE") == 0 &&
prev2_wd[0] != '\0')
COMPLETE_WITH_CONST("PROCEDURE");
/* CREATE ROLE,USER,GROUP */
@ -2117,6 +2123,11 @@ psql_completion(char *text, int start, int end)
COMPLETE_WITH_LIST(list_ALTERTEXTSEARCH);
}
/* EXECUTE, but not EXECUTE embedded in other commands */
else if (pg_strcasecmp(prev_wd, "EXECUTE") == 0 &&
prev2_wd[0] == '\0')
COMPLETE_WITH_QUERY(Query_for_list_of_prepared_statements);
/* EXPLAIN */
/*