v2-0003-pgoutput-Initialize-missing-default-for-origin-pa.patch

text/plain

Filename: v2-0003-pgoutput-Initialize-missing-default-for-origin-pa.patch
Type: text/plain
Part: 2
Message: Re: Document default values for pgoutput options + fix missing initialization for "origin"

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch v2-0003
Subject: pgoutput: Initialize missing default for "origin" parameter.
File+
src/backend/replication/pgoutput/pgoutput.c 2 0
From cbce49d968c6737d02e5c0d903250bc384848135 Mon Sep 17 00:00:00 2001
From: Fujii Masao <fujii@postgresql.org>
Date: Fri, 16 May 2025 23:53:08 +0900
Subject: [PATCH v2 3/3] pgoutput: Initialize missing default for "origin"
 parameter.

The pgoutput plugin initializes optional parameters like "binary" with
default values at the start of processing. However, the "origin"
parameter was previously missed and left without explicit initialization.

Although the PGOutputData struct, which holds these settings,
is zero-initialized at allocation (resulting in publish_no_origin field
for "origin" parameter being false by default), this default was not
set explicitly, unlike other parameters.

This commit adds explicit initialization of the "origin" parameter to
ensure consistency and clarity in how defaults are handled.

Back-patch to v16, where "origin" parameter was added into pgoutput.

Author: Fujii Masao <masao.fujii@gmail.com>
Reviewed-by: Euler Taveira <euler@eulerto.com>
Discussion: https://postgr.es/m/d2790f10-238d-4cb5-a743-d9d2a9dd900f@oss.nttdata.com
Backpatch-through: 16
---
 src/backend/replication/pgoutput/pgoutput.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/backend/replication/pgoutput/pgoutput.c b/src/backend/replication/pgoutput/pgoutput.c
index 693a766e6d7..d7099c060d9 100644
--- a/src/backend/replication/pgoutput/pgoutput.c
+++ b/src/backend/replication/pgoutput/pgoutput.c
@@ -297,10 +297,12 @@ parse_output_parameters(List *options, PGOutputData *data)
 	bool		two_phase_option_given = false;
 	bool		origin_option_given = false;
 
+	/* Initialize optional parameters to defaults */
 	data->binary = false;
 	data->streaming = LOGICALREP_STREAM_OFF;
 	data->messages = false;
 	data->two_phase = false;
+	data->publish_no_origin = false;
 
 	foreach(lc, options)
 	{
-- 
2.49.0