agora inbox for [email protected]help / color / mirror / Atom feed
[PATCH v44 06/10] rename routines on the logical output plugin side 186+ messages / 1 participants [nested] [flat]
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH v44 06/10] rename routines on the logical output plugin side @ 2026-03-23 20:37 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-03-23 20:37 UTC (permalink / raw) --- src/backend/commands/cluster.c | 3 +- .../pgoutput_repack/pgoutput_repack.c | 54 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index b86e600af41..75556cbdafb 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -3121,7 +3121,8 @@ restore_tuple(BufFile *file, Relation relation, TupleTableSlot *slot) /* * Next, read any attributes we stored separately into the tts_values - * array elements expecting them, if any. This matches store_change. + * array elements expecting them, if any. This matches + * repack_store_change. */ BufFileReadExact(file, &natt_ext, sizeof(natt_ext)); if (natt_ext > 0) diff --git a/src/backend/replication/pgoutput_repack/pgoutput_repack.c b/src/backend/replication/pgoutput_repack/pgoutput_repack.c index de1892ef423..032fbd0e5b0 100644 --- a/src/backend/replication/pgoutput_repack/pgoutput_repack.c +++ b/src/backend/replication/pgoutput_repack/pgoutput_repack.c @@ -19,32 +19,32 @@ PG_MODULE_MAGIC; -static void plugin_startup(LogicalDecodingContext *ctx, +static void repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init); -static void plugin_shutdown(LogicalDecodingContext *ctx); -static void plugin_begin_txn(LogicalDecodingContext *ctx, +static void repack_shutdown(LogicalDecodingContext *ctx); +static void repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn); -static void plugin_commit_txn(LogicalDecodingContext *ctx, +static void repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn); -static void plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation rel, ReorderBufferChange *change); -static void store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple); +static void repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation rel, ReorderBufferChange *change); +static void repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple); void _PG_output_plugin_init(OutputPluginCallbacks *cb) { - cb->startup_cb = plugin_startup; - cb->begin_cb = plugin_begin_txn; - cb->change_cb = plugin_change; - cb->commit_cb = plugin_commit_txn; - cb->shutdown_cb = plugin_shutdown; + cb->startup_cb = repack_startup; + cb->begin_cb = repack_begin_txn; + cb->change_cb = repack_process_change; + cb->commit_cb = repack_commit_txn; + cb->shutdown_cb = repack_shutdown; } /* initialize this plugin */ static void -plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, +repack_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, bool is_init) { ctx->output_plugin_private = NULL; @@ -55,13 +55,13 @@ plugin_startup(LogicalDecodingContext *ctx, OutputPluginOptions *opt, if (ctx->output_plugin_options != NIL) { ereport(ERROR, - (errcode(ERRCODE_INVALID_PARAMETER_VALUE), - errmsg("This plugin does not expect any options"))); + errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("this plugin does not expect any options")); } } static void -plugin_shutdown(LogicalDecodingContext *ctx) +repack_shutdown(LogicalDecodingContext *ctx) { } @@ -75,13 +75,13 @@ plugin_shutdown(LogicalDecodingContext *ctx) /* BEGIN callback */ static void -plugin_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) +repack_begin_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn) { } /* COMMIT callback */ static void -plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, +repack_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, XLogRecPtr commit_lsn) { } @@ -90,8 +90,8 @@ plugin_commit_txn(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * Callback for individual changed tuples */ static void -plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, - Relation relation, ReorderBufferChange *change) +repack_process_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, + Relation relation, ReorderBufferChange *change) { RepackDecodingState *private = (RepackDecodingState *) ctx->output_writer_private; @@ -114,7 +114,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (newtuple == NULL) elog(ERROR, "incomplete insert info."); - store_change(ctx, relation, CHANGE_INSERT, newtuple); + repack_store_change(ctx, relation, CHANGE_INSERT, newtuple); } break; case REORDER_BUFFER_CHANGE_UPDATE: @@ -129,9 +129,9 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, elog(ERROR, "incomplete update info."); if (oldtuple != NULL) - store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_OLD, oldtuple); - store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); + repack_store_change(ctx, relation, CHANGE_UPDATE_NEW, newtuple); } break; case REORDER_BUFFER_CHANGE_DELETE: @@ -143,7 +143,7 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (oldtuple == NULL) elog(ERROR, "incomplete delete info."); - store_change(ctx, relation, CHANGE_DELETE, oldtuple); + repack_store_change(ctx, relation, CHANGE_DELETE, oldtuple); } break; default: @@ -172,8 +172,8 @@ plugin_change(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, * replication identity instead of the full tuple. */ static void -store_change(LogicalDecodingContext *ctx, Relation relation, - ConcurrentChangeKind kind, HeapTuple tuple) +repack_store_change(LogicalDecodingContext *ctx, Relation relation, + ConcurrentChangeKind kind, HeapTuple tuple) { RepackDecodingState *dstate; MemoryContext oldcxt; -- 2.47.3 --gwom7bl7ogtszo4k Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v44-0007-Split-cluster.h-to-create-repack_internal.h.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
* [PATCH 1/2] REPACK: do not require the user to have REPLICATION @ 2026-04-20 09:38 Álvaro Herrera <[email protected]> 0 siblings, 0 replies; 186+ messages in thread From: Álvaro Herrera @ 2026-04-20 09:38 UTC (permalink / raw) Although REPACK (CONCURRENTLY) uses replication slots, there is no concern that the slot will leak data of other users, because the MAINTAIN privilege on the table is required anyway; requiring REPLICATION is user-unfriendly without providing any actual protection. A related aspect is that the REPLICATION attribute is not needed to prevent REPACK from stealing slots from logical replication, since commit e76d8c749c31 made REPACK use a separate pool of replication slots. Because there are now successful concurrent repack runs in the regression tests, we're forced to run test_plan_advice under wal_level=replica. Author: Antonin Houska <[email protected]> Reported-by: Justin Pryzby <[email protected]> Reviewed-by: Chao Li <[email protected]> Discussion: https://postgr.es/m/aeJHPNmL4vVy3oPw@pryzbyj2023 --- src/backend/commands/repack_worker.c | 1 - .../test_plan_advice/t/001_replan_regress.pl | 1 + src/test/regress/expected/cluster.out | 20 +++++++++++++++++-- src/test/regress/sql/cluster.sql | 11 ++++++++-- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/backend/commands/repack_worker.c b/src/backend/commands/repack_worker.c index b17edd771e2..e4a4860805b 100644 --- a/src/backend/commands/repack_worker.c +++ b/src/backend/commands/repack_worker.c @@ -214,7 +214,6 @@ repack_setup_logical_decoding(Oid relid) /* * Make sure we can use logical decoding. */ - CheckSlotPermissions(); CheckLogicalDecodingRequirements(true); /* diff --git a/src/test/modules/test_plan_advice/t/001_replan_regress.pl b/src/test/modules/test_plan_advice/t/001_replan_regress.pl index 38ffa4d11ae..452b179a665 100644 --- a/src/test/modules/test_plan_advice/t/001_replan_regress.pl +++ b/src/test/modules/test_plan_advice/t/001_replan_regress.pl @@ -18,6 +18,7 @@ $node->init(); # Set up our desired configuration. $node->append_conf('postgresql.conf', <<EOM); shared_preload_libraries='test_plan_advice' +wal_level=replica pg_plan_advice.always_explain_supplied_advice=false pg_plan_advice.feedback_warnings=true EOM diff --git a/src/test/regress/expected/cluster.out b/src/test/regress/expected/cluster.out index 6127b215a86..e17bc91fae1 100644 --- a/src/test/regress/expected/cluster.out +++ b/src/test/regress/expected/cluster.out @@ -543,15 +543,17 @@ ERROR: REPACK (CONCURRENTLY) is not supported for partitioned tables HINT: Consider running the command on individual partitions. DROP TABLE clstrpart; -- Ownership of partitions is checked -CREATE TABLE ptnowner(i int unique) PARTITION BY LIST (i); +CREATE TABLE ptnowner(i int unique not null) PARTITION BY LIST (i); CREATE INDEX ptnowner_i_idx ON ptnowner(i); CREATE TABLE ptnowner1 PARTITION OF ptnowner FOR VALUES IN (1); -CREATE ROLE regress_ptnowner; +CREATE ROLE regress_ptnowner LOGIN; CREATE TABLE ptnowner2 PARTITION OF ptnowner FOR VALUES IN (2); ALTER TABLE ptnowner1 OWNER TO regress_ptnowner; SET SESSION AUTHORIZATION regress_ptnowner; CLUSTER ptnowner USING ptnowner_i_idx; ERROR: permission denied for table ptnowner +ALTER TABLE ptnowner1 REPLICA IDENTITY USING INDEX ptnowner1_i_key; +REPACK (CONCURRENTLY) ptnowner1; RESET SESSION AUTHORIZATION; ALTER TABLE ptnowner OWNER TO regress_ptnowner; CREATE TEMP TABLE ptnowner_oldnodes AS @@ -560,6 +562,11 @@ CREATE TEMP TABLE ptnowner_oldnodes AS SET SESSION AUTHORIZATION regress_ptnowner; CLUSTER ptnowner USING ptnowner_i_idx; WARNING: permission denied to execute CLUSTER on "ptnowner2", skipping it +-- still can't repack without a replica identity +ALTER TABLE ptnowner1 REPLICA IDENTITY DEFAULT; +REPACK (CONCURRENTLY) ptnowner1; +ERROR: cannot process relation "ptnowner1" +HINT: Relation "ptnowner1" has no identity index. RESET SESSION AUTHORIZATION; SELECT a.relname, a.relfilenode=b.relfilenode FROM pg_class a JOIN ptnowner_oldnodes b USING (oid) ORDER BY a.relname COLLATE "C"; @@ -570,6 +577,15 @@ SELECT a.relname, a.relfilenode=b.relfilenode FROM pg_class a ptnowner2 | t (3 rows) +SELECT a.relname, a.relfilenode=b.relfilenode FROM pg_class a + JOIN ptnowner_oldnodes b USING (oid) ORDER BY a.relname COLLATE "C"; + relname | ?column? +-----------+---------- + ptnowner | t + ptnowner1 | f + ptnowner2 | t +(3 rows) + DROP TABLE ptnowner; DROP ROLE regress_ptnowner; -- Test CLUSTER with external tuplesorting diff --git a/src/test/regress/sql/cluster.sql b/src/test/regress/sql/cluster.sql index d14063a9683..1f471a8821a 100644 --- a/src/test/regress/sql/cluster.sql +++ b/src/test/regress/sql/cluster.sql @@ -254,14 +254,16 @@ REPACK (CONCURRENTLY) clstrpart; DROP TABLE clstrpart; -- Ownership of partitions is checked -CREATE TABLE ptnowner(i int unique) PARTITION BY LIST (i); +CREATE TABLE ptnowner(i int unique not null) PARTITION BY LIST (i); CREATE INDEX ptnowner_i_idx ON ptnowner(i); CREATE TABLE ptnowner1 PARTITION OF ptnowner FOR VALUES IN (1); -CREATE ROLE regress_ptnowner; +CREATE ROLE regress_ptnowner LOGIN; CREATE TABLE ptnowner2 PARTITION OF ptnowner FOR VALUES IN (2); ALTER TABLE ptnowner1 OWNER TO regress_ptnowner; SET SESSION AUTHORIZATION regress_ptnowner; CLUSTER ptnowner USING ptnowner_i_idx; +ALTER TABLE ptnowner1 REPLICA IDENTITY USING INDEX ptnowner1_i_key; +REPACK (CONCURRENTLY) ptnowner1; RESET SESSION AUTHORIZATION; ALTER TABLE ptnowner OWNER TO regress_ptnowner; CREATE TEMP TABLE ptnowner_oldnodes AS @@ -269,7 +271,12 @@ CREATE TEMP TABLE ptnowner_oldnodes AS JOIN pg_class AS c ON c.oid=tree.relid; SET SESSION AUTHORIZATION regress_ptnowner; CLUSTER ptnowner USING ptnowner_i_idx; +-- still can't repack without a replica identity +ALTER TABLE ptnowner1 REPLICA IDENTITY DEFAULT; +REPACK (CONCURRENTLY) ptnowner1; RESET SESSION AUTHORIZATION; +SELECT a.relname, a.relfilenode=b.relfilenode FROM pg_class a + JOIN ptnowner_oldnodes b USING (oid) ORDER BY a.relname COLLATE "C"; SELECT a.relname, a.relfilenode=b.relfilenode FROM pg_class a JOIN ptnowner_oldnodes b USING (oid) ORDER BY a.relname COLLATE "C"; DROP TABLE ptnowner; -- 2.47.3 --m6zy3l65ushq557m Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="0002-REPACK-do-not-require-LOGIN-privileges.patch" ^ permalink raw reply [nested|flat] 186+ messages in thread
end of thread, other threads:[~2026-04-20 09:38 UTC | newest] Thread overview: 186+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-03-23 20:37 [PATCH v44 06/10] rename routines on the logical output plugin side Álvaro Herrera <[email protected]> 2026-04-20 09:38 [PATCH 1/2] REPACK: do not require the user to have REPLICATION Álvaro Herrera <[email protected]>
This inbox is served by agora; see mirroring instructions for how to clone and mirror all data and code used for this inbox