# check that broadcast distribution is NOT chosen if estimated size of hash join
# build side input is greater than broadcast_bytes_limit
select c_name from customer inner join nation on c_nationkey = n_nationkey
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
05:EXCHANGE [UNPARTITIONED]
|
02:HASH JOIN [INNER JOIN, PARTITIONED]
|  hash predicates: c_nationkey = n_nationkey
|  runtime filters: RF000 <- n_nationkey
|  row-size=34B cardinality=150.00K
|
|--04:EXCHANGE [HASH(n_nationkey)]
|  |
|  01:SCAN HDFS [tpch_parquet.nation]
|     HDFS partitions=1/1 files=1 size=3.04KB
|     row-size=2B cardinality=25
|
03:EXCHANGE [HASH(c_nationkey)]
|
00:SCAN HDFS [tpch_parquet.customer]
   HDFS partitions=1/1 files=1 size=12.34MB
   runtime filters: RF000 -> c_nationkey
   row-size=32B cardinality=150.00K
====
# negative test: check that broadcast distribution IS chosen
# even if estimated size of hash join build side input is
# greater than broadcast_bytes_limit because the query has a
# join hint forcing broadcast distribution
select c_name from customer inner join /* +broadcast */ nation
    on c_nationkey = n_nationkey
---- DISTRIBUTEDPLAN
PLAN-ROOT SINK
|
04:EXCHANGE [UNPARTITIONED]
|
02:HASH JOIN [INNER JOIN, BROADCAST]
|  hash predicates: c_nationkey = n_nationkey
|  runtime filters: RF000 <- n_nationkey
|  row-size=34B cardinality=150.00K
|
|--03:EXCHANGE [BROADCAST]
|  |
|  01:SCAN HDFS [tpch_parquet.nation]
|     HDFS partitions=1/1 files=1 size=3.04KB
|     row-size=2B cardinality=25
|
00:SCAN HDFS [tpch_parquet.customer]
   HDFS partitions=1/1 files=1 size=12.34MB
   runtime filters: RF000 -> c_nationkey
   row-size=32B cardinality=150.00K
====
