Hi,

logicalrep_read_tuple() duplicates code for LOGICALREP_COLUMN_TEXT and
LOGICALREP_COLUMN_BINARY introduced by commit 9de77b5. While it
doesn't hurt anyone, deduplication makes code a bit leaner by 57 bytes
[1]. I've attached a patch for $SUBJECT.

Thoughts?

[1] size ./src/backend/replication/logical/proto.o
PATCHED:
   text    data     bss     dec     hex filename
  15558       0       0   15558    3cc6
./src/backend/replication/logical/proto.o

HEAD:
   text    data     bss     dec     hex filename
  15615       0       0   15615    3cff
./src/backend/replication/logical/proto.o

--
Bharath Rupireddy
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
From 9c645a11a56b3729b4f9184e6bfb7a6fcf834692 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Wed, 18 Jan 2023 05:14:47 +0000
Subject: [PATCH v1] Deduplicate logicalrep_read_tuple()

---
 src/backend/replication/logical/proto.c | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/src/backend/replication/logical/proto.c b/src/backend/replication/logical/proto.c
index 3a9d53a61e..86e0750fde 100644
--- a/src/backend/replication/logical/proto.c
+++ b/src/backend/replication/logical/proto.c
@@ -895,17 +895,6 @@ logicalrep_read_tuple(StringInfo in, LogicalRepTupleData *tuple)
 				/* we don't receive the value of an unchanged column */
 				break;
 			case LOGICALREP_COLUMN_TEXT:
-				len = pq_getmsgint(in, 4);	/* read length */
-
-				/* and data */
-				value->data = palloc(len + 1);
-				pq_copymsgbytes(in, value->data, len);
-				value->data[len] = '\0';
-				/* make StringInfo fully valid */
-				value->len = len;
-				value->cursor = 0;
-				value->maxlen = len;
-				break;
 			case LOGICALREP_COLUMN_BINARY:
 				len = pq_getmsgint(in, 4);	/* read length */
 
-- 
2.34.1

Reply via email to