diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c index b671c434a3e..2dcd4fb3ae3 100644 --- a/src/backend/replication/walsender.c +++ b/src/backend/replication/walsender.c @@ -805,8 +805,6 @@ CreateReplicationSlot(CreateReplicationSlotCmd *cmd) ReplicationSlotCreate(cmd->slotname, true, RS_EPHEMERAL); } - initStringInfo(&output_message); - if (cmd->kind == REPLICATION_KIND_LOGICAL) { LogicalDecodingContext *ctx; @@ -1310,6 +1308,14 @@ exec_replication_command(const char *cmd_string) cmd_node = replication_parse_result; + /* + * Allocate buffers that will be used for each outgoing and incoming + * message. We do this just once per command to reduce palloc overhead. + */ + initStringInfo(&output_message); + initStringInfo(&reply_message); + initStringInfo(&tmpbuf); + switch (cmd_node->type) { case T_IdentifySystemCmd: @@ -1782,14 +1788,6 @@ WalSndCheckTimeOut(TimestampTz now) static void WalSndLoop(WalSndSendDataCallback send_data) { - /* - * Allocate buffers that will be used for each outgoing and incoming - * message. We do this just once to reduce palloc overhead. - */ - initStringInfo(&output_message); - initStringInfo(&reply_message); - initStringInfo(&tmpbuf); - /* * Initialize the last reply timestamp. That enables timeout processing * from hereon.