Add tab completion for partition MERGE/SPLIT operations
This commit implements psql tab completion for ALTER TABLE ... SPLIT PARTITION and ALTER TABLE ... MERGE PARTITIONS commands. Reported-by: Alexander Lakhin Discussion: https://postgr.es/m/5dee3937-8e9f-cca4-11fb-737709a92b37%40gmail.com Author: Dagfinn Ilmari Mannsåker, Pavel Borisov
This commit is contained in:
parent
f4fc7cb54b
commit
60ae37a8bc
@ -2353,6 +2353,7 @@ psql_completion(const char *text, int start, int end)
|
||||
"OWNER TO", "SET", "VALIDATE CONSTRAINT",
|
||||
"REPLICA IDENTITY", "ATTACH PARTITION",
|
||||
"DETACH PARTITION", "FORCE ROW LEVEL SECURITY",
|
||||
"SPLIT PARTITION", "MERGE PARTITIONS (",
|
||||
"OF", "NOT OF");
|
||||
/* ALTER TABLE xxx ADD */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "ADD"))
|
||||
@ -2609,10 +2610,10 @@ psql_completion(const char *text, int start, int end)
|
||||
COMPLETE_WITH("FROM (", "IN (", "WITH (");
|
||||
|
||||
/*
|
||||
* If we have ALTER TABLE <foo> DETACH PARTITION, provide a list of
|
||||
* If we have ALTER TABLE <foo> DETACH|SPLIT PARTITION, provide a list of
|
||||
* partitions of <foo>.
|
||||
*/
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "DETACH", "PARTITION"))
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "DETACH|SPLIT", "PARTITION"))
|
||||
{
|
||||
set_completion_reference(prev3_wd);
|
||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_partition_of_table);
|
||||
@ -2620,6 +2621,19 @@ psql_completion(const char *text, int start, int end)
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "DETACH", "PARTITION", MatchAny))
|
||||
COMPLETE_WITH("CONCURRENTLY", "FINALIZE");
|
||||
|
||||
/* ALTER TABLE <name> SPLIT PARTITION <name> */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "SPLIT", "PARTITION", MatchAny))
|
||||
COMPLETE_WITH("INTO ( PARTITION");
|
||||
|
||||
/* ALTER TABLE <name> MERGE PARTITIONS ( */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "MERGE", "PARTITIONS", "("))
|
||||
{
|
||||
set_completion_reference(prev4_wd);
|
||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_partition_of_table);
|
||||
}
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "MERGE", "PARTITIONS", "(*)"))
|
||||
COMPLETE_WITH("INTO");
|
||||
|
||||
/* ALTER TABLE <name> OF */
|
||||
else if (Matches("ALTER", "TABLE", MatchAny, "OF"))
|
||||
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_composite_datatypes);
|
||||
|
Loading…
x
Reference in New Issue
Block a user