diff options
author | Michael Paquier <michael@paquier.xyz> | 2021-12-01 10:50:51 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2021-12-01 10:50:51 +0900 |
commit | 9270778f467dad0d78d3b9e435a89a6039322b2f (patch) | |
tree | 53d13369eaab866c8d6dfe289541c80042a16e6a /src/bin/psql/tab-complete.c | |
parent | 538724fc36e05339ea3734f1b886a67398fce71a (diff) |
Improve psql tab completion for various DROP commands
The following improvements are done:
- Handling of RESTRICT/CASCADE for DROP OWNED, matviews and policies.
- Handling of DROP TRANSFORM
This is a continuation of the work done in 0cd6d3b and f44ceb4.
Author: Ken Kato
Reviewed-by: Asif Rehman
Discussion: https://postgr.es/m/0fafb73f3a0c6bcec817a25ca9d5a853@oss.nttdata.com
Diffstat (limited to 'src/bin/psql/tab-complete.c')
-rw-r--r-- | src/bin/psql/tab-complete.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 630026da2f9..2f412ca3db3 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -3322,12 +3322,16 @@ psql_completion(const char *text, int start, int end) COMPLETE_WITH("VIEW"); else if (Matches("DROP", "MATERIALIZED", "VIEW")) COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_matviews, NULL); + else if (Matches("DROP", "MATERIALIZED", "VIEW", MatchAny)) + COMPLETE_WITH("CASCADE", "RESTRICT"); /* DROP OWNED BY */ else if (Matches("DROP", "OWNED")) COMPLETE_WITH("BY"); else if (Matches("DROP", "OWNED", "BY")) COMPLETE_WITH_QUERY(Query_for_list_of_roles); + else if (Matches("DROP", "OWNED", "BY", MatchAny)) + COMPLETE_WITH("CASCADE", "RESTRICT"); /* DROP TEXT SEARCH */ else if (Matches("DROP", "TEXT", "SEARCH")) @@ -3368,6 +3372,8 @@ psql_completion(const char *text, int start, int end) completion_info_charp = prev2_wd; COMPLETE_WITH_QUERY(Query_for_list_of_tables_for_policy); } + else if (Matches("DROP", "POLICY", MatchAny, "ON", MatchAny)) + COMPLETE_WITH("CASCADE", "RESTRICT"); /* DROP RULE */ else if (Matches("DROP", "RULE", MatchAny)) @@ -3380,6 +3386,21 @@ psql_completion(const char *text, int start, int end) else if (Matches("DROP", "RULE", MatchAny, "ON", MatchAny)) COMPLETE_WITH("CASCADE", "RESTRICT"); + /* DROP TRANSFORM */ + else if (Matches("DROP", "TRANSFORM")) + COMPLETE_WITH("FOR"); + else if (Matches("DROP", "TRANSFORM", "FOR")) + COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_datatypes, NULL); + else if (Matches("DROP", "TRANSFORM", "FOR", MatchAny)) + COMPLETE_WITH("LANGUAGE"); + else if (Matches("DROP", "TRANSFORM", "FOR", MatchAny, "LANGUAGE")) + { + completion_info_charp = prev2_wd; + COMPLETE_WITH_QUERY(Query_for_list_of_languages); + } + else if (Matches("DROP", "TRANSFORM", "FOR", MatchAny, "LANGUAGE", MatchAny)) + COMPLETE_WITH("CASCADE", "RESTRICT"); + /* EXECUTE */ else if (Matches("EXECUTE")) COMPLETE_WITH_QUERY(Query_for_list_of_prepared_statements); |