@@ -1501,7 +1501,7 @@ psql_completion(const char *text, int start, int end)
15011501/* ALTER PUBLICATION <name> ...*/
15021502else 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> ... */
15141514else 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 ( ... */
15191526else if (HeadMatches3 ("ALTER" ,"SUBSCRIPTION" ,MatchAny )&& TailMatches2 ("WITH" ,"(" ))
15201527{
15211528COMPLETE_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>" */
24232432else 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)
26812691else if (Matches5 ("DROP" ,"RULE" ,MatchAny ,"ON" ,MatchAny ))
26822692COMPLETE_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 */
26852699else if (Matches1 ("EXECUTE" ))
26862700COMPLETE_WITH_QUERY (Query_for_list_of_prepared_statements );