@@ -175,83 +175,6 @@ async fn count_aggregated_cube() -> Result<()> {
175175 Ok ( ( ) )
176176}
177177
178- #[ tokio:: test]
179- async fn duplicate_grouping_sets_are_preserved ( ) -> Result < ( ) > {
180- let ctx = SessionContext :: new ( ) ;
181- let schema = Arc :: new ( Schema :: new ( vec ! [
182- Field :: new( "deptno" , DataType :: Int32 , false ) ,
183- Field :: new( "job" , DataType :: Utf8 , true ) ,
184- Field :: new( "sal" , DataType :: Int32 , true ) ,
185- Field :: new( "comm" , DataType :: Int32 , true ) ,
186- ] ) ) ;
187- let batch = RecordBatch :: try_new (
188- Arc :: clone ( & schema) ,
189- vec ! [
190- Arc :: new( Int32Array :: from( vec![ 10 , 20 ] ) ) ,
191- Arc :: new( StringArray :: from( vec![ Some ( "CLERK" ) , Some ( "MANAGER" ) ] ) ) ,
192- Arc :: new( Int32Array :: from( vec![ 1300 , 3000 ] ) ) ,
193- Arc :: new( Int32Array :: from( vec![ None , None ] ) ) ,
194- ] ,
195- ) ?;
196- let provider = MemTable :: try_new ( Arc :: clone ( & schema) , vec ! [ vec![ batch] ] ) ?;
197- ctx. register_table ( "dup_grouping_sets" , Arc :: new ( provider) ) ?;
198-
199- let results = plan_and_collect (
200- & ctx,
201- "
202- SELECT deptno, job, sal, sum(comm) AS sum_comm,
203- grouping(deptno) AS deptno_flag,
204- grouping(job) AS job_flag,
205- grouping(sal) AS sal_flag
206- FROM dup_grouping_sets
207- GROUP BY GROUPING SETS ((deptno, job), (deptno, sal), (deptno, job))
208- ORDER BY deptno, job, sal, deptno_flag, job_flag, sal_flag
209- " ,
210- )
211- . await ?;
212-
213- assert_eq ! ( results. len( ) , 1 ) ;
214- assert_snapshot ! ( batches_to_string( & results) , @r"
215- +--------+---------+------+----------+-------------+----------+----------+
216- | deptno | job | sal | sum_comm | deptno_flag | job_flag | sal_flag |
217- +--------+---------+------+----------+-------------+----------+----------+
218- | 10 | CLERK | | | 0 | 0 | 1 |
219- | 10 | CLERK | | | 0 | 0 | 1 |
220- | 10 | | 1300 | | 0 | 1 | 0 |
221- | 20 | MANAGER | | | 0 | 0 | 1 |
222- | 20 | MANAGER | | | 0 | 0 | 1 |
223- | 20 | | 3000 | | 0 | 1 | 0 |
224- +--------+---------+------+----------+-------------+----------+----------+
225- " ) ;
226-
227- let results = plan_and_collect (
228- & ctx,
229- "
230- SELECT deptno, job, sal,
231- grouping(deptno, job, sal) AS grouping_id
232- FROM dup_grouping_sets
233- GROUP BY GROUPING SETS ((deptno, job), (deptno, sal), (deptno, job))
234- ORDER BY deptno, job, sal, grouping_id
235- " ,
236- )
237- . await ?;
238-
239- assert_eq ! ( results. len( ) , 1 ) ;
240- assert_snapshot ! ( batches_to_string( & results) , @r"
241- +--------+---------+------+-------------+
242- | deptno | job | sal | grouping_id |
243- +--------+---------+------+-------------+
244- | 10 | CLERK | | 1 |
245- | 10 | CLERK | | 1 |
246- | 10 | | 1300 | 2 |
247- | 20 | MANAGER | | 1 |
248- | 20 | MANAGER | | 1 |
249- | 20 | | 3000 | 2 |
250- +--------+---------+------+-------------+
251- " ) ;
252- Ok ( ( ) )
253- }
254-
255178async fn run_count_distinct_integers_aggregated_scenario (
256179 partitions : Vec < Vec < ( & str , u64 ) > > ,
257180) -> Result < Vec < RecordBatch > > {
0 commit comments