Skip to content

Commit 9df8727

Browse files
committed
Add tab completion for ALTER DATABASE RESET
Currently tab completion for ALTER DATABASE RESET shows a list of all configuration parameters that may be set on a database, irrespectively of which parameters are actually set. This patch improves tab completion to offer only parameters that are set. Author: Robins Tharakan Reviewed-By: Tomas Vondra Discussion: https://postgr.es/m/CAEP4nAzqiT6VbVC5r3nq5byLTnPzjniVGzEMpYcnAHQyNzEuaw%40mail.gmail.com
1 parent fc069a3 commit 9df8727

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/bin/psql/tab-complete.in.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,15 @@ static const SchemaQuery Query_for_trigger_of_table = {
10001000
"SELECT datname FROM pg_catalog.pg_database "\
10011001
" WHERE datname LIKE '%s'"
10021002

1003+
#define Query_for_list_of_database_vars \
1004+
"SELECT conf FROM ("\
1005+
" SELECT setdatabase, pg_catalog.split_part(unnest(setconfig),'=',1) conf"\
1006+
" FROM pg_db_role_setting "\
1007+
" ) s, pg_database d "\
1008+
" WHERE s.setdatabase = d.oid "\
1009+
" AND conf LIKE '%s'"\
1010+
" AND d.datname LIKE '%s'"
1011+
10031012
#define Query_for_list_of_tablespaces \
10041013
"SELECT spcname FROM pg_catalog.pg_tablespace "\
10051014
" WHERE spcname LIKE '%s'"
@@ -2320,6 +2329,13 @@ match_previous_words(int pattern_id,
23202329
"IS_TEMPLATE", "ALLOW_CONNECTIONS",
23212330
"CONNECTION LIMIT");
23222331

2332+
/* ALTER DATABASE <name> RESET */
2333+
else if (Matches("ALTER", "DATABASE", MatchAny, "RESET"))
2334+
{
2335+
set_completion_reference(prev2_wd);
2336+
COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_database_vars, "ALL");
2337+
}
2338+
23232339
/* ALTER DATABASE <name> SET TABLESPACE */
23242340
else if (Matches("ALTER", "DATABASE", MatchAny, "SET", "TABLESPACE"))
23252341
COMPLETE_WITH_QUERY(Query_for_list_of_tablespaces);
@@ -4906,7 +4922,9 @@ match_previous_words(int pattern_id,
49064922

49074923
/* SET, RESET, SHOW */
49084924
/* Complete with a variable name */
4909-
else if (TailMatches("SET|RESET") && !TailMatches("UPDATE", MatchAny, "SET"))
4925+
else if (TailMatches("SET|RESET") &&
4926+
!TailMatches("UPDATE", MatchAny, "SET") &&
4927+
!TailMatches("ALTER", "DATABASE", MatchAny, "RESET"))
49104928
COMPLETE_WITH_QUERY_VERBATIM_PLUS(Query_for_list_of_set_vars,
49114929
"CONSTRAINTS",
49124930
"TRANSACTION",

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy