====
---- QUERY
# Query should succeed.
set CPU_LIMIT_S=10000;
set SCAN_BYTES_LIMIT="10G";
select id from functional.alltypessmall  order by 1 limit 1
---- TYPES
INT
---- RESULTS
0
====
---- QUERY
# Query should fail due to exceeding scan bytes limit.
# Added a sleep to make sure it runs long enough to get a non-zero update from the
# fragment instances on the num of bytes read and cpu time.
set SCAN_BYTES_LIMIT="100M";
select sleep(10000) union select count(*) from tpch.lineitem l1,tpch.lineitem l2,
tpch.lineitem l3 where l1.l_suppkey = l2.l_linenumber and l1.l_orderkey = l2.l_orderkey
and l1.l_orderkey = l3.l_orderkey group by l1.l_comment, l2.l_comment having count(*) = 99
---- CATCH
row_regex:.*terminated due to scan bytes limit of 100.00 M.*
====
---- QUERY
# Query should fail due to CPU time limit.
# Added a sleep to make sure it runs long enough to get a non-zero update from the
# fragment instances on the num of bytes read and cpu time.
set CPU_LIMIT_S=1;
select sleep(10000) union select count(*) from tpch.lineitem l1,tpch.lineitem l2,
tpch.lineitem l3 where l1.l_suppkey = l2.l_linenumber and l1.l_orderkey = l2.l_orderkey
and l1.l_orderkey = l3.l_orderkey group by l1.l_comment, l2.l_comment having count(*) = 99
---- CATCH
row_regex:.*terminated due to CPU limit of 1s000ms.*
====
---- QUERY
# Query should fail due to CPU time limit.
# Added a sleep to make sure it runs long enough to get a non-zero update from the
# fragment instances on the num of bytes read and cpu time.
set CPU_LIMIT_S=1;
set SCAN_BYTES_LIMIT="100G";
select sleep(10000) union select count(*) from tpch.lineitem l1,tpch.lineitem l2,
tpch.lineitem l3 where l1.l_suppkey = l2.l_linenumber and l1.l_orderkey = l2.l_orderkey
and l1.l_orderkey = l3.l_orderkey group by l1.l_comment, l2.l_comment having count(*) = 99
---- CATCH
row_regex:.*terminated due to CPU limit of 1s000ms.*
====
---- QUERY
# Query should fail due to exceeding time limit.
set EXEC_TIME_LIMIT_S=2;
select sleep(10000)
---- CATCH
row_regex:.*expired due to execution time limit of 2s000ms.*
====
---- QUERY
# Query should fail due to exceeding rows produced limit.
set NUM_ROWS_PRODUCED_LIMIT = 10000;
select * from tpch.lineitem;
---- CATCH
row_regex:.*terminated due to rows produced limit of 10000.*
====
---- QUERY
# The query should succeed when it doesn't exceed the rows produced limit.
set NUM_ROWS_PRODUCED_LIMIT = 3;
select * from functional.tinytable;
---- TYPES
STRING,STRING
---- RESULTS
'aaaaaaa','bbbbbbb'
'ccccc','dddd'
'eeeeeeee','f'
====
