From 93112ede9adcd49f1bb1f1a408ba383793e2dd39 Mon Sep 17 00:00:00 2001 From: mwish Date: Wed, 26 Jun 2024 18:39:00 +0800 Subject: [PATCH] Optimize memory usage in buffering parquet::ReaderProperties::GetStream --- cpp/src/parquet/properties.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cpp/src/parquet/properties.cc b/cpp/src/parquet/properties.cc index 4e6c558e064d4..b4bf6f0624482 100644 --- a/cpp/src/parquet/properties.cc +++ b/cpp/src/parquet/properties.cc @@ -34,10 +34,10 @@ std::shared_ptr ReaderProperties::GetStream( // of source PARQUET_ASSIGN_OR_THROW( std::shared_ptr<::arrow::io::InputStream> safe_stream, - ::arrow::io::RandomAccessFile::GetStream(source, start, num_bytes)); - PARQUET_ASSIGN_OR_THROW( - auto stream, ::arrow::io::BufferedInputStream::Create(buffer_size_, pool_, - safe_stream, num_bytes)); + ::arrow::io::RandomAccessFile::GetStream(std::move(source), start, num_bytes)); + PARQUET_ASSIGN_OR_THROW(auto stream, ::arrow::io::BufferedInputStream::Create( + std::min(buffer_size_, num_bytes), pool_, + safe_stream, num_bytes)); return stream; } else { PARQUET_ASSIGN_OR_THROW(auto data, source->ReadAt(start, num_bytes));