blob: b8e5b4f3d87f78292287af795ed69d213cc2ae7c [file] [log] [blame]
# Default query options
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| runtime filters: RF000 <- d.`year`, RF001 <- d.bool_col
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`, RF005 <- c.int_col
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF000 -> a.`year`, RF001 -> a.bool_col, RF004 -> a.`month`, RF005 -> a.int_col, RF008 -> a.id, RF009 -> a.date_string_col
row-size=37B cardinality=7.30K
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
13:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
12:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| runtime filters: RF000 <- d.`year`, RF001 <- d.bool_col
| row-size=74B cardinality=16.21G
|
|--11:EXCHANGE [HASH(d.`year`,d.bool_col)]
| |
| 03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
10:EXCHANGE [HASH(a.`year`,a.bool_col)]
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`, RF005 <- c.int_col
| row-size=69B cardinality=4.44M
|
|--09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF000 -> a.`year`, RF001 -> a.bool_col, RF004 -> a.`month`, RF005 -> a.int_col, RF008 -> a.id, RF009 -> a.date_string_col
row-size=37B cardinality=7.30K
====
# Keep only MAX_NUM_RUNTIME_FILTERS most selective filters, remove the rest.
# In this query RF000 (<- d.bool_col) and RF001 (<- d.year) are the least selective
# filters.
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
MAX_NUM_RUNTIME_FILTERS=4
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
13:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
12:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--11:EXCHANGE [HASH(d.`year`,d.bool_col)]
| |
| 03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
10:EXCHANGE [HASH(a.`year`,a.bool_col)]
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`, RF005 <- c.int_col
| row-size=69B cardinality=4.44M
|
|--09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF008 -> a.id, RF009 -> a.date_string_col, RF004 -> a.`month`, RF005 -> a.int_col
row-size=37B cardinality=7.30K
====
# DISABLE_ROW_RUNTIME_FILTERING is set: only partition column filters are applied.
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
DISABLE_ROW_RUNTIME_FILTERING=true
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| runtime filters: RF000 <- d.`year`
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF000 -> a.`year`, RF004 -> a.`month`
row-size=37B cardinality=7.30K
====
# DISABLE_ROW_RUNTIME_FILTERING is set and MAX_NUM_RUNTIME_FILTERS is set to 2: only the 2
# partition column filters are applied
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
DISABLE_ROW_RUNTIME_FILTERING=true
MAX_NUM_RUNTIME_FILTERS=2
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| runtime filters: RF000 <- d.`year`
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF000 -> a.`year`, RF004 -> a.`month`
row-size=37B cardinality=7.30K
====
# RUNTIME_FILTER_MODE is set to LOCAL: only local filters are applied
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
RUNTIME_FILTER_MODE=LOCAL
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| runtime filters: RF000 <- d.`year`, RF001 <- d.bool_col
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`, RF005 <- c.int_col
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF000 -> a.`year`, RF001 -> a.bool_col, RF004 -> a.`month`, RF005 -> a.int_col, RF008 -> a.id, RF009 -> a.date_string_col
row-size=37B cardinality=7.30K
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
13:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
12:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--11:EXCHANGE [HASH(d.`year`,d.bool_col)]
| |
| 03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
10:EXCHANGE [HASH(a.`year`,a.bool_col)]
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`, RF005 <- c.int_col
| row-size=69B cardinality=4.44M
|
|--09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF004 -> a.`month`, RF005 -> a.int_col, RF008 -> a.id, RF009 -> a.date_string_col
row-size=37B cardinality=7.30K
====
# RUNTIME_FILTER_MODE is set to LOCAL and MAX_NUM_RUNTIME_FILTERS is set to 3: only 3
# local filters are kept, which means that both local and non-local filters are removed
# from the distributed plan.
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
RUNTIME_FILTER_MODE=LOCAL
MAX_NUM_RUNTIME_FILTERS=3
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF008 -> a.id, RF009 -> a.date_string_col, RF004 -> a.`month`
row-size=37B cardinality=7.30K
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
13:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
12:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--11:EXCHANGE [HASH(d.`year`,d.bool_col)]
| |
| 03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
10:EXCHANGE [HASH(a.`year`,a.bool_col)]
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`
| row-size=69B cardinality=4.44M
|
|--09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| runtime filters: RF008 <- b.id, RF009 <- b.date_string_col
| row-size=61B cardinality=7.30K
|
|--08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF008 -> a.id, RF009 -> a.date_string_col, RF004 -> a.`month`
row-size=37B cardinality=7.30K
====
# DISABLE_ROW_RUNTIME_FILTERING is set and RUNTIME_FILTER_MODE is set to LOCAL: only local
# partition column filters are applied
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
DISABLE_ROW_RUNTIME_FILTERING=true
RUNTIME_FILTER_MODE=LOCAL
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| runtime filters: RF000 <- d.`year`
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF000 -> a.`year`, RF004 -> a.`month`
row-size=37B cardinality=7.30K
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
13:AGGREGATE [FINALIZE]
| output: count:merge(*)
| row-size=8B cardinality=1
|
12:EXCHANGE [UNPARTITIONED]
|
07:AGGREGATE
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN, PARTITIONED]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--11:EXCHANGE [HASH(d.`year`,d.bool_col)]
| |
| 03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
10:EXCHANGE [HASH(a.`year`,a.bool_col)]
|
05:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| runtime filters: RF004 <- c.`month`
| row-size=69B cardinality=4.44M
|
|--09:EXCHANGE [BROADCAST]
| |
| 02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| row-size=61B cardinality=7.30K
|
|--08:EXCHANGE [BROADCAST]
| |
| 01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
runtime filters: RF004 -> a.`month`
row-size=37B cardinality=7.30K
====
# RUNTIME_FILTER_MODE is OFF: no filters are applied
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
RUNTIME_FILTER_MODE=OFF
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
row-size=37B cardinality=7.30K
====
# MAX_NUM_RUNTIME_FILTERS is 0: no filters are applied
select /* +straight_join */ count(*) from functional.alltypes a
join /* +broadcast */ functional.alltypes b on b.id = a.id and
b.date_string_col = a.date_string_col
join /* +broadcast */ functional.alltypes c on c.month = a.month and
c.int_col = a.int_col
join /* +shuffle */ functional.alltypes d on d.bool_col = a.bool_col and d.year = a.year
---- QUERYOPTIONS
MAX_NUM_RUNTIME_FILTERS=0
---- PLAN
PLAN-ROOT SINK
|
07:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
06:HASH JOIN [INNER JOIN]
| hash predicates: a.`year` = d.`year`, a.bool_col = d.bool_col
| row-size=74B cardinality=16.21G
|
|--03:SCAN HDFS [functional.alltypes d]
| partitions=24/24 files=24 size=478.45KB
| row-size=5B cardinality=7.30K
|
05:HASH JOIN [INNER JOIN]
| hash predicates: a.`month` = c.`month`, a.int_col = c.int_col
| row-size=69B cardinality=4.44M
|
|--02:SCAN HDFS [functional.alltypes c]
| partitions=24/24 files=24 size=478.45KB
| row-size=8B cardinality=7.30K
|
04:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id, a.date_string_col = b.date_string_col
| row-size=61B cardinality=7.30K
|
|--01:SCAN HDFS [functional.alltypes b]
| partitions=24/24 files=24 size=478.45KB
| row-size=24B cardinality=7.30K
|
00:SCAN HDFS [functional.alltypes a]
partitions=24/24 files=24 size=478.45KB
row-size=37B cardinality=7.30K
====
# DISABLE_ROW_RUNTIME_FILTERING completely disables filters for Kudu.
select /* +straight_join */ count(*) from functional_kudu.alltypes a
join functional_kudu.alltypes b on a.id = b.id
---- QUERYOPTIONS
DISABLE_ROW_RUNTIME_FILTERING=TRUE
---- PLAN
PLAN-ROOT SINK
|
03:AGGREGATE [FINALIZE]
| output: count(*)
| row-size=8B cardinality=1
|
02:HASH JOIN [INNER JOIN]
| hash predicates: a.id = b.id
| row-size=8B cardinality=7.30K
|
|--01:SCAN KUDU [functional_kudu.alltypes b]
| row-size=4B cardinality=7.30K
|
00:SCAN KUDU [functional_kudu.alltypes a]
row-size=4B cardinality=7.30K
====