Skip to content

Commit c525f74

Browse files
committed
Improve tab-completion of DDL for publication and subscription.
Author: Masahiko Sawada Discussion: http://postgr.es/m/CAD21AoC32YgtateNqTFXzTJmHHe6hXs4cpJTND3n-Ts8f-aMqw@mail.gmail.com
1 parent 4a8bc39 commit c525f74

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/bin/psql/tab-complete.c

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1501,7 +1501,7 @@ psql_completion(const char *text, int start, int end)
15011501
/* ALTER PUBLICATION <name> ...*/
15021502
else if (Matches3("ALTER","PUBLICATION",MatchAny))
15031503
{
1504-
COMPLETE_WITH_LIST6("WITH", "ADD TABLE", "SET TABLE", "DROP TABLE",
1504+
COMPLETE_WITH_LIST6("WITH (", "ADD TABLE", "SET TABLE", "DROP TABLE",
15051505
"OWNER TO", "RENAME TO");
15061506
}
15071507
/* ALTER PUBLICATION <name> .. WITH ( ... */
@@ -1513,9 +1513,16 @@ psql_completion(const char *text, int start, int end)
15131513
/* ALTER SUBSCRIPTION <name> ... */
15141514
else if (Matches3("ALTER","SUBSCRIPTION",MatchAny))
15151515
{
1516-
COMPLETE_WITH_LIST7("WITH", "CONNECTION", "SET PUBLICATION", "ENABLE",
1517-
"DISABLE", "OWNER TO", "RENAME TO");
1516+
COMPLETE_WITH_LIST8("WITH (", "CONNECTION", "SET PUBLICATION", "ENABLE",
1517+
"DISABLE", "OWNER TO", "RENAME TO", "REFRESH PUBLICATION WITH (");
15181518
}
1519+
/* ALTER SUBSCRIPTION <name> REFRESH PUBLICATION WITH ( ... */
1520+
else if (HeadMatches3("ALTER", "SUBSCRIPTION", MatchAny) &&
1521+
TailMatches4("REFRESH", "PUBLICATION", "WITH", "("))
1522+
{
1523+
COMPLETE_WITH_LIST2("COPY DATA", "NOCOPY DATA");
1524+
}
1525+
/* ALTER SUBSCRIPTION <name> .. WITH ( ... */
15191526
else if (HeadMatches3("ALTER", "SUBSCRIPTION", MatchAny) && TailMatches2("WITH", "("))
15201527
{
15211528
COMPLETE_WITH_CONST("SLOT NAME");
@@ -2419,10 +2426,13 @@ psql_completion(const char *text, int start, int end)
24192426
{
24202427
/* complete with nothing here as this refers to remote publications */
24212428
}
2429+
else if (HeadMatches2("CREATE", "SUBSCRIPTION") && TailMatches2("PUBLICATION", MatchAny))
2430+
COMPLETE_WITH_CONST("WITH (");
24222431
/* Complete "CREATE SUBSCRIPTION <name> ... WITH ( <opt>" */
24232432
else if (HeadMatches2("CREATE", "SUBSCRIPTION") && TailMatches2("WITH", "("))
2424-
COMPLETE_WITH_LIST5("ENABLED", "DISABLED", "CREATE SLOT",
2425-
"NOCREATE SLOT", "SLOT NAME");
2433+
COMPLETE_WITH_LIST8("ENABLED", "DISABLED", "CREATE SLOT",
2434+
"NOCREATE SLOT", "SLOT NAME", "COPY DATA", "NOCOPY DATA",
2435+
"NOCONNECT");
24262436

24272437
/* CREATE TRIGGER --- is allowed inside CREATE SCHEMA, so use TailMatches */
24282438
/* complete CREATE TRIGGER <name> with BEFORE,AFTER,INSTEAD OF */
@@ -2681,6 +2691,10 @@ psql_completion(const char *text, int start, int end)
26812691
else if (Matches5("DROP", "RULE", MatchAny, "ON", MatchAny))
26822692
COMPLETE_WITH_LIST2("CASCADE", "RESTRICT");
26832693

2694+
/* DROP SUBSCRIPTION */
2695+
else if (Matches3("DROP", "SUBSCRIPTION", MatchAny))
2696+
COMPLETE_WITH_LIST2("DROP SLOT", "NODROP SLOT");
2697+
26842698
/* EXECUTE */
26852699
else if (Matches1("EXECUTE"))
26862700
COMPLETE_WITH_QUERY(Query_for_list_of_prepared_statements);

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