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
This commit is contained in:
Amit Kapila 2023-03-06 09:54:57 +05:30
parent ce340e530d
commit 9effa55236
1 changed files with 6 additions and 12 deletions

View File

@ -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;