mirror of
https://github.com/postgres/postgres.git
synced 2025-08-05 07:41:25 +03:00
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
This commit is contained in:
@@ -1000,6 +1000,15 @@ static const SchemaQuery Query_for_trigger_of_table = {
|
|||||||
"SELECT datname FROM pg_catalog.pg_database "\
|
"SELECT datname FROM pg_catalog.pg_database "\
|
||||||
" WHERE datname LIKE '%s'"
|
" WHERE datname LIKE '%s'"
|
||||||
|
|
||||||
|
#define Query_for_list_of_database_vars \
|
||||||
|
"SELECT conf FROM ("\
|
||||||
|
" SELECT setdatabase, pg_catalog.split_part(unnest(setconfig),'=',1) conf"\
|
||||||
|
" FROM pg_db_role_setting "\
|
||||||
|
" ) s, pg_database d "\
|
||||||
|
" WHERE s.setdatabase = d.oid "\
|
||||||
|
" AND conf LIKE '%s'"\
|
||||||
|
" AND d.datname LIKE '%s'"
|
||||||
|
|
||||||
#define Query_for_list_of_tablespaces \
|
#define Query_for_list_of_tablespaces \
|
||||||
"SELECT spcname FROM pg_catalog.pg_tablespace "\
|
"SELECT spcname FROM pg_catalog.pg_tablespace "\
|
||||||
" WHERE spcname LIKE '%s'"
|
" WHERE spcname LIKE '%s'"
|
||||||
@@ -2320,6 +2329,13 @@ match_previous_words(int pattern_id,
|
|||||||
"IS_TEMPLATE", "ALLOW_CONNECTIONS",
|
"IS_TEMPLATE", "ALLOW_CONNECTIONS",
|
||||||
"CONNECTION LIMIT");
|
"CONNECTION LIMIT");
|
||||||
|
|
||||||
|
/* ALTER DATABASE <name> RESET */
|
||||||
|
else if (Matches("ALTER", "DATABASE", MatchAny, "RESET"))
|
||||||
|
{
|
||||||
|
set_completion_reference(prev2_wd);
|
||||||
|
COMPLETE_WITH_QUERY_PLUS(Query_for_list_of_database_vars, "ALL");
|
||||||
|
}
|
||||||
|
|
||||||
/* ALTER DATABASE <name> SET TABLESPACE */
|
/* ALTER DATABASE <name> SET TABLESPACE */
|
||||||
else if (Matches("ALTER", "DATABASE", MatchAny, "SET", "TABLESPACE"))
|
else if (Matches("ALTER", "DATABASE", MatchAny, "SET", "TABLESPACE"))
|
||||||
COMPLETE_WITH_QUERY(Query_for_list_of_tablespaces);
|
COMPLETE_WITH_QUERY(Query_for_list_of_tablespaces);
|
||||||
@@ -4906,7 +4922,9 @@ match_previous_words(int pattern_id,
|
|||||||
|
|
||||||
/* SET, RESET, SHOW */
|
/* SET, RESET, SHOW */
|
||||||
/* Complete with a variable name */
|
/* Complete with a variable name */
|
||||||
else if (TailMatches("SET|RESET") && !TailMatches("UPDATE", MatchAny, "SET"))
|
else if (TailMatches("SET|RESET") &&
|
||||||
|
!TailMatches("UPDATE", MatchAny, "SET") &&
|
||||||
|
!TailMatches("ALTER", "DATABASE", MatchAny, "RESET"))
|
||||||
COMPLETE_WITH_QUERY_VERBATIM_PLUS(Query_for_list_of_set_vars,
|
COMPLETE_WITH_QUERY_VERBATIM_PLUS(Query_for_list_of_set_vars,
|
||||||
"CONSTRAINTS",
|
"CONSTRAINTS",
|
||||||
"TRANSACTION",
|
"TRANSACTION",
|
||||||
|
Reference in New Issue
Block a user