From 49f64ce6b476ae9f5506f44d4f1bc53174670ba1 Mon Sep 17 00:00:00 2001
From: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: Fri, 3 Mar 2023 10:42:07 +0000
Subject: [PATCH v2] Deduplicate logicalrep_read_tuple()

---
 src/backend/replication/logical/proto.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/src/backend/replication/logical/proto.c b/src/backend/replication/logical/proto.c
index 3a9d53a61e..7cfc4e847a 100644
--- a/src/backend/replication/logical/proto.c
+++ b/src/backend/replication/logical/proto.c
@@ -895,25 +895,19 @@ 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 */
 
 				/* and data */
 				value->data = palloc(len + 1);
 				pq_copymsgbytes(in, value->data, len);
-				/* not strictly necessary but per StringInfo practice */
+
+				/*
+				 * Not strictly necessary for LOGICALREP_COLUMN_BINARY, but per
+				 * StringInfo practice.
+				 */
 				value->data[len] = '\0';
+
 				/* make StringInfo fully valid */
 				value->len = len;
 				value->cursor = 0;
-- 
2.34.1

