====
---- QUERY
# Regression test for IMPALA-1488. Right joins should not spill any partitions
# with hash tables with matches.
SELECT COUNT(*) FROM lineitem l1 RIGHT OUTER JOIN lineitem l2
ON l1.l_orderkey = l2.l_orderkey
---- RESULTS
30012985
---- TYPES
BIGINT
====
---- QUERY
# Regression test for IMPALA-1919. When spilling right joins or full outer joins
# there is chance to call process batch while the out_batch is AtCapacity().
SET mem_limit = 400m;
SELECT COUNT(*) FROM lineitem l1 RIGHT OUTER JOIN lineitem l2
ON l1.l_orderkey = l2.l_orderkey
WHERE l2.l_linenumber % 2 = 0
---- RESULTS
13291122
---- TYPES
BIGINT
====
---- QUERY
# Regression test for IMPALA-2168. When repartitioning spilled right joins or full
# outer joins there is chance to try to access NULL streams.
SET mem_limit = 1g;
SELECT straight_join * FROM orders o
RIGHT OUTER JOIN lineitem l ON o.o_orderkey =  if(l.l_orderkey % 2 = 0, 0, l.l_orderkey)
ORDER BY l_receiptdate, l_orderkey, l_shipdate
limit 10
---- CATCH: ANY_OF
Repartitioning did not reduce the size of a spilled partition
Memory limit exceeded
__NO_ERROR__
====
---- QUERY
# Regression test for IMPALA-2612. The following query will cause CastToChar
# to be invoked when building the hash tables in partitioned hash join nodes.
# CastToChar will do "local" memory allocation. Without the fix of IMPALA-2612,
# the peak memory consumption will be higher.
SET mem_limit = 300m;
SELECT COUNT(*) from orders t1 LEFT OUTER JOIN orders t2
ON cast(t1.o_comment as char(120)) = cast(t2.o_comment as char(120))
---- RESULTS
1565026
---- TYPES
BIGINT
====
