Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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

+19-1
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)