@@ -30,9 +30,8 @@ use databend_common_sql::plans::Operator;
3030use databend_common_sql:: plans:: Plan ;
3131use databend_common_sql:: plans:: RelOperator ;
3232use databend_common_sql_test_support:: ColumnStats ;
33- use databend_common_statistics :: Datum ;
33+ use databend_common_sql_test_support :: HistogramStats ;
3434use databend_common_statistics:: Histogram ;
35- use databend_common_statistics:: HistogramBuilder ;
3635
3736use crate :: framework:: LiteTableContext ;
3837use crate :: framework:: golden:: open_golden_file;
@@ -304,6 +303,12 @@ fn column_stat(json: &str) -> Result<BasicColumnStatistics> {
304303 Ok ( stats. to_basic_column_statistics ( ) )
305304}
306305
306+ fn histogram_stat ( json : & str ) -> Result < Histogram > {
307+ let stats: HistogramStats = serde_json:: from_str ( json)
308+ . map_err ( |err| ErrorCode :: Internal ( format ! ( "invalid histogram statistics JSON: {err}" ) ) ) ?;
309+ stats. to_histogram ( )
310+ }
311+
307312fn cases ( ) -> Result < Vec < UnionCase > > {
308313 Ok ( vec ! [
309314 UnionCase {
@@ -408,11 +413,15 @@ fn cases() -> Result<Vec<UnionCase>> {
408413 ) ] ) ,
409414 histograms: HashMap :: from( [ (
410415 "k" . to_string( ) ,
411- HistogramBuilder :: from_ndv(
412- 10 ,
413- 100 ,
414- Some ( ( Datum :: Int ( 0 ) , Datum :: Int ( 9 ) ) ) ,
415- 2 ,
416+ histogram_stat(
417+ r#"{
418+ "accuracy": false,
419+ "buckets": [
420+ {"lower_bound": {"Int": 0}, "upper_bound": {"Int": 4}, "num_values": 50.0, "num_distinct": 5.0},
421+ {"lower_bound": {"Int": 5}, "upper_bound": {"Int": 9}, "num_values": 50.0, "num_distinct": 5.0}
422+ ],
423+ "avg_spacing": 4.5
424+ }"# ,
416425 ) ?,
417426 ) ] ) ,
418427 } ,
@@ -425,11 +434,15 @@ fn cases() -> Result<Vec<UnionCase>> {
425434 ) ] ) ,
426435 histograms: HashMap :: from( [ (
427436 "k" . to_string( ) ,
428- HistogramBuilder :: from_ndv(
429- 10 ,
430- 100 ,
431- Some ( ( Datum :: Int ( 5 ) , Datum :: Int ( 14 ) ) ) ,
432- 2 ,
437+ histogram_stat(
438+ r#"{
439+ "accuracy": false,
440+ "buckets": [
441+ {"lower_bound": {"Int": 5}, "upper_bound": {"Int": 9}, "num_values": 50.0, "num_distinct": 5.0},
442+ {"lower_bound": {"Int": 10}, "upper_bound": {"Int": 14}, "num_values": 50.0, "num_distinct": 5.0}
443+ ],
444+ "avg_spacing": 4.5
445+ }"# ,
433446 ) ?,
434447 ) ] ) ,
435448 } ,
0 commit comments