@@ -1501,7 +1501,7 @@ psql_completion(const char *text, int start, int end)
1501
1501
/* ALTER PUBLICATION <name> ...*/
1502
1502
else if (Matches3 ("ALTER" ,"PUBLICATION" ,MatchAny ))
1503
1503
{
1504
- COMPLETE_WITH_LIST6 ("WITH" , "ADD TABLE" , "SET TABLE" , "DROP TABLE" ,
1504
+ COMPLETE_WITH_LIST6 ("WITH ( " , "ADD TABLE" , "SET TABLE" , "DROP TABLE" ,
1505
1505
"OWNER TO" , "RENAME TO" );
1506
1506
}
1507
1507
/* ALTER PUBLICATION <name> .. WITH ( ... */
@@ -1513,9 +1513,16 @@ psql_completion(const char *text, int start, int end)
1513
1513
/* ALTER SUBSCRIPTION <name> ... */
1514
1514
else if (Matches3 ("ALTER" ,"SUBSCRIPTION" ,MatchAny ))
1515
1515
{
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 (" );
1518
1518
}
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 ( ... */
1519
1526
else if (HeadMatches3 ("ALTER" , "SUBSCRIPTION" , MatchAny ) && TailMatches2 ("WITH" , "(" ))
1520
1527
{
1521
1528
COMPLETE_WITH_CONST ("SLOT NAME" );
@@ -2419,10 +2426,13 @@ psql_completion(const char *text, int start, int end)
2419
2426
{
2420
2427
/* complete with nothing here as this refers to remote publications */
2421
2428
}
2429
+ else if (HeadMatches2 ("CREATE" , "SUBSCRIPTION" ) && TailMatches2 ("PUBLICATION" , MatchAny ))
2430
+ COMPLETE_WITH_CONST ("WITH (" );
2422
2431
/* Complete "CREATE SUBSCRIPTION <name> ... WITH ( <opt>" */
2423
2432
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" );
2426
2436
2427
2437
/* CREATE TRIGGER --- is allowed inside CREATE SCHEMA, so use TailMatches */
2428
2438
/* complete CREATE TRIGGER <name> with BEFORE,AFTER,INSTEAD OF */
@@ -2681,6 +2691,10 @@ psql_completion(const char *text, int start, int end)
2681
2691
else if (Matches5 ("DROP" , "RULE" , MatchAny , "ON" , MatchAny ))
2682
2692
COMPLETE_WITH_LIST2 ("CASCADE" , "RESTRICT" );
2683
2693
2694
+ /* DROP SUBSCRIPTION */
2695
+ else if (Matches3 ("DROP" , "SUBSCRIPTION" , MatchAny ))
2696
+ COMPLETE_WITH_LIST2 ("DROP SLOT" , "NODROP SLOT" );
2697
+
2684
2698
/* EXECUTE */
2685
2699
else if (Matches1 ("EXECUTE" ))
2686
2700
COMPLETE_WITH_QUERY (Query_for_list_of_prepared_statements );
0 commit comments