diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index f985afc009..1cf53c74ea 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -11693,16 +11693,16 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1) - - logical_decoding_mode (enum) + + logical_replication_mode (enum) - logical_decoding_mode configuration parameter + logical_replication_mode configuration parameter Allows streaming or serializing changes immediately in logical decoding. - The allowed values of logical_decoding_mode are + The allowed values of logical_replication_mode are buffered and immediate. When set to immediate, stream each change if streaming option (see optional parameters set by diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c index 54ee824e6c..efe057b4de 100644 --- a/src/backend/replication/logical/reorderbuffer.c +++ b/src/backend/replication/logical/reorderbuffer.c @@ -210,7 +210,7 @@ int logical_decoding_work_mem; static const Size max_changes_in_memory = 4096; /* XXX for restore only */ /* GUC variable */ -int logical_decoding_mode = LOGICAL_DECODING_MODE_BUFFERED; +int logical_replication_mode = LOGICAL_REP_MODE_BUFFERED; /* --------------------------------------- * primary reorderbuffer support routines @@ -3552,8 +3552,8 @@ ReorderBufferLargestStreamableTopTXN(ReorderBuffer *rb) * pick the largest (sub)transaction at-a-time to evict and spill its changes to * disk or send to the output plugin until we reach under the memory limit. * - * If logical_decoding_mode is set to "immediate", stream or serialize the changes - * immediately. + * If logical_replication_mode is set to "immediate", stream or serialize the + * changes immediately. * * XXX At this point we select the transactions until we reach under the memory * limit, but we might also adapt a more elaborate eviction strategy - for example @@ -3566,15 +3566,15 @@ ReorderBufferCheckMemoryLimit(ReorderBuffer *rb) ReorderBufferTXN *txn; /* - * Bail out if logical_decoding_mode is buffered and we haven't exceeded + * Bail out if logical_replication_mode is buffered and we haven't exceeded * the memory limit. */ - if (logical_decoding_mode == LOGICAL_DECODING_MODE_BUFFERED && + if (logical_replication_mode == LOGICAL_REP_MODE_BUFFERED && rb->size < logical_decoding_work_mem * 1024L) return; /* - * If logical_decoding_mode is immediate, loop until there's no change. + * If logical_replication_mode is immediate, loop until there's no change. * Otherwise, loop until we reach under the memory limit. One might think * that just by evicting the largest (sub)transaction we will come under * the memory limit based on assumption that the selected transaction is @@ -3584,7 +3584,7 @@ ReorderBufferCheckMemoryLimit(ReorderBuffer *rb) * change. */ while (rb->size >= logical_decoding_work_mem * 1024L || - (logical_decoding_mode == LOGICAL_DECODING_MODE_IMMEDIATE && + (logical_replication_mode == LOGICAL_REP_MODE_IMMEDIATE && rb->size > 0)) { /* diff --git a/src/backend/utils/misc/guc_tables.c b/src/backend/utils/misc/guc_tables.c index 4ac808ed22..c5a95f5dcc 100644 --- a/src/backend/utils/misc/guc_tables.c +++ b/src/backend/utils/misc/guc_tables.c @@ -395,9 +395,9 @@ static const struct config_enum_entry ssl_protocol_versions_info[] = { {NULL, 0, false} }; -static const struct config_enum_entry logical_decoding_mode_options[] = { - {"buffered", LOGICAL_DECODING_MODE_BUFFERED, false}, - {"immediate", LOGICAL_DECODING_MODE_IMMEDIATE, false}, +static const struct config_enum_entry logical_replication_mode_options[] = { + {"buffered", LOGICAL_REP_MODE_BUFFERED, false}, + {"immediate", LOGICAL_REP_MODE_IMMEDIATE, false}, {NULL, 0, false} }; @@ -4919,13 +4919,13 @@ struct config_enum ConfigureNamesEnum[] = }, { - {"logical_decoding_mode", PGC_USERSET, DEVELOPER_OPTIONS, - gettext_noop("Allows streaming or serializing each change in logical decoding."), - NULL, + {"logical_replication_mode", PGC_USERSET, DEVELOPER_OPTIONS, + gettext_noop("Controls when to replicate each change."), + gettext_noop("On the publisher, it allows streaming or serializing each change in logical decoding."), GUC_NOT_IN_SAMPLE }, - &logical_decoding_mode, - LOGICAL_DECODING_MODE_BUFFERED, logical_decoding_mode_options, + &logical_replication_mode, + LOGICAL_REP_MODE_BUFFERED, logical_replication_mode_options, NULL, NULL, NULL }, diff --git a/src/include/replication/reorderbuffer.h b/src/include/replication/reorderbuffer.h index f6c4dd75db..e5db041df1 100644 --- a/src/include/replication/reorderbuffer.h +++ b/src/include/replication/reorderbuffer.h @@ -17,15 +17,16 @@ #include "utils/snapshot.h" #include "utils/timestamp.h" +/* GUC variables */ extern PGDLLIMPORT int logical_decoding_work_mem; -extern PGDLLIMPORT int logical_decoding_mode; +extern PGDLLIMPORT int logical_replication_mode; -/* possible values for logical_decoding_mode */ +/* possible values for logical_replication_mode */ typedef enum { - LOGICAL_DECODING_MODE_BUFFERED, - LOGICAL_DECODING_MODE_IMMEDIATE -} LogicalDecodingMode; + LOGICAL_REP_MODE_BUFFERED, + LOGICAL_REP_MODE_IMMEDIATE +} LogicalRepMode; /* an individual tuple, stored in one chunk of memory */ typedef struct ReorderBufferTupleBuf diff --git a/src/test/subscription/t/016_stream_subxact.pl b/src/test/subscription/t/016_stream_subxact.pl index 2f0148c3a8..d830f26e06 100644 --- a/src/test/subscription/t/016_stream_subxact.pl +++ b/src/test/subscription/t/016_stream_subxact.pl @@ -79,7 +79,7 @@ sub test_streaming my $node_publisher = PostgreSQL::Test::Cluster->new('publisher'); $node_publisher->init(allows_streaming => 'logical'); $node_publisher->append_conf('postgresql.conf', - 'logical_decoding_mode = immediate'); + 'logical_replication_mode = immediate'); $node_publisher->start; # Create subscriber node diff --git a/src/test/subscription/t/018_stream_subxact_abort.pl b/src/test/subscription/t/018_stream_subxact_abort.pl index dce14b150a..814daf4d2f 100644 --- a/src/test/subscription/t/018_stream_subxact_abort.pl +++ b/src/test/subscription/t/018_stream_subxact_abort.pl @@ -130,7 +130,7 @@ sub test_streaming my $node_publisher = PostgreSQL::Test::Cluster->new('publisher'); $node_publisher->init(allows_streaming => 'logical'); $node_publisher->append_conf('postgresql.conf', - 'logical_decoding_mode = immediate'); + 'logical_replication_mode = immediate'); $node_publisher->start; # Create subscriber node diff --git a/src/test/subscription/t/019_stream_subxact_ddl_abort.pl b/src/test/subscription/t/019_stream_subxact_ddl_abort.pl index b30223de51..d0e556c8b8 100644 --- a/src/test/subscription/t/019_stream_subxact_ddl_abort.pl +++ b/src/test/subscription/t/019_stream_subxact_ddl_abort.pl @@ -16,7 +16,7 @@ use Test::More; my $node_publisher = PostgreSQL::Test::Cluster->new('publisher'); $node_publisher->init(allows_streaming => 'logical'); $node_publisher->append_conf('postgresql.conf', - 'logical_decoding_mode = immediate'); + 'logical_replication_mode = immediate'); $node_publisher->start; # Create subscriber node diff --git a/src/test/subscription/t/023_twophase_stream.pl b/src/test/subscription/t/023_twophase_stream.pl index 75ca83765e..497245a209 100644 --- a/src/test/subscription/t/023_twophase_stream.pl +++ b/src/test/subscription/t/023_twophase_stream.pl @@ -301,7 +301,7 @@ $node_publisher->init(allows_streaming => 'logical'); $node_publisher->append_conf( 'postgresql.conf', qq( max_prepared_transactions = 10 -logical_decoding_mode = immediate +logical_replication_mode = immediate )); $node_publisher->start; diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list index 51484ca7e2..07fbb7ccf6 100644 --- a/src/tools/pgindent/typedefs.list +++ b/src/tools/pgindent/typedefs.list @@ -1458,7 +1458,6 @@ LogicalDecodeStreamStopCB LogicalDecodeStreamTruncateCB LogicalDecodeTruncateCB LogicalDecodingContext -LogicalDecodingMode LogicalErrorCallbackState LogicalOutputPluginInit LogicalOutputPluginWriterPrepareWrite @@ -1468,6 +1467,7 @@ LogicalRepBeginData LogicalRepCommitData LogicalRepCommitPreparedTxnData LogicalRepCtxStruct +LogicalRepMode LogicalRepMsgType LogicalRepPartMapEntry LogicalRepPreparedTxnData