Skip to content

Commit f60b8fe

Browse files
committed
refactor: use VecDeque for outputting data
1 parent 976385c commit f60b8fe

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/query/storages/fuse/src/operations/read/parquet_data_source_deserializer.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414

1515
use std::any::Any;
16+
use std::collections::VecDeque;
1617
use std::ops::BitAnd;
1718
use std::sync::Arc;
1819
use std::time::Instant;
@@ -65,7 +66,7 @@ pub struct DeserializeDataTransform {
6566

6667
input: Arc<InputPort>,
6768
output: Arc<OutputPort>,
68-
output_data: Vec<DataBlock>,
69+
output_data: VecDeque<DataBlock>,
6970
src_schema: DataSchema,
7071
output_schema: DataSchema,
7172
parts: Vec<PartInfoPtr>,
@@ -132,7 +133,7 @@ impl DeserializeDataTransform {
132133
block_reader,
133134
input,
134135
output,
135-
output_data: vec![],
136+
output_data: VecDeque::new(),
136137
src_schema,
137138
output_schema,
138139
parts: vec![],
@@ -233,7 +234,7 @@ impl Processor for DeserializeDataTransform {
233234
return Ok(Event::NeedConsume);
234235
}
235236

236-
if let Some(data_block) = self.output_data.pop() {
237+
if let Some(data_block) = self.output_data.pop_front() {
237238
self.output.push_data(Ok(data_block));
238239
return Ok(Event::NeedConsume);
239240
}
@@ -283,7 +284,7 @@ impl Processor for DeserializeDataTransform {
283284

284285
self.update_scan_metrics(blocks.as_slice());
285286

286-
self.output_data = blocks;
287+
self.output_data = blocks.into();
287288
}
288289

289290
ParquetDataSource::Normal((data, virtual_data)) => {
@@ -318,7 +319,7 @@ impl Processor for DeserializeDataTransform {
318319

319320
self.update_scan_metrics(data_blocks.as_slice());
320321

321-
let mut output_blocks = Vec::with_capacity(data_blocks.len());
322+
let mut output_blocks = VecDeque::with_capacity(data_blocks.len());
322323
for mut data_block in data_blocks {
323324
let origin_num_rows = data_block.num_rows();
324325

@@ -359,7 +360,7 @@ impl Processor for DeserializeDataTransform {
359360
self.block_reader.query_internal_columns(),
360361
self.need_reserve_block_info,
361362
)?;
362-
output_blocks.push(data_block);
363+
output_blocks.push_back(data_block);
363364
}
364365

365366
self.output_data = output_blocks;

0 commit comments

Comments
 (0)