From 889225cdc868139f5cf889497964b1a1ae0d5681 Mon Sep 17 00:00:00 2001 From: Bharath Rupireddy Date: Fri, 26 Jun 2020 15:06:24 +0530 Subject: [PATCH v1] Remove Extra palloc Of raw_buf For Binary Format In COPY FROM For binary files raw_buf is not used, instead, attribute_buf is used in CopyReadBinaryAttribute. Hence, don't palloc raw_buf. --- src/backend/commands/copy.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index 6b1fd6d4cc..0cdac16eac 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -3367,7 +3367,15 @@ BeginCopyFrom(ParseState *pstate, initStringInfo(&cstate->attribute_buf); initStringInfo(&cstate->line_buf); cstate->line_buf_converted = false; - cstate->raw_buf = (char *) palloc(RAW_BUF_SIZE + 1); + + /* For binary files raw_buf is not used, + * instead, attribute_buf is used in + * CopyReadBinaryAttribute. Hence, don't palloc + * raw_buf. + */ + if (!cstate->binary) + cstate->raw_buf = (char *) palloc(RAW_BUF_SIZE + 1); + cstate->raw_buf_index = cstate->raw_buf_len = 0; /* Assign range table, we'll need it in CopyFrom. */ -- 2.25.1