From d8f92697f250a182757229a2326afb7541cfe29e Mon Sep 17 00:00:00 2001 From: Onur Tirtir Date: Mon, 2 Aug 2021 11:16:01 +0300 Subject: [PATCH] Free memory used for last stripe read when re-scanning a columnar table (#5143) Instead of setting stripeReadState to NULL, call ColumnarResetRead before re-scanning a columnar table since this function is already designed for doing the necessary clean up when finishing a stripe read. Note that this change shouldn't have a great effect on memory usage since AdvanceStripe was already doing the clean-up for all the stripes except the last one. --- src/backend/columnar/columnar_reader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/columnar/columnar_reader.c b/src/backend/columnar/columnar_reader.c index 5b5dbe46c..cfd052ac2 100644 --- a/src/backend/columnar/columnar_reader.c +++ b/src/backend/columnar/columnar_reader.c @@ -432,7 +432,7 @@ HasUnreadStripe(ColumnarReadState *readState) void ColumnarRescan(ColumnarReadState *readState) { - readState->stripeReadState = NULL; + ColumnarResetRead(readState); readState->currentStripeMetadata = FindNextStripeByRowNumber(readState->relation, COLUMNAR_INVALID_ROW_NUMBER, GetTransactionSnapshot());