Skip to content

Commit 9de72eb

Browse files
authored
Merge pull request #9168 from lichuang/issue_9057
refactor: remove column to_values function
2 parents 0c92718 + 4bc46b3 commit 9de72eb

File tree

6 files changed

+18
-18
lines changed

6 files changed

+18
-18
lines changed

src/query/datavalues/src/columns/column.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,6 @@ pub trait Column: Send + Sync {
149149
DFTryFrom::try_from(value)
150150
}
151151

152-
fn to_values(&self) -> Vec<DataValue> {
153-
(0..self.len()).map(|i| self.get(i)).collect()
154-
}
155-
156152
/// Visit each row value of Column
157153
fn for_each<F>(&self, f: F)
158154
where

src/query/functions/src/aggregates/aggregate_approx_count_distinct.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,7 @@ impl AggregateFunction for AggregateApproxCountDistinctFunction {
120120
fn accumulate_row(&self, place: StateAddr, columns: &[ColumnRef], _row: usize) -> Result<()> {
121121
let state = place.get::<AggregateApproxCountDistinctState>();
122122
for column in columns {
123-
column.to_values().iter().for_each(|value| {
124-
state.hll.push(value);
125-
});
123+
(0..column.len()).for_each(|i| state.hll.push(&column.get(i)));
126124
}
127125
Ok(())
128126
}

src/query/pipeline/sinks/src/processors/sinks/subquery_receive_sink.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ impl Sink for SubqueryReceiveSink {
7373
fn consume(&mut self, data_block: DataBlock) -> Result<()> {
7474
for column_index in 0..data_block.num_columns() {
7575
let column = data_block.column(column_index);
76-
let mut values = column.to_values();
76+
let mut values = (0..column.len()).map(|i| column.get(i)).collect();
7777
self.input_columns[column_index].append(&mut values)
7878
}
7979

src/query/service/tests/it/storages/statistics/column_statistics.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use common_datavalues::ColumnRef;
1919
use common_datavalues::DataField;
2020
use common_datavalues::DataSchemaRefExt;
2121
use common_datavalues::DataTypeImpl;
22+
use common_datavalues::DataValue;
2223
use common_datavalues::Series;
2324
use common_datavalues::SeriesFrom;
2425
use common_datavalues::StructColumn;
@@ -102,15 +103,17 @@ fn test_column_statistic() -> Result<()> {
102103

103104
(0..5).for_each(|i| {
104105
let stats = col_stats.get(&(i as u32)).unwrap();
106+
let column = &sample_cols[i];
107+
let values: Vec<DataValue> = (0..column.len()).map(|i| column.get(i)).collect();
105108
assert_eq!(
106109
&stats.min,
107-
sample_cols[i].to_values().iter().min().unwrap(),
110+
values.iter().min().unwrap(),
108111
"checking min of col {}",
109112
i
110113
);
111114
assert_eq!(
112115
&stats.max,
113-
sample_cols[i].to_values().iter().max().unwrap(),
116+
values.iter().max().unwrap(),
114117
"checking max of col {}",
115118
i
116119
);

src/query/storages/index/benches/build_from_block.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,18 @@ fn bench_u64(c: &mut Criterion) {
4444
let column = block.try_column_by_name("a").unwrap();
4545

4646
let mut builder = Xor8Builder::create();
47-
builder.add_keys(&column.to_values());
47+
(0..column.len()).for_each(|i| builder.add_key(&column.get(i)));
4848
let filter = builder.build().unwrap();
4949

50-
for key in column.to_values() {
50+
for i in 0..column.len() {
51+
let key = column.get(i);
5152
assert!(filter.contains(&key), "key {} present", key);
5253
}
5354

5455
c.bench_function("xor8_filter_u64_1m_rows_build_from_column_to_values", |b| {
5556
b.iter(|| {
5657
let mut builder = Xor8Builder::create();
57-
builder.add_keys(&criterion::black_box(column.to_values()));
58+
(0..column.len()).for_each(|i| builder.add_key(&column.get(i)));
5859
let _filter = criterion::black_box(builder.build().unwrap());
5960
})
6061
});
@@ -65,10 +66,11 @@ fn bench_string(c: &mut Criterion) {
6566
let column = block.try_column_by_name("a").unwrap();
6667

6768
let mut builder = Xor8Builder::create();
68-
builder.add_keys(&column.to_values());
69+
(0..column.len()).for_each(|i| builder.add_key(&column.get(i)));
6970
let filter = builder.build().unwrap();
7071

71-
for key in column.to_values() {
72+
for i in 0..column.len() {
73+
let key = column.get(i);
7274
assert!(filter.contains(&key), "key {} present", key);
7375
}
7476

@@ -77,7 +79,7 @@ fn bench_string(c: &mut Criterion) {
7779
|b| {
7880
b.iter(|| {
7981
let mut builder = Xor8Builder::create();
80-
builder.add_keys(&criterion::black_box(column.to_values()));
82+
(0..column.len()).for_each(|i| builder.add_key(&column.get(i)));
8183
let _filter = criterion::black_box(builder.build().unwrap());
8284
})
8385
},

src/query/storages/index/tests/it/filters/xor8.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,11 @@ fn test_xor_bitmap_data_block() -> Result<()> {
195195
let column = block.try_column_by_name("a")?;
196196

197197
let mut builder = Xor8Builder::create();
198-
builder.add_keys(&column.to_values());
198+
let values: Vec<DataValue> = (0..column.len()).map(|i| column.get(i)).collect();
199+
builder.add_keys(&values);
199200
let filter = builder.build()?;
200201

201-
for key in column.to_values() {
202+
for key in values {
202203
assert!(filter.contains(&key), "key {} not present", key);
203204
}
204205

0 commit comments

Comments
 (0)