From: Tom Lane Date: Sun, 23 Oct 2011 23:25:34 +0000 (-0400) Subject: Make psql support tab completion of EXECUTE . X-Git-Tag: REL9_2_BETA1~941 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8140c1bcf355c4925114cc127de476384053dc96;p=thirdparty%2Fpostgresql.git Make psql support tab completion of EXECUTE . Andreas Karlsson, reviewed by Josh Kupershmidt --- diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index abf9bc73962..aba9b4b5aac 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -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 */ /*