Hi,
On 2018-07-31 14:51:12 -0400, Dave Cramer wrote:
> This patch does 2 things
>
> 1) Ensure that when the slot is created
> with pg_create_physical_replication_slot if the output plugin does not
> exist it will error.
*logical, I assume?
> diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
> index 3cd4eef..9f883b9 100644
> --- a/src/backend/replication/logical/logical.c
> +++ b/src/backend/replication/logical/logical.c
> @@ -143,8 +143,7 @@ StartupDecodingContext(List *output_plugin_options,
> * (re-)load output plugins, so we detect a bad (removed) output plugin
> * now.
> */
> - if (!fast_forward)
> - LoadOutputPlugin(&ctx->callbacks, NameStr(slot->data.plugin));
> + LoadOutputPlugin(&ctx->callbacks, NameStr(slot->data.plugin));
So this actually was broken by 9c7d06d60680c7f00d931233873dee81fdb311c6
and worked before? Petr, Simon? Isn't the actual bug here that
CreateInitDecodingContext() passes true for fast_forward? Dave, could
you confirm this is the case? If so, this'll end up actually being an
open items entry...
> /*
> * Now that the slot's xmin has been set, we can announce ourselves as a
> @@ -312,7 +311,7 @@ CreateInitDecodingContext(char *plugin,
> ReplicationSlotSave();
>
> ctx = StartupDecodingContext(NIL, InvalidXLogRecPtr, xmin_horizon,
> - need_full_snapshot, true,
> + need_full_snapshot, true,
> read_page, prepare_write, do_write,
> update_progress);
Huh?
Greetings,
Andres Freund