psql: Add tab completion for VACUUM and ANALYZE ... ONLY option.
Improve psql's tab completion for VACUUM and ANALYZE by supporting the ONLY option introduced in 62ddf7ee9. In passing, simplify some of the VACUUM patterns by making use of MatchAnyN. Author: Umar Hayat <postgresql.wizard@gmail.com> Reviewed-by: Vignesh C <vignesh21@gmail.com> Reviewed-by: Ilia Evdokimov <ilya.evdokimov@tantorlabs.com> Discussion: https://postgr.es/m/CAD68Dp3L6yW_nWs+MWBs6s8tKLRzXaQdQgVRm4byZe0L-hRD8g@mail.gmail.com
This commit is contained in:
parent
2817525f0d
commit
8a3e4011f0
@ -3069,12 +3069,15 @@ match_previous_words(int pattern_id,
|
||||
COMPLETE_WITH_QUERY(Query_for_list_of_roles);
|
||||
|
||||
/*
|
||||
* ANALYZE [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
|
||||
* ANALYZE [ VERBOSE ] [ table_and_columns [, ...] ]
|
||||
* ANALYZE [ ( option [, ...] ) ] [ [ ONLY ] table_and_columns [, ...] ]
|
||||
* ANALYZE [ VERBOSE ] [ [ ONLY ] table_and_columns [, ...] ]
|
||||
*/
|
||||
else if (Matches("ANALYZE"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_analyzables,
|
||||
"VERBOSE");
|
||||
"(", "VERBOSE", "ONLY");
|
||||
else if (Matches("ANALYZE", "VERBOSE"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_analyzables,
|
||||
"ONLY");
|
||||
else if (HeadMatches("ANALYZE", "(*") &&
|
||||
!HeadMatches("ANALYZE", "(*)"))
|
||||
{
|
||||
@ -5128,30 +5131,35 @@ match_previous_words(int pattern_id,
|
||||
COMPLETE_WITH("OPTIONS");
|
||||
|
||||
/*
|
||||
* VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
|
||||
* VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ table_and_columns [, ...] ]
|
||||
* VACUUM [ ( option [, ...] ) ] [ [ ONLY ] table_and_columns [, ...] ]
|
||||
* VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ [ ONLY ] table_and_columns [, ...] ]
|
||||
*/
|
||||
else if (Matches("VACUUM"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_vacuumables,
|
||||
"(",
|
||||
"FULL",
|
||||
"FREEZE",
|
||||
"VERBOSE",
|
||||
"ANALYZE",
|
||||
"VERBOSE");
|
||||
"ONLY");
|
||||
else if (Matches("VACUUM", "FULL"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_vacuumables,
|
||||
"FREEZE",
|
||||
"VERBOSE",
|
||||
"ANALYZE",
|
||||
"VERBOSE");
|
||||
else if (Matches("VACUUM", "FREEZE") ||
|
||||
Matches("VACUUM", "FULL", "FREEZE"))
|
||||
"ONLY");
|
||||
else if (Matches("VACUUM", MatchAnyN, "FREEZE"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_vacuumables,
|
||||
"VERBOSE",
|
||||
"ANALYZE");
|
||||
else if (Matches("VACUUM", "VERBOSE") ||
|
||||
Matches("VACUUM", "FULL|FREEZE", "VERBOSE") ||
|
||||
Matches("VACUUM", "FULL", "FREEZE", "VERBOSE"))
|
||||
"ANALYZE",
|
||||
"ONLY");
|
||||
else if (Matches("VACUUM", MatchAnyN, "VERBOSE"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_vacuumables,
|
||||
"ANALYZE");
|
||||
"ANALYZE",
|
||||
"ONLY");
|
||||
else if (Matches("VACUUM", MatchAnyN, "ANALYZE"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY_PLUS(Query_for_list_of_vacuumables,
|
||||
"ONLY");
|
||||
else if (HeadMatches("VACUUM", "(*") &&
|
||||
!HeadMatches("VACUUM", "(*)"))
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user