From ae8479e3abfa4e19dafcea5bc30638fdf8c4355b Mon Sep 17 00:00:00 2001 From: Bharath Rupireddy Date: Sat, 27 Jun 2020 09:18:22 +0530 Subject: [PATCH v3] Remove Extra palloc Of raw_buf For Binary Format In COPY FROM For binary files raw_buf is not used and instead attribute_buf is used in CopyReadBinaryAttribute. Hence, don't palloc raw_buf for binary files. --- src/backend/commands/copy.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index 6b1fd6d4cc..6ddf3bee99 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -3367,7 +3367,14 @@ 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 and instead attribute_buf + * is used in CopyReadBinaryAttribute. Hence, don't palloc raw_buf + * for binary files. + */ + cstate->raw_buf = (cstate->binary) ? NULL : (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