diff --git a/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ArrowColumnarToRowExec.scala b/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ArrowColumnarToRowExec.scala index 6a34b882c..c792cd3df 100644 --- a/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ArrowColumnarToRowExec.scala +++ b/native-sql-engine/core/src/main/scala/com/intel/oap/execution/ArrowColumnarToRowExec.scala @@ -140,6 +140,9 @@ case class ArrowColumnarToRowExec(child: SparkPlan) extends ColumnarToRowTransit arrowSchema, batch.numRows, bufAddrs.toArray, bufSizes.toArray, SparkMemoryUtils.contextMemoryPool().getNativeInstanceId) + // Because nativeConvertColumnarToRow didn't need Buffers of batch anymore, so close immediately +// batch.close() + convertTime += NANOSECONDS.toMillis(System.nanoTime() - beforeConvert) new Iterator[InternalRow] { diff --git a/native-sql-engine/cpp/src/operators/columnar_to_row_converter.cc b/native-sql-engine/cpp/src/operators/columnar_to_row_converter.cc index 51626f66e..60a3101cd 100644 --- a/native-sql-engine/cpp/src/operators/columnar_to_row_converter.cc +++ b/native-sql-engine/cpp/src/operators/columnar_to_row_converter.cc @@ -608,6 +608,9 @@ arrow::Status ColumnarToRowConverter::Write() { support_avx512_); } + // Because didn't need rb_ anymore here, so reset immediately. + rb_.reset(); + return arrow::Status::OK(); }