Skip to content

Commit fa69f03

Browse files
committed
add xor distinct count test case
1 parent d901add commit fa69f03

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

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

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,50 @@ use crate::storages::fuse::table_test_fixture::TestFixture;
4646

4747
#[test]
4848
fn test_ft_stats_block_stats() -> common_exception::Result<()> {
49-
let schema = DataSchemaRefExt::create(vec![DataField::new("a", i32::to_data_type())]);
50-
let block = DataBlock::create(schema, vec![Series::from_data(vec![1, 2, 3])]);
49+
let schema = DataSchemaRefExt::create(vec![
50+
DataField::new("a", i32::to_data_type()),
51+
DataField::new("b", Vu8::to_data_type()),
52+
]);
53+
let block = DataBlock::create(schema, vec![
54+
Series::from_data(vec![1, 2, 3]),
55+
Series::from_data(vec!["aa", "aa", "bb"]),
56+
]);
5157
let r = gen_columns_statistics(&block, None)?;
52-
assert_eq!(1, r.len());
58+
assert_eq!(2, r.len());
59+
let col_stats = r.get(&0).unwrap();
60+
assert_eq!(col_stats.min, DataValue::Int64(1));
61+
assert_eq!(col_stats.max, DataValue::Int64(3));
62+
assert_eq!(col_stats.distinct_of_values, Some(3));
63+
let col_stats = r.get(&1).unwrap();
64+
assert_eq!(col_stats.min, DataValue::String(b"aa".to_vec()));
65+
assert_eq!(col_stats.max, DataValue::String(b"bb".to_vec()));
66+
assert_eq!(col_stats.distinct_of_values, Some(2));
67+
Ok(())
68+
}
69+
70+
#[test]
71+
fn test_ft_stats_block_stats_with_column_distinct_count() -> common_exception::Result<()> {
72+
let schema = DataSchemaRefExt::create(vec![
73+
DataField::new("a", i32::to_data_type()),
74+
DataField::new("b", Vu8::to_data_type()),
75+
]);
76+
let block = DataBlock::create(schema, vec![
77+
Series::from_data(vec![1, 2, 3]),
78+
Series::from_data(vec!["aa", "aa", "bb"]),
79+
]);
80+
let mut column_distinct_count = HashMap::new();
81+
column_distinct_count.insert(0, 3);
82+
column_distinct_count.insert(1, 2);
83+
let r = gen_columns_statistics(&block, Some(column_distinct_count))?;
84+
assert_eq!(2, r.len());
5385
let col_stats = r.get(&0).unwrap();
5486
assert_eq!(col_stats.min, DataValue::Int64(1));
5587
assert_eq!(col_stats.max, DataValue::Int64(3));
88+
assert_eq!(col_stats.distinct_of_values, Some(3));
89+
let col_stats = r.get(&1).unwrap();
90+
assert_eq!(col_stats.min, DataValue::String(b"aa".to_vec()));
91+
assert_eq!(col_stats.max, DataValue::String(b"bb".to_vec()));
92+
assert_eq!(col_stats.distinct_of_values, Some(2));
5693
Ok(())
5794
}
5895

0 commit comments

Comments
 (0)