diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c index f9ed1083df..25a95076cf 100644 --- a/src/backend/replication/pgoutput/pgoutput.c +++ b/src/backend/replication/pgoutput/pgoutput.c @@ -400,6 +400,16 @@ parse_output_parameters(List *options, PGOutputData *data) else elog(ERROR, "unrecognized pgoutput option: %s", defel->defname); } + + /* Check required options */ + if (!protocol_version_given) + ereport(ERROR, + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("proto_version option missing")); + if (!publication_names_given) + ereport(ERROR, + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("publication_names option missing")); } /* @@ -449,11 +459,6 @@ pgoutput_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, errmsg("client sent proto_version=%d but server only supports protocol %d or higher", data->protocol_version, LOGICALREP_PROTO_MIN_VERSION_NUM))); - if (data->publication_names == NIL) - ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("publication_names parameter missing"))); - /* * Decide whether to enable streaming. It is disabled by default, in * which case we just update the flag in decoding context. Otherwise