From 9effa5523601de52c94fb778b4a00a183a9aa056 Mon Sep 17 00:00:00 2001 From: Amit Kapila Date: Mon, 6 Mar 2023 09:54:57 +0530 Subject: [PATCH] Deduplicate handling of binary and text modes in logicalrep_read_tuple(). Author: Bharath Rupireddy Reviewed-by: Peter Smith Discussion: https://postgr.es/m/CALj2ACXdbq7kW_+bRrSGMsR6nefCvwbHBJ5J51mr3gFf7QysTA@mail.gmail.com --- 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 3a9d53a61ed..f3087132758 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.39.5