====
---- QUERY
# IMPALA-7076: this query will fail if the Kudu scan spins up too many scanner threads.
# Only one scanner thread per impalad should be started.
# Set num_scanner_threads to reduce the row batch queue length and avoid IMPALA-7465.
set num_scanner_threads=2;
set mem_limit="6.5mb";
select * from tpch_kudu.orders
order by o_orderkey limit 3;
---- TYPES
BIGINT,BIGINT,STRING,DECIMAL,STRING,STRING,STRING,INT,STRING
---- RESULTS
1,36901,'O',173665.47,'1996-01-02','5-LOW','Clerk#000000951',0,'nstructions sleep furiously among '
2,78002,'O',46929.18,'1996-12-01','1-URGENT','Clerk#000000880',0,' foxes. pending accounts at the pending, silent asymptot'
3,123314,'F',193846.25,'1993-10-14','5-LOW','Clerk#000000955',0,'sly final accounts boost. carefully regular ideas cajole carefully. depos'
---- RUNTIME_PROFILE
aggregation(SUM, NumScannerThreadsStarted): 3
====
---- QUERY
# Test with lower limit that reliably hits memory limit exceeded.
set disable_codegen=true;
set mem_limit=32k;
select * from tpch_kudu.orders
order by o_orderkey limit 3;
---- CATCH
Memory limit exceeded
====
