Skip to content

Commit f3157fc

Browse files
committed
refactor: use VecDeque for outputting data
1 parent a297715 commit f3157fc

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

+7-6
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![],
@@ -231,7 +232,7 @@ impl Processor for DeserializeDataTransform {
231232
return Ok(Event::NeedConsume);
232233
}
233234

234-
if let Some(data_block) = self.output_data.pop() {
235+
if let Some(data_block) = self.output_data.pop_front() {
235236
self.output.push_data(Ok(data_block));
236237
return Ok(Event::NeedConsume);
237238
}
@@ -281,7 +282,7 @@ impl Processor for DeserializeDataTransform {
281282

282283
self.update_scan_metrics(blocks.as_slice());
283284

284-
self.output_data = blocks;
285+
self.output_data = blocks.into();
285286
}
286287

287288
ParquetDataSource::Normal((data, virtual_data)) => {
@@ -316,7 +317,7 @@ impl Processor for DeserializeDataTransform {
316317

317318
self.update_scan_metrics(data_blocks.as_slice());
318319

319-
let mut output_blocks = Vec::with_capacity(data_blocks.len());
320+
let mut output_blocks = VecDeque::with_capacity(data_blocks.len());
320321
for mut data_block in data_blocks {
321322
let origin_num_rows = data_block.num_rows();
322323

@@ -357,7 +358,7 @@ impl Processor for DeserializeDataTransform {
357358
self.block_reader.query_internal_columns(),
358359
self.need_reserve_block_info,
359360
)?;
360-
output_blocks.push(data_block);
361+
output_blocks.push_back(data_block);
361362
}
362363

363364
self.output_data = output_blocks;

0 commit comments

Comments
 (0)