| # all partitions are pruned during planning |
| select * FROM functional.alltypes |
| where cast(year as string) = '2019-01-01' |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: CAST(`year` AS STRING) = '2019-01-01' |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 01:EXCHANGE [UNPARTITIONED] |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: CAST(`year` AS STRING) = '2019-01-01' |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| # predicate is evaluated by the scan node |
| select zip, count(*) |
| from functional.testtbl |
| where name like 'm%' |
| group by 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | group by: zip |
| | row-size=12B cardinality=0 |
| | |
| 00:SCAN HDFS [functional.testtbl] |
| partitions=1/1 files=0 size=0B |
| predicates: name LIKE 'm%' |
| row-size=16B cardinality=0 |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 04:EXCHANGE [UNPARTITIONED] |
| | |
| 03:AGGREGATE [FINALIZE] |
| | output: count:merge(*) |
| | group by: zip |
| | row-size=12B cardinality=0 |
| | |
| 02:EXCHANGE [HASH(zip)] |
| | |
| 01:AGGREGATE [STREAMING] |
| | output: count(*) |
| | group by: zip |
| | row-size=12B cardinality=0 |
| | |
| 00:SCAN HDFS [functional.testtbl] |
| partitions=1/1 files=0 size=0B |
| predicates: name LIKE 'm%' |
| row-size=16B cardinality=0 |
| ==== |
| # all partitions are selected |
| select * from functional.alltypes |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partitions=24/24 files=24 size=478.45KB |
| row-size=89B cardinality=7.30K |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=1/090101.txt 0:20433 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=10/091001.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=11/091101.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=12/091201.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=2/090201.txt 0:18555 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=3/090301.txt 0:20543 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=4/090401.txt 0:20079 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=5/090501.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=6/090601.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=7/090701.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=8/090801.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=9/090901.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=1/100101.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=10/101001.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=11/101101.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=12/101201.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=2/100201.txt 0:18835 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=3/100301.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=4/100401.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=5/100501.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=6/100601.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=7/100701.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=8/100801.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2010/month=9/100901.txt 0:20179 |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 01:EXCHANGE [UNPARTITIONED] |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partitions=24/24 files=24 size=478.45KB |
| row-size=89B cardinality=7.30K |
| ==== |
| # predicate on first partition key |
| select id, month from functional.alltypes where year = 2009 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009 |
| partitions=12/24 files=12 size=238.68KB |
| row-size=8B cardinality=3.65K |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=1/090101.txt 0:20433 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=10/091001.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=11/091101.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=12/091201.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=2/090201.txt 0:18555 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=3/090301.txt 0:20543 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=4/090401.txt 0:20079 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=5/090501.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=6/090601.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=7/090701.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=8/090801.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=9/090901.txt 0:20179 |
| ---- DISTRIBUTEDPLAN |
| PLAN-ROOT SINK |
| | |
| 01:EXCHANGE [UNPARTITIONED] |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009 |
| partitions=12/24 files=12 size=238.68KB |
| row-size=8B cardinality=3.65K |
| ==== |
| # same predicate, phrased differently |
| select * from functional.alltypes where year = 2009.0 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009.0 |
| partitions=12/24 files=12 size=238.68KB |
| row-size=89B cardinality=3.65K |
| ==== |
| select * from functional.alltypes where 2009 = year |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009 |
| partitions=12/24 files=12 size=238.68KB |
| row-size=89B cardinality=3.65K |
| ==== |
| select * from functional.alltypes where 2009 <=> year |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` IS NOT DISTINCT FROM 2009 |
| partitions=12/24 files=12 size=238.68KB |
| row-size=89B cardinality=3.65K |
| ==== |
| # compound predicate on the second partition key |
| select * from functional.alltypes where !(month > 2) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`month` > 2) |
| partitions=4/24 files=4 size=76.83KB |
| row-size=89B cardinality=1.18K |
| ==== |
| # nested compound predicates on the second partition key |
| select * from functional.alltypes where !(!(month=1)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (NOT (`month` = 1)) |
| partitions=2/24 files=2 size=40.32KB |
| row-size=89B cardinality=620 |
| ==== |
| select * from functional.alltypes where !(!(month<=>1)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (NOT (`month` IS NOT DISTINCT FROM 1)) |
| partitions=2/24 files=2 size=40.32KB |
| row-size=89B cardinality=620 |
| ==== |
| # predicates on both partition keys one of which is a compound predicate with NOT |
| select * from functional.alltypes where year=2009 and !(month < 6) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, NOT (`month` < 6) |
| partitions=7/24 files=7 size=140.58KB |
| row-size=89B cardinality=2.14K |
| ==== |
| # compound predicates on both partition keys |
| select * from functional.alltypes where !(year < 2009) and !(month < 6) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`year` < 2009), NOT (`month` < 6) |
| partitions=14/24 files=14 size=281.15KB |
| row-size=89B cardinality=4.28K |
| ==== |
| # compound predicate on a conjunct |
| select * from functional.alltypes where !(year = 2009 and month > 6) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`year` = 2009 AND `month` > 6) |
| partitions=18/24 files=18 size=357.58KB |
| row-size=89B cardinality=5.46K |
| ==== |
| select * from functional.alltypes where !(year <=> 2009 and month > 6) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`year` IS NOT DISTINCT FROM 2009 AND `month` > 6) |
| partitions=18/24 files=18 size=357.58KB |
| row-size=89B cardinality=5.46K |
| ==== |
| select * from functional.alltypes where !(year <=> 2009) or !(month > 6) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`year` IS NOT DISTINCT FROM 2009) OR NOT (`month` > 6) |
| partitions=18/24 files=18 size=357.58KB |
| row-size=89B cardinality=5.46K |
| ==== |
| # compound predicate on a disjunct |
| select * from functional.alltypes where !(month = 6 or month = 8) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT `month` IN (6, 8) |
| partitions=20/24 files=20 size=398.31KB |
| row-size=89B cardinality=6.08K |
| ==== |
| select * from functional.alltypes where !(month <=> 6 or month <=> 8) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`month` IS NOT DISTINCT FROM 6 OR `month` IS NOT DISTINCT FROM 8) |
| partitions=20/24 files=20 size=398.31KB |
| row-size=89B cardinality=6.08K |
| ==== |
| # not predicate with is null |
| select * from functional.alltypes where not (year = 2009 or month is null) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`year` = 2009 OR `month` IS NULL) |
| partitions=12/24 files=12 size=239.77KB |
| row-size=89B cardinality=3.65K |
| ==== |
| # not predicate with "<=> null" as a synonym of "is null" |
| select * from functional.alltypes where not (year = 2009 or month <=> null) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (`year` = 2009 OR `month` IS NOT DISTINCT FROM NULL) |
| partitions=12/24 files=12 size=239.77KB |
| row-size=89B cardinality=3.65K |
| ==== |
| # nested not predicates with is null |
| select * from functional.alltypes where not (not (month is null)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (NOT (`month` IS NULL)) |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| # nested not predicates with "<=> null" as a synonym of "is null" |
| select * from functional.alltypes where not (not (month <=> null)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (NOT (`month` IS NOT DISTINCT FROM NULL)) |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| # nested not predicates with disjunct |
| select * from functional.alltypes where not (not (month is null or year = 2009)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (NOT (`month` IS NULL OR `year` = 2009)) |
| partitions=12/24 files=12 size=238.68KB |
| row-size=89B cardinality=3.65K |
| ==== |
| # nested not predicates with disjunct and "<=> null" as a synonym of "is null" |
| select * from functional.alltypes where not (not (month <=> null or year = 2009)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: NOT (NOT (`month` IS NOT DISTINCT FROM NULL OR `year` = 2009)) |
| partitions=12/24 files=12 size=238.68KB |
| row-size=89B cardinality=3.65K |
| ==== |
| # predicate on second partition key |
| select * from functional.alltypes where month=1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `month` = 1 |
| partitions=2/24 files=2 size=40.32KB |
| row-size=89B cardinality=620 |
| ==== |
| # predicate on both partition keys |
| select * from functional.alltypes where year=2009 and month=1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` = 1 |
| partitions=1/24 files=1 size=19.95KB |
| row-size=89B cardinality=310 |
| ==== |
| # single-sided range on 2nd key |
| select * from functional.alltypes where year=2009 and month > 6 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` > 6 |
| partitions=6/24 files=6 size=120.87KB |
| row-size=89B cardinality=1.84K |
| ==== |
| select * from functional.alltypes where year=2009 and month < 6 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` < 6 |
| partitions=5/24 files=5 size=98.11KB |
| row-size=89B cardinality=1.51K |
| ==== |
| select * from functional.alltypes where year=2009 and month in (1, 3, 5, 7) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` IN (1, 3, 5, 7) |
| partitions=4/24 files=4 size=80.74KB |
| row-size=89B cardinality=1.24K |
| ==== |
| select * from functional.alltypes where year<=>2009 and month in (1, 3, 5, 7) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` IS NOT DISTINCT FROM 2009, `month` IN (1, 3, 5, 7) |
| partitions=4/24 files=4 size=80.74KB |
| row-size=89B cardinality=1.24K |
| ==== |
| # adding a predicate that always evaluates to true should not change anything |
| select * from functional.alltypes |
| where year=2009 and month in (1, 3, 5, 7) and month is not null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` IN (1, 3, 5, 7), `month` IS NOT NULL |
| partitions=4/24 files=4 size=80.74KB |
| row-size=89B cardinality=1.24K |
| ==== |
| # adding a predicate that always evaluates to false should remove all partitions |
| select * from functional.alltypes |
| where year=2009 and month in (1, 3, 5, 7) and month is null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` IN (1, 3, 5, 7), `month` IS NULL |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| select * from functional.alltypes where year=2009 and (month in (1, 3, 5) or month = 7) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` IN (1, 3, 5, 7) |
| partitions=4/24 files=4 size=80.74KB |
| row-size=89B cardinality=1.24K |
| ==== |
| # single-sided ranges on both keys |
| select * from functional.alltypes where year<=2009 and month < 6 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` <= 2009, `month` < 6 |
| partitions=5/24 files=5 size=98.11KB |
| row-size=89B cardinality=1.51K |
| ==== |
| # range on 2nd key |
| select * from functional.alltypes where month < 9 and month > 6 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `month` < 9, `month` > 6 |
| partitions=4/24 files=4 size=81.46KB |
| row-size=89B cardinality=1.24K |
| ==== |
| # multiple predicates on first key; 2nd one applied as predicate |
| select * from functional.alltypes where year < 2010 and year < 2009 and month > 6 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` < 2010, `year` < 2009, `month` > 6 |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| # multiple predicates on second key |
| select * from functional.alltypes |
| where year < 2010 and (month > 6 or month = 1 or month in (3, 4)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` < 2010, (`month` > 6 OR `month` = 1 OR `month` IN (3, 4)) |
| partitions=9/24 files=9 size=180.49KB |
| row-size=89B cardinality=2.76K |
| ==== |
| # multiple predicates on second key |
| select * from functional.alltypes |
| where year < 2010 and (month > 6 or month <=> 1 or month in (3, 4)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` < 2010, (`month` > 6 OR `month` IS NOT DISTINCT FROM 1 OR `month` IN (3, 4)) |
| partitions=9/24 files=9 size=180.49KB |
| row-size=89B cardinality=2.76K |
| ==== |
| # between predicate on second key |
| select * from functional.alltypes where year = 2009 and month between 6 and 8 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, `month` >= 6, `month` <= 8 |
| partitions=3/24 files=3 size=60.43KB |
| row-size=89B cardinality=920 |
| ==== |
| # between predicate on second key |
| select * from functional.alltypes where year <=> 2009 and month between 6 and 8 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` IS NOT DISTINCT FROM 2009, `month` >= 6, `month` <= 8 |
| partitions=3/24 files=3 size=60.43KB |
| row-size=89B cardinality=920 |
| ==== |
| # between predicates on first and second keys |
| select * from functional.alltypes |
| where year between 2009 and 2009 and month between 6 and 8 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` >= 2009, `year` <= 2009, `month` >= 6, `month` <= 8 |
| partitions=3/24 files=3 size=60.43KB |
| row-size=89B cardinality=920 |
| ==== |
| # disjunctive between predicates on second key |
| select * from functional.alltypes |
| where year = 2009 and (month between 6 and 7 or month between 7 and 8) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, (`month` >= 6 AND `month` <= 7 OR `month` >= 7 AND `month` <= 8) |
| partitions=3/24 files=3 size=60.43KB |
| row-size=89B cardinality=920 |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=6/090601.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=7/090701.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=8/090801.txt 0:20853 |
| ==== |
| # disjunction between predicates with complex constant exprs |
| select * from functional.alltypes |
| where year = 2009 and (month between 5+1 and 8-1 or month between 9-2 and 1+7) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = 2009, (`month` >= 6 AND `month` <= 7 OR `month` >= 7 AND `month` <= 8) |
| partitions=3/24 files=3 size=60.43KB |
| row-size=89B cardinality=920 |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=6/090601.txt 0:20179 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=7/090701.txt 0:20853 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypes/year=2009/month=8/090801.txt 0:20853 |
| ==== |
| # slot binding still determined |
| select * from functional.alltypes where year - 1 = 2009 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` - 1 = 2009 |
| partitions=12/24 files=12 size=239.77KB |
| row-size=89B cardinality=3.65K |
| ==== |
| select * from functional.alltypes where year - 1 <=> 2009 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` - 1 IS NOT DISTINCT FROM 2009 |
| partitions=12/24 files=12 size=239.77KB |
| row-size=89B cardinality=3.65K |
| ==== |
| # Predicates on a partition key with nulls (see IMPALA-887) |
| # IS NULL predicate on a partition key with nulls |
| select * from functional.alltypesagg where day is null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NULL |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # <=> null predicate on a partition key with nulls |
| select * from functional.alltypesagg where day <=> null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NOT DISTINCT FROM NULL |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # IS NOT NULL predicate on a partition key with nulls |
| select * from functional.alltypesagg where day is not null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NOT NULL |
| partitions=10/11 files=10 size=743.67KB |
| row-size=95B cardinality=10.00K |
| ==== |
| # IS DISTINCT FROM NULL predicate on a partition key with nulls |
| select * from functional.alltypesagg where day is distinct from null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS DISTINCT FROM NULL |
| partitions=10/11 files=10 size=743.67KB |
| row-size=95B cardinality=10.00K |
| ==== |
| select * from functional.alltypesagg where day = day |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` = `day` |
| partitions=10/11 files=10 size=743.67KB |
| row-size=95B cardinality=10.00K |
| ==== |
| select * from functional.alltypesagg where day <=> day |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partitions=11/11 files=11 size=814.73KB |
| row-size=95B cardinality=11.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 1) |
| select * from functional.alltypesagg where day is null and day = 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:EMPTYSET |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 1) |
| select * from functional.alltypesagg where day <=> null and day = 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:EMPTYSET |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 2) |
| select * from functional.alltypesagg where day is null and month = 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NULL, `month` = 1 |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 2) |
| select * from functional.alltypesagg where day <=> null and month = 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NOT DISTINCT FROM NULL, `month` = 1 |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 3) |
| select * from functional.alltypesagg where month = 1 and (day is null or day = 10) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `month` = 1, (`day` IS NULL OR `day` = 10) |
| partitions=2/11 files=2 size=145.53KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 3) |
| select * from functional.alltypesagg where month = 1 and (day <=> null or day = 10) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `month` = 1, (`day` IS NOT DISTINCT FROM NULL OR `day` = 10) |
| partitions=2/11 files=2 size=145.53KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 4) |
| select * from functional.alltypesagg where month = 1 and (day is null or year = 2010) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `month` = 1, (`day` IS NULL OR `year` = 2010) |
| partitions=11/11 files=11 size=814.73KB |
| row-size=95B cardinality=11.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 4) |
| select * from functional.alltypesagg where month = 1 and (day <=> null or year = 2010) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `month` = 1, (`day` IS NOT DISTINCT FROM NULL OR `year` = 2010) |
| partitions=11/11 files=11 size=814.73KB |
| row-size=95B cardinality=11.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 5) |
| select * from functional.alltypesagg |
| where (year = 2010 or month = 1) and (day is not null or day = 10) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: (`year` = 2010 OR `month` = 1), (`day` IS NOT NULL OR `day` = 10) |
| partitions=10/11 files=10 size=743.67KB |
| row-size=95B cardinality=10.00K |
| ==== |
| # partition key predicates which are in conjunctive normal form (case 5) |
| select * from functional.alltypesagg |
| where (year = 2010 or month = 1) and (day is distinct from null or day = 10) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: (`year` = 2010 OR `month` = 1), (`day` IS DISTINCT FROM NULL OR `day` = 10) |
| partitions=10/11 files=10 size=743.67KB |
| row-size=95B cardinality=10.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 1) |
| select * from functional.alltypesagg where day is null or month = 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NULL OR `month` = 1 |
| partitions=11/11 files=11 size=814.73KB |
| row-size=95B cardinality=11.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 1) |
| select * from functional.alltypesagg where day <=> null or month = 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NOT DISTINCT FROM NULL OR `month` = 1 |
| partitions=11/11 files=11 size=814.73KB |
| row-size=95B cardinality=11.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 2) |
| select * from functional.alltypesagg where day is null or day = 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NULL OR `day` = 10 |
| partitions=2/11 files=2 size=145.53KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 2) |
| select * from functional.alltypesagg where day <=> null or day = 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` IS NOT DISTINCT FROM NULL OR `day` = 10 |
| partitions=2/11 files=2 size=145.53KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 3) |
| select * from functional.alltypesagg where day = 10 or (day is null and year = 2010) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` = 10 OR (`day` IS NULL AND `year` = 2010) |
| partitions=2/11 files=2 size=145.53KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 3) |
| select * from functional.alltypesagg where day = 10 or (day <=> null and year = 2010) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` = 10 OR (`day` IS NOT DISTINCT FROM NULL AND `year` = 2010) |
| partitions=2/11 files=2 size=145.53KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 4) |
| select * from functional.alltypesagg |
| where (month = 1 and day = 1) or (day is null and year = 2010) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: (`month` = 1 AND `day` = 1) OR (`day` IS NULL AND `year` = 2010) |
| partitions=2/11 files=2 size=144.45KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates which are in disjunctive normal form (case 4) |
| select * from functional.alltypesagg |
| where (month = 1 and day = 1) or (day <=> null and year = 2010) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: (`month` = 1 AND `day` = 1) OR (`day` IS NOT DISTINCT FROM NULL AND `year` = 2010) |
| partitions=2/11 files=2 size=144.45KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # partition key predicates with negation (case 1) |
| select * from functional.alltypesagg where not (day is not null) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS NOT NULL) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 1) |
| select * from functional.alltypesagg where not (day is distinct from null) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS DISTINCT FROM NULL) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 2) |
| select * from functional.alltypesagg where not (not (day is null)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (NOT (`day` IS NULL)) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 2) |
| select * from functional.alltypesagg where not (not (day <=> null)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (NOT (`day` IS NOT DISTINCT FROM NULL)) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 3) |
| select * from functional.alltypesagg where not (day is not null and month = 1) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS NOT NULL AND `month` = 1) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 3) |
| select * from functional.alltypesagg where not (day is distinct from null and month = 1) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS DISTINCT FROM NULL AND `month` = 1) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 3) |
| select * from functional.alltypesagg where not (day is not null or day < 9) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS NOT NULL OR `day` < 9) |
| partitions=0/11 files=0 size=0B |
| row-size=95B cardinality=0 |
| ==== |
| # partition key predicates with negation (case 3) |
| select * from functional.alltypesagg where not (day is distinct from null or day < 9) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS DISTINCT FROM NULL OR `day` < 9) |
| partitions=0/11 files=0 size=0B |
| row-size=95B cardinality=0 |
| ==== |
| # partition key predicates with negation (case 4) |
| select * from functional.alltypesagg |
| where not (day is not null and (not (day < 9 and month = 1))) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS NOT NULL AND (NOT (`day` < 9 AND `month` = 1))) |
| partitions=9/11 files=9 size=665.77KB |
| row-size=95B cardinality=9.00K |
| ==== |
| # partition key predicates with negation (case 4) |
| select * from functional.alltypesagg |
| where not (day is distinct from null and (not (day < 9 and month = 1))) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS DISTINCT FROM NULL AND (NOT (`day` < 9 AND `month` = 1))) |
| partitions=9/11 files=9 size=665.77KB |
| row-size=95B cardinality=9.00K |
| ==== |
| # partition key predicates with negation (case 5) |
| select * from functional.alltypesagg |
| where not (day is not null or (day = 1 and (not (month = 1 or year = 2010)))) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS NOT NULL OR (`day` = 1 AND (NOT (`month` = 1 OR `year` = 2010)))) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates with negation (case 5) |
| select * from functional.alltypesagg |
| where not (day is distinct from null or (day = 1 and (not (month = 1 or year = 2010)))) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: NOT (`day` IS DISTINCT FROM NULL OR (`day` = 1 AND (NOT (`month` = 1 OR `year` = 2010)))) |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates where some are evaluated by the index and others are evaluated in the BE |
| select * from functional.alltypesagg |
| where year + 1 = 2011 and month + 1 <= 3 and day is null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `year` + 1 = 2011, `month` + 1 <= 3, `day` IS NULL |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # partition key predicates where some are evaluated by the index and others are evaluated in the BE |
| select * from functional.alltypesagg |
| where year + 1 = 2011 and month + 1 <= 3 and day <=> null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `year` + 1 = 2011, `month` + 1 <= 3, `day` IS NOT DISTINCT FROM NULL |
| partitions=1/11 files=1 size=71.05KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # all supported predicates that can be evaluated using partition key index |
| select * from functional.alltypesagg |
| where day = 5 or (day >= 1 and day <= 2) or (day > 6 and day < 8) |
| or day is null or day in (4) or not(day is not null) |
| or not (day not in (10)) or not (day != 8) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` = 5 OR (`day` >= 1 AND `day` <= 2) OR (`day` > 6 AND `day` < 8) OR `day` IS NULL OR `day` IN (4) OR NOT (`day` IS NOT NULL) OR NOT (`day` NOT IN (10)) OR NOT (`day` != 8) |
| partitions=8/11 files=8 size=591.30KB |
| row-size=95B cardinality=8.00K |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=1/100101.txt 0:75153 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=10/100110.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=2/100102.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=4/100104.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=5/100105.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=7/100107.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=8/100108.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__/000000_0 0:72759 |
| ==== |
| # all supported predicates that can be evaluated using partition key index |
| select * from functional.alltypesagg |
| where day = 5 or (day >= 1 and day <= 2) or (day > 6 and day < 8) |
| or day <=> null or day in (4) or not(day is distinct from null) |
| or not (day not in (10)) or not (day != 8) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg] |
| partition predicates: `day` = 5 OR (`day` >= 1 AND `day` <= 2) OR (`day` > 6 AND `day` < 8) OR `day` IS NOT DISTINCT FROM NULL OR `day` IN (4) OR NOT (`day` IS DISTINCT FROM NULL) OR NOT (`day` NOT IN (10)) OR NOT (`day` != 8) |
| partitions=8/11 files=8 size=591.30KB |
| row-size=95B cardinality=8.00K |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=1/100101.txt 0:75153 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=10/100110.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=2/100102.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=4/100104.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=5/100105.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=7/100107.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=8/100108.txt 0:76263 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesagg/year=2010/month=1/day=__HIVE_DEFAULT_PARTITION__/000000_0 0:72759 |
| ==== |
| # Predicates on a partition key with no values (see IMPALA-4128). |
| select * from functional.emptytable where f2 = 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 = 10 |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 != 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 != 10 |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 > 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 > 10 |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 < 10 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 < 10 |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 in (10) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 IN (10) |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 not in (10) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 NOT IN (10) |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 is null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 IS NULL |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| select * from functional.emptytable where f2 is not null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.emptytable] |
| partition predicates: f2 IS NOT NULL |
| partitions=0/0 files=0 size=0B |
| row-size=16B cardinality=0 |
| ==== |
| # multi-file non-partitioned table |
| select * from functional.alltypesaggmultifilesNoPart |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesaggmultifilesnopart] |
| partitions=1/1 files=4 size=805.23KB |
| row-size=83B cardinality=11.00K |
| ---- SCANRANGELOCATIONS |
| NODE 0: |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesaggmultifilesnopart/000000_0 0:222916 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesaggmultifilesnopart/000000_0_copy_1 0:188412 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesaggmultifilesnopart/000000_0_copy_2 0:224018 |
| HDFS SPLIT hdfs://localhost:20500/test-warehouse/alltypesaggmultifilesnopart/000000_0_copy_3 0:189213 |
| ==== |
| # multi-file partitioned table |
| select * from functional.alltypesaggmultifiles where day <= 2 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesaggmultifiles] |
| partition predicates: `day` <= 2 |
| partitions=2/11 files=8 size=145.97KB |
| row-size=84B cardinality=unavailable |
| ==== |
| # Test partition pruning on a table that has a large number of partitions |
| # (see IMPALA-887) |
| # |
| # Test single binary predicate on a partition column |
| select * from scale_db.num_partitions_1234_blocks_per_partition_1 where j = 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [scale_db.num_partitions_1234_blocks_per_partition_1] |
| partition predicates: j = 1 |
| partitions=1/1234 files=1 size=2B |
| row-size=8B cardinality=1 |
| ==== |
| select * from scale_db.num_partitions_1234_blocks_per_partition_1 where j <=> 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [scale_db.num_partitions_1234_blocks_per_partition_1] |
| partition predicates: j IS NOT DISTINCT FROM 1 |
| partitions=1/1234 files=1 size=2B |
| row-size=8B cardinality=1 |
| ==== |
| # Test disjunctive predicate on a partition column |
| select * from scale_db.num_partitions_1234_blocks_per_partition_1 where j = 1 or j = 2 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [scale_db.num_partitions_1234_blocks_per_partition_1] |
| partition predicates: j IN (1, 2) |
| partitions=2/1234 files=2 size=4B |
| row-size=8B cardinality=2 |
| ==== |
| select * from scale_db.num_partitions_1234_blocks_per_partition_1 where j <=> 1 or j <=> 2 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [scale_db.num_partitions_1234_blocks_per_partition_1] |
| partition predicates: j IS NOT DISTINCT FROM 1 OR j IS NOT DISTINCT FROM 2 |
| partitions=2/1234 files=2 size=4B |
| row-size=8B cardinality=2 |
| ==== |
| # Test conjunctive predicate on a partition column |
| select * from scale_db.num_partitions_1234_blocks_per_partition_1 where j = 1 and j = 2 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:EMPTYSET |
| ==== |
| select * from scale_db.num_partitions_1234_blocks_per_partition_1 where j <=> 1 and j <=> 2 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [scale_db.num_partitions_1234_blocks_per_partition_1] |
| partition predicates: j IS NOT DISTINCT FROM 1, j IS NOT DISTINCT FROM 2 |
| partitions=0/1234 files=0 size=0B |
| row-size=8B cardinality=0 |
| ==== |
| # Partition pruning when a binary predicate contains a NullLiteral (IMPALA-1535) |
| select * from functional.alltypestiny t1 where t1.year != null or t1.year = null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypestiny t1] |
| partition predicates: t1.`year` != NULL OR t1.`year` = NULL |
| partitions=0/4 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| # Partition pruning when a binary predicate contains a NullLiteral and IS DISTINCT FROM |
| select * from functional.alltypestiny t1 |
| where t1.year IS DISTINCT FROM null or t1.year = null |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypestiny t1] |
| partition predicates: t1.`year` IS DISTINCT FROM NULL OR t1.`year` = NULL |
| partitions=4/4 files=4 size=460B |
| row-size=89B cardinality=8 |
| ==== |
| # Partition pruning when a binary predicate contains a NullLiteral in an arithmetic |
| # expression |
| select * from functional.alltypesagg t1 where t1.year + null != t1.day |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: t1.`day` != t1.`year` + NULL |
| partitions=0/11 files=0 size=0B |
| row-size=95B cardinality=0 |
| ==== |
| # Partition pruning when a binary predicate contains a NullLiteral in an arithmetic |
| # expression and IS DISTINCT FROM |
| select * from functional.alltypesagg t1 where t1.year + null IS DISTINCT FROM t1.day |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: t1.`day` IS DISTINCT FROM t1.`year` + NULL |
| partitions=10/11 files=10 size=743.67KB |
| row-size=95B cardinality=10.00K |
| ==== |
| # Partition pruning when an IN predicate contains a NullLiteral |
| # (a single partition is scanned) |
| select * from functional.alltypesagg t1 where day in (10, null) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: `day` IN (10, NULL) |
| partitions=1/11 files=1 size=74.48KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # Partition pruning when a NOT IN predicate contains a NullLiteral |
| # (all partitions are pruned) |
| select * from functional.alltypesagg t1 where day not in (10, null) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: `day` NOT IN (10, NULL) |
| partitions=0/11 files=0 size=0B |
| row-size=95B cardinality=0 |
| ==== |
| # Partition pruning when a binary predicate contains a constant expression (IMPALA-1636) |
| select * from functional.alltypesagg t1 |
| where t1.day = instr("this is a test", "this") or t1.year = year(now()) + 100 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: t1.`day` = 1 OR t1.`year` = 2119 |
| partitions=1/11 files=1 size=73.39KB |
| row-size=95B cardinality=1.00K |
| ==== |
| # Partition pruning when there is a constant expression in the IN predicate values |
| # (IMPALA-1636) |
| select * from functional.alltypesagg t1 |
| where t1.day in (1, cast(2.0 as INT), year(now()) + 100) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: t1.`day` IN (1, 2, 2119) |
| partitions=2/11 files=2 size=147.87KB |
| row-size=95B cardinality=2.00K |
| ==== |
| # Partition pruning where a compound predicate contains a constant and a non-constant |
| # expression (IMPALA-1636) |
| select * from functional.alltypesagg t1 |
| where -t1.day in(-1 - 1) or cast(t1.day as string) like '%1%' |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypesagg t1] |
| partition predicates: -1 * t1.`day` IN (-2) OR CAST(t1.`day` AS STRING) LIKE '%1%' |
| partitions=3/11 files=3 size=222.34KB |
| row-size=95B cardinality=3.00K |
| ==== |
| # IMPALA-4470: Partition pruning with a constant expr that evaluates to NaN/infinity. |
| # 0 / 0 --> NaN and 1 / 0 --> Infinity |
| select * from functional.alltypes |
| where year = (cast(0 as double) / cast(0 as double)) |
| and month = (cast(1 as float) / cast(0 as float)) |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partition predicates: `year` = (0 / 0), `month` = (1 / 0) |
| partitions=0/24 files=0 size=0B |
| row-size=89B cardinality=0 |
| ==== |
| # IMPALA-4592: Test random predicates that reference a partition column. |
| select * from functional.alltypes where rand() > year |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partitions=24/24 files=24 size=478.45KB |
| predicates: `year` < rand() |
| row-size=89B cardinality=730 |
| ==== |
| # IMPALA-5180: Test that predicates not touching a partition column are ignored in |
| # partition pruning |
| select count(*) from |
| (select * from functional.alltypes) T |
| where random() = 100 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | row-size=8B cardinality=1 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partitions=24/24 files=24 size=478.45KB |
| predicates: random() = 100 |
| row-size=0B cardinality=730 |
| ==== |
| # Same as above, with a column that gets constant folded away |
| select count(*) from |
| (select * from functional.alltypes) T |
| where (coalesce(NULL, T.int_col) + random() * T.int_col = 100 OR |
| coalesce(NULL, T.int_col) + T.int_col = 20) and T.int_col = 1 |
| ---- PLAN |
| PLAN-ROOT SINK |
| | |
| 01:AGGREGATE [FINALIZE] |
| | output: count(*) |
| | row-size=8B cardinality=1 |
| | |
| 00:SCAN HDFS [functional.alltypes] |
| partitions=24/24 files=24 size=478.45KB |
| predicates: functional.alltypes.int_col = 1, FALSE OR 1 + random() * 1 = 100 |
| row-size=4B cardinality=231 |
| ==== |