Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 60ae37a

Browse files
committed
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
1 parent f4fc7cb commit 60ae37a

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/bin/psql/tab-complete.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2353,6 +2353,7 @@ psql_completion(const char *text, int start, int end)
23532353
"OWNER TO", "SET", "VALIDATE CONSTRAINT",
23542354
"REPLICA IDENTITY", "ATTACH PARTITION",
23552355
"DETACH PARTITION", "FORCE ROW LEVEL SECURITY",
2356+
"SPLIT PARTITION", "MERGE PARTITIONS (",
23562357
"OF", "NOT OF");
23572358
/* ALTER TABLE xxx ADD */
23582359
else if (Matches("ALTER", "TABLE", MatchAny, "ADD"))
@@ -2609,17 +2610,30 @@ psql_completion(const char *text, int start, int end)
26092610
COMPLETE_WITH("FROM (", "IN (", "WITH (");
26102611

26112612
/*
2612-
* If we have ALTER TABLE <foo> DETACH PARTITION, provide a list of
2613+
* If we have ALTER TABLE <foo> DETACH|SPLIT PARTITION, provide a list of
26132614
* partitions of <foo>.
26142615
*/
2615-
else if (Matches("ALTER", "TABLE", MatchAny, "DETACH", "PARTITION"))
2616+
else if (Matches("ALTER", "TABLE", MatchAny, "DETACH|SPLIT", "PARTITION"))
26162617
{
26172618
set_completion_reference(prev3_wd);
26182619
COMPLETE_WITH_SCHEMA_QUERY(Query_for_partition_of_table);
26192620
}
26202621
else if (Matches("ALTER", "TABLE", MatchAny, "DETACH", "PARTITION", MatchAny))
26212622
COMPLETE_WITH("CONCURRENTLY", "FINALIZE");
26222623

2624+
/* ALTER TABLE <name> SPLIT PARTITION <name> */
2625+
else if (Matches("ALTER", "TABLE", MatchAny, "SPLIT", "PARTITION", MatchAny))
2626+
COMPLETE_WITH("INTO ( PARTITION");
2627+
2628+
/* ALTER TABLE <name> MERGE PARTITIONS ( */
2629+
else if (Matches("ALTER", "TABLE", MatchAny, "MERGE", "PARTITIONS", "("))
2630+
{
2631+
set_completion_reference(prev4_wd);
2632+
COMPLETE_WITH_SCHEMA_QUERY(Query_for_partition_of_table);
2633+
}
2634+
else if (Matches("ALTER", "TABLE", MatchAny, "MERGE", "PARTITIONS", "(*)"))
2635+
COMPLETE_WITH("INTO");
2636+
26232637
/* ALTER TABLE <name> OF */
26242638
else if (Matches("ALTER", "TABLE", MatchAny, "OF"))
26252639
COMPLETE_WITH_SCHEMA_QUERY(Query_for_list_of_composite_datatypes);

0 commit comments

Comments
 (0)