# Test with aggregate expressions which ignore the distinct keyword.
select min(month), max(year), ndv(day) from functional.alltypesagg
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: min(`month`), max(`year`), ndv(`day`)
|  row-size=16B cardinality=1
|
00:UNION
   constant-operands=11
   row-size=12B cardinality=11
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: min(`month`), max(`year`), ndv(`day`)
|  row-size=16B cardinality=1
|
00:UNION
   constant-operands=11
   row-size=12B cardinality=11
====
# Test with explicit distinct keyword.
select count(distinct year), ndv(day) from functional.alltypesagg
---- PLAN
PLAN-ROOT SINK
|
02:AGGREGATE [FINALIZE]
|  output: count(`year`), ndv:merge(`day`)
|  row-size=16B cardinality=1
|
01:AGGREGATE
|  output: ndv(`day`)
|  group by: `year`
|  row-size=12B cardinality=1
|
00:UNION
   constant-operands=11
   row-size=8B cardinality=11
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
02:AGGREGATE [FINALIZE]
|  output: count(`year`), ndv:merge(`day`)
|  row-size=16B cardinality=1
|
01:AGGREGATE
|  output: ndv(`day`)
|  group by: `year`
|  row-size=12B cardinality=1
|
00:UNION
   constant-operands=11
   row-size=8B cardinality=11
====
# Test static partition pruning.
select min(month), max(day) from functional.alltypesagg where year = 2010 and day = 1;
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: min(`month`), max(`day`)
|  row-size=8B cardinality=1
|
00:UNION
   constant-operands=1
   row-size=8B cardinality=1
====
# Test with cases where all partitions are pruned.
select c1, c2 from
  (select min(year) c1, max(month) c2, count(int_col) c3
   from functional.alltypes where year = 2000) t;
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: min(`year`), max(`month`)
|  row-size=8B cardinality=0
|
00:UNION
   row-size=8B cardinality=0
====
# Test with group by and having clauses.
select ndv(month) from functional.alltypesagg group by year having max(day)=10
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: ndv(`month`), max(`day`)
|  group by: `year`
|  having: max(`day`) = 10
|  row-size=16B cardinality=0
|
00:UNION
   constant-operands=11
   row-size=12B cardinality=11
====
# Test with group-by clauses (no aggregate expressions) only.
select month from functional.alltypes group by month
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  group by: `month`
|  row-size=4B cardinality=12
|
00:UNION
   constant-operands=12
   row-size=4B cardinality=12
====
# Test with distinct select list.
select distinct month from functional.alltypes where month % 2 = 0
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  group by: `month`
|  row-size=4B cardinality=6
|
00:UNION
   constant-operands=6
   row-size=4B cardinality=6
====
# Test with joins on the partition keys.
select min(a.month)
from functional.alltypes as a, functional.alltypesagg as b
where a.year = b.year
---- PLAN
PLAN-ROOT SINK
|
03:AGGREGATE [FINALIZE]
|  output: min(a.`month`)
|  row-size=4B cardinality=1
|
02:HASH JOIN [INNER JOIN]
|  hash predicates: a.`year` = b.`year`
|  row-size=12B cardinality=24
|
|--01:UNION
|     constant-operands=1
|     row-size=4B cardinality=1
|
00:UNION
   constant-operands=24
   row-size=8B cardinality=24
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
03:AGGREGATE [FINALIZE]
|  output: min(a.`month`)
|  row-size=4B cardinality=1
|
02:HASH JOIN [INNER JOIN, BROADCAST]
|  hash predicates: a.`year` = b.`year`
|  row-size=12B cardinality=24
|
|--04:EXCHANGE [UNPARTITIONED]
|  |
|  01:UNION
|     constant-operands=1
|     row-size=4B cardinality=1
|
00:UNION
   constant-operands=24
   row-size=8B cardinality=24
====
# Test query which contains both distinct and non-distinct aggregate
# expressions and make sure the optimization is applied when applicable.
select * from
  (select distinct year from functional.alltypes) a join
  (select year, count(month) from functional.alltypes group by year) b
on (a.year = b.year)
---- PLAN
PLAN-ROOT SINK
|
04:HASH JOIN [INNER JOIN]
|  hash predicates: `year` = `year`
|  runtime filters: RF000 <- `year`
|  row-size=16B cardinality=4
|
|--01:AGGREGATE [FINALIZE]
|  |  group by: `year`
|  |  row-size=4B cardinality=2
|  |
|  00:UNION
|     constant-operands=2
|     row-size=4B cardinality=2
|
03:AGGREGATE [FINALIZE]
|  output: count(`month`)
|  group by: `year`
|  row-size=12B cardinality=2
|
02:SCAN HDFS [functional.alltypes]
   partitions=24/24 files=24 size=478.45KB
   runtime filters: RF000 -> functional.alltypes.year
   row-size=8B cardinality=7.30K
====
# Test queries with tableRefs which cannot be evaluated by metadata.
select min(a.year), ndv(b.timestamp_col) from
functional.alltypes a, functional.alltypesnopart b
---- PLAN
PLAN-ROOT SINK
|
03:AGGREGATE [FINALIZE]
|  output: min(a.`year`), ndv(b.timestamp_col)
|  row-size=12B cardinality=0
|
02:NESTED LOOP JOIN [CROSS JOIN]
|  row-size=20B cardinality=0
|
|--01:SCAN HDFS [functional.alltypesnopart b]
|     partitions=1/1 files=0 size=0B
|     row-size=16B cardinality=0
|
00:UNION
   constant-operands=2
   row-size=4B cardinality=2
====
# Test that non-partitioning slots which aren't materialized won't block the
# optimization from being applied.
select c1, c2 from
  (select ndv(a.year + b.year) c1, min(a.month + b.month) c2, count(a.int_col) c3 from
   functional.alltypes a, functional.alltypesagg b) t
---- PLAN
PLAN-ROOT SINK
|
03:AGGREGATE [FINALIZE]
|  output: ndv(a.`year` + b.`year`), min(a.`month` + b.`month`)
|  row-size=16B cardinality=1
|
02:NESTED LOOP JOIN [CROSS JOIN]
|  row-size=16B cardinality=24
|
|--01:UNION
|     constant-operands=1
|     row-size=8B cardinality=1
|
00:UNION
   constant-operands=24
   row-size=8B cardinality=24
====
# IMPALA-2948. Unmaterialized slots won't block the optimization (the hash join version).
select t1.int_col
from functional.alltypestiny t1 inner join
  (select count(t2.tinyint_col) = 1337 as boolean_col,
          min(t2.year) as int_col from functional.alltypestiny t2) t3
on (t1.int_col = t3.int_col)
---- PLAN
PLAN-ROOT SINK
|
03:HASH JOIN [INNER JOIN]
|  hash predicates: t1.int_col = min(t2.`year`)
|  runtime filters: RF000 <- min(t2.`year`)
|  row-size=8B cardinality=8
|
|--02:AGGREGATE [FINALIZE]
|  |  output: min(t2.`year`)
|  |  row-size=4B cardinality=1
|  |
|  01:UNION
|     constant-operands=1
|     row-size=4B cardinality=1
|
00:SCAN HDFS [functional.alltypestiny t1]
   partitions=4/4 files=4 size=460B
   runtime filters: RF000 -> t1.int_col
   row-size=4B cardinality=8
====
# Test with with clauses on the partition keys.
with c1 as (select distinct month from functional.alltypes),
     c2 as (select distinct year from functional.alltypes)
select ndv(month) from (select * from c1 union all select * from c2) t
---- PLAN
PLAN-ROOT SINK
|
05:AGGREGATE [FINALIZE]
|  output: ndv(month)
|  row-size=8B cardinality=1
|
00:UNION
|  row-size=4B cardinality=14
|
|--04:AGGREGATE [FINALIZE]
|  |  group by: `year`
|  |  row-size=4B cardinality=2
|  |
|  03:UNION
|     constant-operands=2
|     row-size=4B cardinality=2
|
02:AGGREGATE [FINALIZE]
|  group by: `month`
|  row-size=4B cardinality=12
|
01:UNION
   constant-operands=12
   row-size=4B cardinality=12
====
# If slots other than partition keys are accessed, make sure scan nodes are generated.
select date_string_col, min(month) from functional.alltypes group by date_string_col
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: min(`month`)
|  group by: date_string_col
|  row-size=24B cardinality=736
|
00:SCAN HDFS [functional.alltypes]
   partitions=24/24 files=24 size=478.45KB
   row-size=24B cardinality=7.30K
====
# Make sure non-distinct aggregation functions will generate scan nodes.
select count(month) from functional.alltypes
---- PLAN
PLAN-ROOT SINK
|
01:AGGREGATE [FINALIZE]
|  output: count(`month`)
|  row-size=8B cardinality=1
|
00:SCAN HDFS [functional.alltypes]
   partitions=24/24 files=24 size=478.45KB
   row-size=4B cardinality=7.30K
====
# Make sure that queries without any aggregation will generate scan nodes.
select month from functional.alltypes order by year
---- PLAN
PLAN-ROOT SINK
|
01:SORT
|  order by: year ASC
|  row-size=8B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes]
   partitions=24/24 files=24 size=478.45KB
   row-size=8B cardinality=7.30K
====
