blob: 2c91472bf509147fd0ad34c47ba39906984a66f9 [file] [log] [blame]
select * from functional_seq.alltypes t1 limit 5
---- PLAN
PLAN-ROOT SINK
|
00:SCAN HDFS [functional_seq.alltypes t1]
partitions=24/24 files=24 size=562.59KB
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
00:SCAN HDFS [functional_seq.alltypes t1]
partitions=24/24 files=24 size=562.59KB
limit: 5
====
# Query is over the limit of 8 rows to be optimized, will distribute the query
select * from functional.alltypes t1 limit 10
---- PLAN
PLAN-ROOT SINK
|
00:SCAN HDFS [functional.alltypes t1]
partitions=24/24 files=24 size=478.45KB
limit: 10
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
01:EXCHANGE [UNPARTITIONED]
| limit: 10
|
00:SCAN HDFS [functional.alltypes t1]
partitions=24/24 files=24 size=478.45KB
limit: 10
====
# Query is optimized, run on coordinator only
select * from functional.alltypes t1 limit 5
---- PLAN
PLAN-ROOT SINK
|
00:SCAN HDFS [functional.alltypes t1]
partitions=24/24 files=24 size=478.45KB
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
00:SCAN HDFS [functional.alltypes t1]
partitions=24/24 files=24 size=478.45KB
limit: 5
====
# If a predicate is applied the optimization is disabled
select * from functional.alltypes t1 where t1.id < 99 limit 5
---- PLAN
PLAN-ROOT SINK
|
00:SCAN HDFS [functional.alltypes t1]
partitions=24/24 files=24 size=478.45KB
predicates: t1.id < 99
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
01:EXCHANGE [UNPARTITIONED]
| limit: 5
|
00:SCAN HDFS [functional.alltypes t1]
partitions=24/24 files=24 size=478.45KB
predicates: t1.id < 99
limit: 5
====
# No optimization for hbase tables
select * from functional_hbase.alltypes t1 where t1.id < 99 limit 5
---- PLAN
PLAN-ROOT SINK
|
00:SCAN HBASE [functional_hbase.alltypes t1]
predicates: t1.id < 99
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
01:EXCHANGE [UNPARTITIONED]
| limit: 5
|
00:SCAN HBASE [functional_hbase.alltypes t1]
predicates: t1.id < 99
limit: 5
====
# Applies optimization for small queries in hbase
select * from functional_hbase.alltypes t1 limit 5
---- PLAN
PLAN-ROOT SINK
|
00:SCAN HBASE [functional_hbase.alltypes t1]
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
00:SCAN HBASE [functional_hbase.alltypes t1]
limit: 5
====
insert into
functional_hbase.alltypes
values (1, 1, true, "1999-12-01", 2.0, 1.0, 1, 12, 2, "abs",
cast(now() as timestamp), 1, 1999)
---- PLAN
WRITE TO HBASE table=functional_hbase.alltypes
|
00:UNION
constant-operands=1
---- DISTRIBUTEDPLAN
WRITE TO HBASE table=functional_hbase.alltypes
|
00:UNION
constant-operands=1
====
create table tm as select * from functional_hbase.alltypes limit 5
---- PLAN
WRITE TO HDFS [default.tm, OVERWRITE=false]
| partitions=1
|
00:SCAN HBASE [functional_hbase.alltypes]
limit: 5
---- DISTRIBUTEDPLAN
WRITE TO HDFS [default.tm, OVERWRITE=false]
| partitions=1
|
00:SCAN HBASE [functional_hbase.alltypes]
limit: 5
====
create table tm as select * from functional_hbase.alltypes limit 50
---- PLAN
WRITE TO HDFS [default.tm, OVERWRITE=false]
| partitions=1
|
00:SCAN HBASE [functional_hbase.alltypes]
limit: 50
---- DISTRIBUTEDPLAN
WRITE TO HDFS [default.tm, OVERWRITE=false]
| partitions=1
|
01:EXCHANGE [UNPARTITIONED]
| limit: 50
|
00:SCAN HBASE [functional_hbase.alltypes]
limit: 50
====
select * from functional_hbase.alltypes limit 5
union all
select * from functional_hbase.alltypes limit 2
---- PLAN
PLAN-ROOT SINK
|
00:UNION
| pass-through-operands: all
|
|--02:SCAN HBASE [functional_hbase.alltypes]
| limit: 2
|
01:SCAN HBASE [functional_hbase.alltypes]
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
00:UNION
| pass-through-operands: all
|
|--02:SCAN HBASE [functional_hbase.alltypes]
| limit: 2
|
01:SCAN HBASE [functional_hbase.alltypes]
limit: 5
====
select * from functional_hbase.alltypes limit 5
union all
select * from functional_hbase.alltypes limit 5
---- PLAN
PLAN-ROOT SINK
|
00:UNION
| pass-through-operands: all
|
|--02:SCAN HBASE [functional_hbase.alltypes]
| limit: 5
|
01:SCAN HBASE [functional_hbase.alltypes]
limit: 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
00:UNION
| pass-through-operands: all
|
|--04:EXCHANGE [UNPARTITIONED]
| | limit: 5
| |
| 02:SCAN HBASE [functional_hbase.alltypes]
| limit: 5
|
03:EXCHANGE [UNPARTITIONED]
| limit: 5
|
01:SCAN HBASE [functional_hbase.alltypes]
limit: 5
====
# Two scans cannot run in the same fragment. IMPALA-561
select * from
functional.testtbl a join functional.testtbl b on a.id = b.id
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
04:EXCHANGE [UNPARTITIONED]
|
02:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.id = b.id
| runtime filters: RF000 <- b.id
|
|--03:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.testtbl b]
| partitions=1/1 files=0 size=0B
|
00:SCAN HDFS [functional.testtbl a]
partitions=1/1 files=0 size=0B
runtime filters: RF000 -> a.id
====
select * from
functional.testtbl a, functional.testtbl b
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
04:EXCHANGE [UNPARTITIONED]
|
02:NESTED LOOP JOIN [CROSS JOIN, BROADCAST]
|
|--03:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.testtbl b]
| partitions=1/1 files=0 size=0B
|
00:SCAN HDFS [functional.testtbl a]
partitions=1/1 files=0 size=0B
====
select * from
functional.alltypestiny a
where a.id in (select id from functional.alltypestiny limit 5) limit 5
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
05:EXCHANGE [UNPARTITIONED]
| limit: 5
|
02:HASH JOIN [LEFT SEMI JOIN, BROADCAST]
| hash predicates: a.id = id
| runtime filters: RF000 <- id
| limit: 5
|
|--04:EXCHANGE [BROADCAST]
| |
| 03:EXCHANGE [UNPARTITIONED]
| | limit: 5
| |
| 01:SCAN HDFS [functional.alltypestiny]
| partitions=4/4 files=4 size=460B
| limit: 5
|
00:SCAN HDFS [functional.alltypestiny a]
partitions=4/4 files=4 size=460B
runtime filters: RF000 -> a.id
====
# Test correct single-node planning for mixed union distinct/all (IMPALA-1553).
select
id, bool_col
from functional.alltypestiny a
where year=2009 and month=1
union distinct
select id, bool_col
from functional.alltypestiny b
where year=2009 and month=1
union all
select id, bool_col
from functional.alltypestiny c
where year=2009 and month=2
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
04:UNION
| pass-through-operands: 03
|
|--05:SCAN HDFS [functional.alltypestiny c]
| partitions=1/4 files=1 size=115B
|
03:AGGREGATE [FINALIZE]
| group by: id, bool_col
|
00:UNION
|
|--02:SCAN HDFS [functional.alltypestiny b]
| partitions=1/4 files=1 size=115B
|
01:SCAN HDFS [functional.alltypestiny a]
partitions=1/4 files=1 size=115B
====
# IMPALA-2527: Tests that the small query optimization is disabled for colleciton types
select key from functional.allcomplextypes.map_map_col.value limit 5;
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
01:EXCHANGE [UNPARTITIONED]
| limit: 5
|
00:SCAN HDFS [functional.allcomplextypes.map_map_col.value]
partitions=0/0 files=0 size=0B
limit: 5
====