| # Multiple distinct without grouping. |
| select count(distinct tinyint_col), sum(distinct int_col), count(distinct smallint_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, sum(int_col)), aggif(valid_tid(2,4,6) = 6, count(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: sum(int_col) |
| | Class 2 |
| | output: count(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, sum(int_col)), aggif(valid_tid(2,4,6) = 6, count(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | Class 1 |
| | output: sum:merge(int_col) |
| | Class 2 |
| | output: count:merge(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: sum(int_col) |
| | Class 2 |
| | output: count(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(int_col) WHEN 5 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct without grouping. First needs intermediate tuple. |
| select avg(distinct tinyint_col), sum(distinct int_col), count(distinct smallint_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,7) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,7) = 5, sum(int_col)), aggif(valid_tid(3,5,7) = 7, count(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: sum(int_col) |
| | Class 2 |
| | output: count(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,7) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,7) = 5, sum(int_col)), aggif(valid_tid(3,5,7) = 7, count(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | Class 1 |
| | output: sum:merge(int_col) |
| | Class 2 |
| | output: count:merge(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: sum(int_col) |
| | Class 2 |
| | output: count(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,6) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(int_col) WHEN 6 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct without grouping. Last needs intermediate tuple. |
| select count(distinct tinyint_col), sum(distinct int_col), avg(distinct smallint_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,7) = 2, count(tinyint_col)), aggif(valid_tid(2,4,7) = 4, sum(int_col)), aggif(valid_tid(2,4,7) = 7, avg(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: sum(int_col) |
| | Class 2 |
| | output: avg(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,7) = 2, count(tinyint_col)), aggif(valid_tid(2,4,7) = 4, sum(int_col)), aggif(valid_tid(2,4,7) = 7, avg(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | Class 1 |
| | output: sum:merge(int_col) |
| | Class 2 |
| | output: avg:merge(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: sum(int_col) |
| | Class 2 |
| | output: avg(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(int_col) WHEN 5 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct without grouping. All need intermediate tuples |
| select avg(distinct tinyint_col), avg(distinct int_col), avg(distinct smallint_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,9) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,9) = 6, avg(int_col)), aggif(valid_tid(3,6,9) = 9, avg(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: avg(int_col) |
| | Class 2 |
| | output: avg(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,9) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,9) = 6, avg(int_col)), aggif(valid_tid(3,6,9) = 9, avg(smallint_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | Class 1 |
| | output: avg:merge(int_col) |
| | Class 2 |
| | output: avg:merge(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: avg(int_col) |
| | Class 2 |
| | output: avg(smallint_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,7) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(int_col) WHEN 7 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: int_col |
| | Class 2 |
| | group by: smallint_col |
| | row-size=7B cardinality=30 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct with grouping. |
| select bigint_col, count(distinct tinyint_col), sum(distinct int_col), |
| count(distinct smallint_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, sum(int_col)), aggif(valid_tid(2,4,6) = 6, count(smallint_col)) |
| | group by: CASE valid_tid(2,4,6) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 6 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, sum(int_col)), aggif(valid_tid(2,4,6) = 6, count(smallint_col)) |
| | group by: CASE valid_tid(2,4,6) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 6 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum:merge(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,4,6) WHEN 2 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 6 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(bigint_col) WHEN 3 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(int_col) WHEN 5 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct with grouping. First needs intermediate tuple. |
| select bigint_col, avg(distinct tinyint_col), sum(distinct int_col), |
| count(distinct smallint_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,7) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,7) = 5, sum(int_col)), aggif(valid_tid(3,5,7) = 7, count(smallint_col)) |
| | group by: CASE valid_tid(3,5,7) WHEN 3 THEN bigint_col WHEN 5 THEN bigint_col WHEN 7 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,7) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,7) = 5, sum(int_col)), aggif(valid_tid(3,5,7) = 7, count(smallint_col)) |
| | group by: CASE valid_tid(3,5,7) WHEN 3 THEN bigint_col WHEN 5 THEN bigint_col WHEN 7 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum:merge(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,5,7) WHEN 2 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) WHEN 7 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,6) WHEN 1 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 6 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,4,6) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(int_col) WHEN 6 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct with grouping. Last needs intermediate tuple. |
| select bigint_col, count(distinct tinyint_col), sum(distinct int_col), |
| avg(distinct smallint_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,7) = 2, count(tinyint_col)), aggif(valid_tid(2,4,7) = 4, sum(int_col)), aggif(valid_tid(2,4,7) = 7, avg(smallint_col)) |
| | group by: CASE valid_tid(2,4,7) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 7 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,7) = 2, count(tinyint_col)), aggif(valid_tid(2,4,7) = 4, sum(int_col)), aggif(valid_tid(2,4,7) = 7, avg(smallint_col)) |
| | group by: CASE valid_tid(2,4,7) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 7 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum:merge(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,4,6) WHEN 2 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 6 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: sum(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(bigint_col) WHEN 3 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(int_col) WHEN 5 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct with grouping. All need intermediate tuples |
| select bigint_col, avg(distinct tinyint_col), avg(distinct int_col), |
| avg(distinct smallint_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,9) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,9) = 6, avg(int_col)), aggif(valid_tid(3,6,9) = 9, avg(smallint_col)) |
| | group by: CASE valid_tid(3,6,9) WHEN 3 THEN bigint_col WHEN 6 THEN bigint_col WHEN 9 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: avg(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,9) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,9) = 6, avg(int_col)), aggif(valid_tid(3,6,9) = 9, avg(smallint_col)) |
| | group by: CASE valid_tid(3,6,9) WHEN 3 THEN bigint_col WHEN 6 THEN bigint_col WHEN 9 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,5,8) WHEN 2 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) WHEN 8 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: avg(int_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg(smallint_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,7) WHEN 1 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 7 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,4,7) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(int_col) WHEN 7 THEN murmur_hash(smallint_col) END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, int_col |
| | Class 2 |
| | group by: bigint_col, smallint_col |
| | row-size=31B cardinality=300 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. |
| select count(distinct tinyint_col), count(distinct smallint_col), count(int_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,5) = 2, count(tinyint_col)), aggif(valid_tid(2,4,5) = 4, count(smallint_col)), aggif(valid_tid(2,4,5) = 5, count(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: count(smallint_col) |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,5) = 2, count(tinyint_col)), aggif(valid_tid(2,4,5) = 4, count(smallint_col)), aggif(valid_tid(2,4,5) = 5, count(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | Class 1 |
| | output: count:merge(smallint_col) |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: count(smallint_col) |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(smallint_col) WHEN 5 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. First distinct needs |
| # intermediate agg tuple. |
| select avg(distinct tinyint_col), count(distinct smallint_col), count(int_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,6) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,6) = 5, count(smallint_col)), aggif(valid_tid(3,5,6) = 6, count(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: count(smallint_col) |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,6) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,6) = 5, count(smallint_col)), aggif(valid_tid(3,5,6) = 6, count(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | Class 1 |
| | output: count:merge(smallint_col) |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: count(smallint_col) |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,6) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(smallint_col) WHEN 6 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. Non-distinct needs |
| # intermediate agg tuple. |
| select count(distinct tinyint_col), count(distinct smallint_col), avg(int_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, count(smallint_col)), aggif(valid_tid(2,4,6) = 6, avg(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: count(smallint_col) |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, count(smallint_col)), aggif(valid_tid(2,4,6) = 6, avg(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | Class 1 |
| | output: count:merge(smallint_col) |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: count(tinyint_col) |
| | Class 1 |
| | output: count(smallint_col) |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(smallint_col) WHEN 5 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. All need intermediate agg tuples. |
| select avg(distinct tinyint_col), avg(distinct smallint_col), avg(int_col) |
| from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,8) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,8) = 6, avg(smallint_col)), aggif(valid_tid(3,6,8) = 8, avg(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: avg(smallint_col) |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,8) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,8) = 6, avg(smallint_col)), aggif(valid_tid(3,6,8) = 8, avg(int_col)) |
| | row-size=24B cardinality=1 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | Class 1 |
| | output: avg:merge(smallint_col) |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 06:EXCHANGE [UNPARTITIONED] |
| | |
| 02:AGGREGATE |
| | Class 0 |
| | output: avg(tinyint_col) |
| | Class 1 |
| | output: avg(smallint_col) |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=24B cardinality=3 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,7) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(smallint_col) WHEN 7 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: tinyint_col |
| | Class 1 |
| | group by: smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | row-size=11B cardinality=21 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=7B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct with grouping. |
| select bigint_col, count(distinct tinyint_col), count(distinct smallint_col), |
| count(int_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,5) = 2, count(tinyint_col)), aggif(valid_tid(2,4,5) = 4, count(smallint_col)), aggif(valid_tid(2,4,5) = 5, count(int_col)) |
| | group by: CASE valid_tid(2,4,5) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 5 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,5) = 2, count(tinyint_col)), aggif(valid_tid(2,4,5) = 4, count(smallint_col)), aggif(valid_tid(2,4,5) = 5, count(int_col)) |
| | group by: CASE valid_tid(2,4,5) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 5 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count:merge(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,4,5) WHEN 2 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(bigint_col) WHEN 3 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(smallint_col) WHEN 5 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. First distinct needs |
| # intermediate agg tuple. |
| select bigint_col, avg(distinct tinyint_col), count(distinct smallint_col), |
| count(int_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,6) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,6) = 5, count(smallint_col)), aggif(valid_tid(3,5,6) = 6, count(int_col)) |
| | group by: CASE valid_tid(3,5,6) WHEN 3 THEN bigint_col WHEN 5 THEN bigint_col WHEN 6 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,5,6) = 3, avg(tinyint_col)), aggif(valid_tid(3,5,6) = 5, count(smallint_col)), aggif(valid_tid(3,5,6) = 6, count(int_col)) |
| | group by: CASE valid_tid(3,5,6) WHEN 3 THEN bigint_col WHEN 5 THEN bigint_col WHEN 6 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count:merge(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,5,6) WHEN 2 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) WHEN 6 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: count:merge(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,6) WHEN 1 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 6 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,4,6) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(smallint_col) WHEN 6 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: count(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. Non-distinct needs |
| # intermediate agg tuple. |
| select bigint_col, count(distinct tinyint_col), count(distinct smallint_col), |
| avg(int_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, count(smallint_col)), aggif(valid_tid(2,4,6) = 6, avg(int_col)) |
| | group by: CASE valid_tid(2,4,6) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 6 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(2,4,6) = 2, count(tinyint_col)), aggif(valid_tid(2,4,6) = 4, count(smallint_col)), aggif(valid_tid(2,4,6) = 6, avg(int_col)) |
| | group by: CASE valid_tid(2,4,6) WHEN 2 THEN bigint_col WHEN 4 THEN bigint_col WHEN 6 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: count:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count:merge(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,4,5) WHEN 2 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: count(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: count(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(bigint_col) WHEN 3 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,3,5) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 3 THEN murmur_hash(smallint_col) WHEN 5 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |
| # Multiple distinct and non-distinct without grouping. All need intermediate agg tuples. |
| select bigint_col, avg(distinct tinyint_col), avg(distinct smallint_col), |
| avg(int_col) |
| from functional.alltypes group by bigint_col |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,8) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,8) = 6, avg(smallint_col)), aggif(valid_tid(3,6,8) = 8, avg(int_col)) |
| | group by: CASE valid_tid(3,6,8) WHEN 3 THEN bigint_col WHEN 6 THEN bigint_col WHEN 8 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 02:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: avg(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 01:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 08:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: aggif(valid_tid(3,6,8) = 3, avg(tinyint_col)), aggif(valid_tid(3,6,8) = 6, avg(smallint_col)), aggif(valid_tid(3,6,8) = 8, avg(int_col)) |
| | group by: CASE valid_tid(3,6,8) WHEN 3 THEN bigint_col WHEN 6 THEN bigint_col WHEN 8 THEN bigint_col END |
| | row-size=32B cardinality=11 |
| | |
| 07:AGGREGATE [FINALIZE] |
| | Class 0 |
| | output: avg:merge(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: avg:merge(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 06:EXCHANGE [HASH(CASE valid_tid(2,5,7) WHEN 2 THEN murmur_hash(bigint_col) WHEN 5 THEN murmur_hash(bigint_col) WHEN 7 THEN murmur_hash(bigint_col) END)] |
| | |
| 02:AGGREGATE [STREAMING] |
| | Class 0 |
| | output: avg(tinyint_col) |
| | group by: bigint_col |
| | Class 1 |
| | output: avg(smallint_col) |
| | group by: bigint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=48B cardinality=30 |
| | |
| 05:AGGREGATE |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: avg:merge(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 04:EXCHANGE [HASH(CASE valid_tid(1,4,7) WHEN 1 THEN murmur_hash(bigint_col) WHEN 4 THEN murmur_hash(bigint_col) WHEN 7 THEN murmur_hash(bigint_col) END,CASE valid_tid(1,4,7) WHEN 1 THEN murmur_hash(tinyint_col) WHEN 4 THEN murmur_hash(smallint_col) WHEN 7 THEN 0 END)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | Class 0 |
| | group by: bigint_col, tinyint_col |
| | Class 1 |
| | group by: bigint_col, smallint_col |
| | Class 2 |
| | output: avg(int_col) |
| | group by: bigint_col |
| | row-size=35B cardinality=210 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| HDFS partitions=24/24 files=24 size=478.45KB |
| row-size=15B cardinality=7.30K |
| ==== |