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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy