@@ -36,7 +36,7 @@ use datafusion_expr::expr::{GroupingSet, Sort};
36
36
use datafusion_expr:: { avg, col, count, lit, max, sum, Expr , ExprSchemable } ;
37
37
38
38
#[ tokio:: test]
39
- async fn count_star ( ) -> Result < ( ) > {
39
+ async fn count_wildcard ( ) -> Result < ( ) > {
40
40
let ctx = SessionContext :: new ( ) ;
41
41
42
42
let testdata = datafusion:: test_util:: parquet_test_data ( ) ;
@@ -48,60 +48,38 @@ async fn count_star() -> Result<()> {
48
48
. await ?;
49
49
50
50
let results = df
51
+ . clone ( )
51
52
. aggregate ( vec ! [ ] , vec ! [ count( Expr :: Wildcard ) ] ) ?
53
+ . explain ( false , false )
54
+ . unwrap ( )
52
55
. collect ( )
53
56
. await ?;
54
57
55
58
let expected = vec ! [
56
- "+-----------------+" ,
57
- "| COUNT(UInt8(1)) |" ,
58
- "+-----------------+" ,
59
- "| 7300 |" ,
60
- "+-----------------+" ,
59
+ "+---------------+---------------------------------------------------+" ,
60
+ "| plan_type | plan |" ,
61
+ "+---------------+---------------------------------------------------+" ,
62
+ "| | |" ,
63
+ "| | EmptyExec: produce_one_row=true |" ,
64
+ "| | TableScan: ?table? projection=[id] |" ,
65
+ "| logical_plan | Aggregate: groupBy=[[]], aggr=[[COUNT(UInt8(1))]] |" ,
66
+ "| physical_plan | ProjectionExec: expr=[7300 as COUNT(UInt8(1))] |" ,
67
+ "+---------------+---------------------------------------------------+" ,
61
68
] ;
62
69
assert_batches_sorted_eq ! ( expected, & results) ;
63
70
64
- Ok ( ( ) )
65
- }
66
-
67
- #[ tokio:: test]
68
- async fn count_test ( ) -> Result < ( ) > {
69
- let mut ctx = SessionContext :: new ( ) ;
70
- let disable_aggregate_statistics = true ;
71
-
72
- //disable or not,this test case should be passed
73
- if disable_aggregate_statistics {
74
- let with_out_aggregate_statistics = ctx
75
- . state ( )
76
- . physical_optimizers ( )
77
- . iter ( )
78
- . filter ( |optimizer| optimizer. as_ref ( ) . name ( ) . ne ( "aggregate_statistics" ) )
79
- . map ( |optimizer| optimizer. clone ( ) )
80
- . collect ( ) ;
81
- let state = ctx
82
- . state ( )
83
- . with_physical_optimizer_rules ( with_out_aggregate_statistics) ;
84
- ctx = SessionContext :: with_state ( state) ;
85
- }
86
-
87
- let testdata = datafusion:: test_util:: parquet_test_data ( ) ;
88
- ctx. register_parquet (
89
- "alltypes_tiny_pages" ,
90
- & format ! ( "{testdata}/alltypes_tiny_pages.parquet" ) ,
91
- ParquetReadOptions :: default ( ) ,
92
- )
93
- . await ?;
94
- let results = ctx
95
- . sql ( "SELECT count(id), max(id), min(id) FROM alltypes_tiny_pages" )
96
- . await ?
71
+ let results = df
72
+ . clone ( )
73
+ . aggregate ( vec ! [ ] , vec ! [ count( Expr :: Wildcard ) ] ) ?
97
74
. collect ( )
98
75
. await ?;
76
+
99
77
let expected = vec ! [
100
- "+-------------------------------+-----------------------------+----------------------------- +" ,
101
- "| COUNT(alltypes_tiny_pages.id) | MAX(alltypes_tiny_pages.id) | MIN(alltypes_tiny_pages.id ) |" ,
102
- "+-------------------------------+-----------------------------+----------------------------- +" ,
103
- "| 7300 | 7299 | 0 |" ,
104
- "+-------------------------------+-----------------------------+----------------------------- +" ,
78
+ "+-----------------+" ,
79
+ "| COUNT(UInt8(1) ) |" ,
80
+ "+-----------------+" ,
81
+ "| 7300 |" ,
82
+ "+-----------------+" ,
105
83
] ;
106
84
assert_batches_sorted_eq ! ( expected, & results) ;
107
85
0 commit comments