@@ -1182,10 +1182,9 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
11821182 */
11831183if (sub -> twophasestate == LOGICALREP_TWOPHASE_STATE_ENABLED && opts .copy_data )
11841184ereport (ERROR ,
1185- (errcode (ERRCODE_SYNTAX_ERROR ),
1185+ (errcode (ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE ),
11861186errmsg ("ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" ),
1187- errhint ("Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false"
1188- ", or use DROP/CREATE SUBSCRIPTION." )));
1187+ errhint ("Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." )));
11891188
11901189PreventInTransactionBlock (isTopLevel ,"ALTER SUBSCRIPTION with refresh" );
11911190
@@ -1226,18 +1225,25 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
12261225ereport (ERROR ,
12271226(errcode (ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE ),
12281227errmsg ("ALTER SUBSCRIPTION with refresh is not allowed for disabled subscriptions" ),
1229- errhint ("Use ALTER SUBSCRIPTION ... SET PUBLICATION ... WITH (refresh = false)." )));
1228+ /* translator: %s is an SQL ALTER command */
1229+ errhint ("Use %s instead." ,
1230+ isadd ?
1231+ "ALTER SUBSCRIPTION ... ADD PUBLICATION ... WITH (refresh = false)" :
1232+ "ALTER SUBSCRIPTION ... DROP PUBLICATION ... WITH (refresh = false)" )));
12301233
12311234/*
12321235 * See ALTER_SUBSCRIPTION_REFRESH for details why this is
12331236 * not allowed.
12341237 */
12351238if (sub -> twophasestate == LOGICALREP_TWOPHASE_STATE_ENABLED && opts .copy_data )
12361239ereport (ERROR ,
1237- (errcode (ERRCODE_SYNTAX_ERROR ),
1240+ (errcode (ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE ),
12381241errmsg ("ALTER SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is enabled" ),
1239- errhint ("Use ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with copy_data = false"
1240- ", or use DROP/CREATE SUBSCRIPTION." )));
1242+ /* translator: %s is an SQL ALTER command */
1243+ errhint ("Use %s with refresh = false, or with copy_data = false, or use DROP/CREATE SUBSCRIPTION." ,
1244+ isadd ?
1245+ "ALTER SUBSCRIPTION ... ADD PUBLICATION" :
1246+ "ALTER SUBSCRIPTION ... DROP PUBLICATION" )));
12411247
12421248PreventInTransactionBlock (isTopLevel ,"ALTER SUBSCRIPTION with refresh" );
12431249
@@ -1282,8 +1288,7 @@ AlterSubscription(ParseState *pstate, AlterSubscriptionStmt *stmt,
12821288ereport (ERROR ,
12831289(errcode (ERRCODE_SYNTAX_ERROR ),
12841290errmsg ("ALTER SUBSCRIPTION ... REFRESH with copy_data is not allowed when two_phase is enabled" ),
1285- errhint ("Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false"
1286- ", or use DROP/CREATE SUBSCRIPTION." )));
1291+ errhint ("Use ALTER SUBSCRIPTION ... REFRESH with copy_data = false, or use DROP/CREATE SUBSCRIPTION." )));
12871292
12881293PreventInTransactionBlock (isTopLevel ,"ALTER SUBSCRIPTION ... REFRESH" );
12891294
@@ -2011,8 +2016,8 @@ ReportSlotConnectionError(List *rstates, Oid subid, char *slotname, char *err)
20112016
20122017ereport (ERROR ,
20132018(errcode (ERRCODE_CONNECTION_FAILURE ),
2014- errmsg ("could not connect to publisher when attempting to"
2015- "drop replication slot \"%s\": %s" , slotname ,err ),
2019+ errmsg ("could not connect to publisher when attempting todrop replication slot \"%s\": %s" ,
2020+ slotname ,err ),
20162021/* translator: %s is an SQL ALTER command */
20172022errhint ("Use %s to disassociate the subscription from the slot." ,
20182023"ALTER SUBSCRIPTION ... SET (slot_name = NONE)" )));