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

Reply via email to