diff --git a/tsl/src/nodes/decompress_chunk/exec.c b/tsl/src/nodes/decompress_chunk/exec.c index 231bfd2e8..454475adc 100644 --- a/tsl/src/nodes/decompress_chunk/exec.c +++ b/tsl/src/nodes/decompress_chunk/exec.c @@ -324,8 +324,6 @@ decompress_chunk_exec(CustomScanState *node) if (node->custom_ps == NIL) return NULL; - ResetExprContext(econtext); - while (true) { TupleTableSlot *slot = decompress_chunk_create_tuple(state); @@ -335,6 +333,10 @@ decompress_chunk_exec(CustomScanState *node) econtext->ecxt_scantuple = slot; + /* Reset expression memory context to clean out any cruft from + * previous tuple. */ + ResetExprContext(econtext); + if (node->ss.ps.qual && !ExecQual(node->ss.ps.qual, econtext)) { InstrCountFiltered1(node, 1);