====
---- QUERY
# alltypes has 7300 rows - codegen should be enabled if there
# are < 1000 backend daemons.
set disable_codegen_rows_threshold=8;
select count(*) from alltypes t1
  join alltypestiny t2 on t1.id = t2.id
---- RESULTS
8
---- TYPES
bigint
---- RUNTIME_PROFILE
# Verify that codegen was enabled for join and scan
row_regex: .*Build Side Codegen Enabled.*
row_regex: .*TEXT Codegen Enabled.*
====
---- QUERY
# alltypes has 7300 rows - codegen should be disabled regardless
# of # of backend impala daemons.
set disable_codegen_rows_threshold=8000;
select count(*) from alltypes t1
  join alltypestiny t2 on t1.id = t2.id
---- RESULTS
8
---- TYPES
bigint
---- RUNTIME_PROFILE
# Verify that codegen was disabled
row_regex: .*Codegen Disabled: disabled due to optimization hints.*
====
---- QUERY
# IMPALA-6435: codegen for NULL CHAR literals was broken. This query crashed
# impala without the fix.
set disable_codegen_rows_threshold=0;
select count(*) from (
  select cast('a' as char(4)) as s from functional.alltypestiny
  union all
  select cast('a' as char(4)) as s from functional.alltypestiny
  union all
  select cast(NULL as char(4)) as s from functional.alltypestiny
) t
---- RESULTS
24
---- TYPES
bigint
====
---- QUERY
# IMPALA-7032: Test that codegen gets disabled for CHAR type null literals in
# the backend. We force codegen to be on in order to exercise the codegen code
# for null literals.
set disable_codegen_rows_threshold=0;
select NULL from functional.alltypestiny
  union select cast('a' as char(4)) from functional.alltypestiny
---- RESULTS
'a   '
'NULL'
---- TYPES
char
====
