mirror of
https://github.com/postgres/postgres.git
synced 2026-02-18 10:09:35 -05:00
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
1 changed files with 22 additions and 14 deletions
|
|
@ -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…
Reference in a new issue