@@ -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 );