Skip to content

Commit d6638b0

Browse files
committed
refactor: remove column to_values function
1 parent 6d8185b commit d6638b0

File tree

6 files changed

+21
-19
lines changed

6 files changed

+21
-19
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: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,19 @@ 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+
let values: Vec<DataValue> = (0..column.len()).map(|i| column.get(i)).collect();
48+
builder.add_keys(&values);
4849
let filter = builder.build().unwrap();
4950

50-
for key in column.to_values() {
51-
assert!(filter.contains(&key), "key {} present", key);
51+
for key in &values {
52+
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+
let values: Vec<DataValue> = (0..column.len()).map(|i| column.get(i)).collect();
59+
builder.add_keys(&criterion::black_box(values));
5860
let _filter = criterion::black_box(builder.build().unwrap());
5961
})
6062
});
@@ -65,10 +67,11 @@ fn bench_string(c: &mut Criterion) {
6567
let column = block.try_column_by_name("a").unwrap();
6668

6769
let mut builder = Xor8Builder::create();
68-
builder.add_keys(&column.to_values());
70+
let values: Vec<DataValue> = (0..column.len()).map(|i| column.get(i)).collect();
71+
builder.add_keys(&values);
6972
let filter = builder.build().unwrap();
7073

71-
for key in column.to_values() {
74+
for key in values {
7275
assert!(filter.contains(&key), "key {} present", key);
7376
}
7477

@@ -77,7 +80,8 @@ fn bench_string(c: &mut Criterion) {
7780
|b| {
7881
b.iter(|| {
7982
let mut builder = Xor8Builder::create();
80-
builder.add_keys(&criterion::black_box(column.to_values()));
83+
let values: Vec<DataValue> = (0..column.len()).map(|i| column.get(i)).collect();
84+
builder.add_keys(&criterion::black_box(values));
8185
let _filter = criterion::black_box(builder.build().unwrap());
8286
})
8387
},

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)