Hello
On 2022-Oct-17, [email protected] wrote:
> alter subscription sub add publication pub2;
> Because I was executing the ADD PUBLICATION command, I feel the hint should
> also mention it instead of SET PUBLICATION.
Hmm, ok. But:
> @@ -1236,8 +1237,9 @@ AlterSubscription(ParseState *pstate,
> AlterSubscriptionStmt *stmt,
> ereport(ERROR,
>
> (errcode(ERRCODE_SYNTAX_ERROR),
> errmsg("ALTER
> SUBSCRIPTION with refresh and copy_data is not allowed when two_phase is
> enabled"),
> - errhint("Use
> ALTER SUBSCRIPTION ... SET PUBLICATION with refresh = false, or with
> copy_data = false"
> -
> ", or use DROP/CREATE SUBSCRIPTION.")));
> + errhint("Use
> ALTER SUBSCRIPTION ... %s PUBLICATION with refresh = false, or with copy_data
> = false"
> +
> ", or use DROP/CREATE SUBSCRIPTION.",
> +
> isadd ? "ADD" : "DROP")));
This looks confusing for translators. I propose to move the whole
command out of the message, not just one piece of it:
+ /*- translator: %s is an ALTER DDL command */
+ errhint("Use %s with refresh = false, or with copy_data = false, or use
DROP/CREATE SUBSCRIPTION.",
isadd ? "ALTER SUBSCRIPTION ... ADD PUBLICATION" : ALTER
SUBSCRIPTION ... DROP PUBLICATION")
I'm not sure that ERRCODE_SYNTAX_ERROR is the right thing here; sounds
like ERRCODE_FEATURE_NOT_SUPPORTED might be more appropriate.
--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/
"You don't solve a bad join with SELECT DISTINCT" #CupsOfFail
https://twitter.com/connor_mc_d/status/1431240081726115845