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