@@ -1514,33 +1514,53 @@ psql_completion(const char *text, int start, int end)
15141514 else
15151515 COMPLETE_WITH_FUNCTION_ARG (prev2_wd );
15161516 }
1517- /* ALTER PUBLICATION <name> ... */
1518- else if (Matches3 ("ALTER" ,"PUBLICATION" ,MatchAny ))
1517+ /* ALTER PUBLICATION <name> */
1518+ else if (Matches3 ("ALTER" , "PUBLICATION" , MatchAny ))
15191519 {
1520- COMPLETE_WITH_LIST6 ("WITH (" , "ADD TABLE" , "SET TABLE" , "DROP TABLE" ,
1521- "OWNER TO" , "RENAME TO" );
1520+ COMPLETE_WITH_LIST5 ("ADD TABLE" , "DROP TABLE" , "OWNER TO" , "RENAME TO" , "SET" );
15221521 }
1523- /* ALTER PUBLICATION <name> .. SET ( ... */
1524- else if (HeadMatches3 ("ALTER" , "PUBLICATION" ,MatchAny ) && TailMatches2 ("SET" , "(" ))
1522+ /* ALTER PUBLICATION <name> SET */
1523+ else if (Matches4 ("ALTER" , "PUBLICATION" , MatchAny , "SET" ))
1524+ {
1525+ COMPLETE_WITH_LIST2 ("(" , "TABLE" );
1526+ }
1527+ /* ALTER PUBLICATION <name> SET ( */
1528+ else if (HeadMatches3 ("ALTER" , "PUBLICATION" , MatchAny ) && TailMatches2 ("SET" , "(" ))
15251529 {
15261530 COMPLETE_WITH_CONST ("publish" );
15271531 }
1528- /* ALTER SUBSCRIPTION <name> ... */
1529- else if (Matches3 ("ALTER" ,"SUBSCRIPTION" ,MatchAny ))
1532+ /* ALTER SUBSCRIPTION <name> */
1533+ else if (Matches3 ("ALTER" , "SUBSCRIPTION" , MatchAny ))
1534+ {
1535+ COMPLETE_WITH_LIST7 ("CONNECTION" , "ENABLE" , "DISABLE" , "OWNER TO" ,
1536+ "RENAME TO" , "REFRESH PUBLICATION" , "SET" );
1537+ }
1538+ /* ALTER SUBSCRIPTION <name> REFRESH PUBLICATION */
1539+ else if (HeadMatches3 ("ALTER" , "SUBSCRIPTION" , MatchAny ) &&
1540+ TailMatches2 ("REFRESH" , "PUBLICATION" ))
15301541 {
1531- COMPLETE_WITH_LIST8 ("SET (" , "CONNECTION" , "SET PUBLICATION" , "ENABLE" ,
1532- "DISABLE" , "OWNER TO" , "RENAME TO" , "REFRESH PUBLICATION WITH (" );
1542+ COMPLETE_WITH_CONST ("WITH (" );
15331543 }
1534- /* ALTER SUBSCRIPTION <name> REFRESH PUBLICATION WITH ( ... */
1544+ /* ALTER SUBSCRIPTION <name> REFRESH PUBLICATION WITH ( */
15351545 else if (HeadMatches3 ("ALTER" , "SUBSCRIPTION" , MatchAny ) &&
15361546 TailMatches4 ("REFRESH" , "PUBLICATION" , "WITH" , "(" ))
15371547 {
15381548 COMPLETE_WITH_CONST ("copy_data" );
15391549 }
1540- /* ALTER SUBSCRIPTION <name> .. SET ( ... */
1550+ /* ALTER SUBSCRIPTION <name> SET */
1551+ else if (Matches4 ("ALTER" , "SUBSCRIPTION" , MatchAny , "SET" ))
1552+ {
1553+ COMPLETE_WITH_LIST2 ("(" , "PUBLICATION" );
1554+ }
1555+ /* ALTER SUBSCRIPTION <name> SET ( */
15411556 else if (HeadMatches3 ("ALTER" , "SUBSCRIPTION" , MatchAny ) && TailMatches2 ("SET" , "(" ))
15421557 {
1543- COMPLETE_WITH_CONST ("slot_name" );
1558+ COMPLETE_WITH_LIST2 ("slot_name" , "synchronous_commit" );
1559+ }
1560+ /* ALTER SUBSCRIPTION <name> SET PUBLICATION */
1561+ else if (HeadMatches3 ("ALTER" , "SUBSCRIPTION" , MatchAny ) && TailMatches2 ("SET" , "PUBLICATION" ))
1562+ {
1563+ /* complete with nothing here as this refers to remote publications */
15441564 }
15451565 /* ALTER SCHEMA <name> */
15461566 else if (Matches3 ("ALTER" , "SCHEMA" , MatchAny ))
@@ -2458,8 +2478,8 @@ psql_completion(const char *text, int start, int end)
24582478 COMPLETE_WITH_CONST ("WITH (" );
24592479 /* Complete "CREATE SUBSCRIPTION <name> ... WITH ( <opt>" */
24602480 else if (HeadMatches2 ("CREATE" , "SUBSCRIPTION" ) && TailMatches2 ("WITH" , "(" ))
2461- COMPLETE_WITH_LIST5 ( "enabled " , "create_slot" , "slot_name " ,
2462- "copy_data " , "connect " );
2481+ COMPLETE_WITH_LIST6 ( "copy_data " , "connect" , " create_slot" , "enabled " ,
2482+ "slot_name " , "synchronous_commit " );
24632483
24642484/* CREATE TRIGGER --- is allowed inside CREATE SCHEMA, so use TailMatches */
24652485 /* complete CREATE TRIGGER <name> with BEFORE,AFTER,INSTEAD OF */
0 commit comments