should be it
This commit is contained in:
86
external/duckdb/test/sql/limit/parallel_limit_transaction_local.test_slow
vendored
Normal file
86
external/duckdb/test/sql/limit/parallel_limit_transaction_local.test_slow
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
# name: test/sql/limit/parallel_limit_transaction_local.test_slow
|
||||
# description: Test correct behavior of parallel limit in the presence of transaction-local data
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=8
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT * FROM range(5000000) tbl(i);
|
||||
|
||||
statement ok
|
||||
CREATE TABLE other_table AS SELECT 337 i UNION ALL SELECT 948247 UNION ALL SELECT 1779793 UNION ALL SELECT 8779793;
|
||||
|
||||
statement ok
|
||||
BEGIN TRANSACTION
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers SELECT * FROM range(5000000, 10000000) tbl(i);
|
||||
|
||||
query I
|
||||
SELECT * FROM integers LIMIT 5
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>5978321 OR i=334 LIMIT 5
|
||||
----
|
||||
334
|
||||
5978322
|
||||
5978323
|
||||
5978324
|
||||
5978325
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>5978321 LIMIT 5
|
||||
----
|
||||
5978322
|
||||
5978323
|
||||
5978324
|
||||
5978325
|
||||
5978326
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>8978321 LIMIT 5
|
||||
----
|
||||
8978322
|
||||
8978323
|
||||
8978324
|
||||
8978325
|
||||
8978326
|
||||
|
||||
# IN-clause (semi join)
|
||||
query I sort
|
||||
SELECT * FROM integers WHERE i IN (SELECT * FROM other_table)
|
||||
----
|
||||
1779793
|
||||
337
|
||||
8779793
|
||||
948247
|
||||
|
||||
query I
|
||||
(SELECT * FROM integers WHERE i>1978321 LIMIT 5) UNION ALL (SELECT * FROM integers WHERE i>8978321 LIMIT 5)
|
||||
----
|
||||
1978322
|
||||
1978323
|
||||
1978324
|
||||
1978325
|
||||
1978326
|
||||
8978322
|
||||
8978323
|
||||
8978324
|
||||
8978325
|
||||
8978326
|
||||
|
||||
statement ok
|
||||
DROP TABLE integers
|
||||
|
||||
statement ok
|
||||
ROLLBACK
|
||||
17
external/duckdb/test/sql/limit/test_limit0.test
vendored
Normal file
17
external/duckdb/test/sql/limit/test_limit0.test
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# name: test/sql/limit/test_limit0.test
|
||||
# description: Test limit 0
|
||||
# group: [limit]
|
||||
|
||||
# not running with verification on purpose, since running this without the optimizer will take forever
|
||||
query I
|
||||
SELECT * FROM (SELECT SUM(i) FROM range(100000000000) tbl(i)) LIMIT 0;
|
||||
----
|
||||
|
||||
statement ok
|
||||
PRAGMA explain_output='OPTIMIZED_ONLY'
|
||||
|
||||
query II nosort emptyset
|
||||
EXPLAIN SELECT * FROM (SELECT SUM(i) FROM range(100000000000) tbl(i)) LIMIT 0;
|
||||
|
||||
query II nosort emptyset
|
||||
EXPLAIN SELECT * FROM (SELECT SUM(i) FROM range(100000000000) tbl(i)) WHERE 1=0;
|
||||
120
external/duckdb/test/sql/limit/test_parallel_limit.test_slow
vendored
Normal file
120
external/duckdb/test/sql/limit/test_parallel_limit.test_slow
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
# name: test/sql/limit/test_parallel_limit.test_slow
|
||||
# description: Test parallel limit execution
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=8
|
||||
|
||||
statement ok
|
||||
CREATE TABLE other_table AS SELECT 337 i UNION ALL SELECT 948247 UNION ALL SELECT 1779793 UNION ALL SELECT 4779793;
|
||||
|
||||
foreach table_type TABLE VIEW
|
||||
|
||||
statement ok
|
||||
CREATE ${table_type} integers AS SELECT * FROM range(10000000) tbl(i);
|
||||
|
||||
query I
|
||||
SELECT * FROM integers LIMIT 5
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>1978321 OR i=334 LIMIT 5
|
||||
----
|
||||
334
|
||||
1978322
|
||||
1978323
|
||||
1978324
|
||||
1978325
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>1978321 LIMIT 5
|
||||
----
|
||||
1978322
|
||||
1978323
|
||||
1978324
|
||||
1978325
|
||||
1978326
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>4978321 LIMIT 5
|
||||
----
|
||||
4978322
|
||||
4978323
|
||||
4978324
|
||||
4978325
|
||||
4978326
|
||||
|
||||
# large offset
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>4978321 LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
5078322
|
||||
5078323
|
||||
5078324
|
||||
5078325
|
||||
5078326
|
||||
|
||||
query I
|
||||
SELECT * FROM integers WHERE i>4978321 LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
5978322
|
||||
5978323
|
||||
5978324
|
||||
5978325
|
||||
5978326
|
||||
|
||||
# insertion order preservation with window functions
|
||||
query II
|
||||
SELECT i, lead(i, 1) over () FROM integers LIMIT 5 OFFSET 4978321;
|
||||
----
|
||||
4978321 4978322
|
||||
4978322 4978323
|
||||
4978323 4978324
|
||||
4978324 4978325
|
||||
4978325 4978326
|
||||
|
||||
# large lead
|
||||
query II
|
||||
SELECT i, lead(i, 100000) over () FROM integers LIMIT 5 OFFSET 4978321;
|
||||
----
|
||||
4978321 5078321
|
||||
4978322 5078322
|
||||
4978323 5078323
|
||||
4978324 5078324
|
||||
4978325 5078325
|
||||
|
||||
# IN-clause (semi join)
|
||||
query I sort
|
||||
SELECT * FROM integers WHERE i IN (SELECT * FROM other_table)
|
||||
----
|
||||
1779793
|
||||
337
|
||||
4779793
|
||||
948247
|
||||
|
||||
query I
|
||||
(SELECT * FROM integers WHERE i>1978321 LIMIT 5) UNION ALL (SELECT * FROM integers WHERE i>4978321 LIMIT 5)
|
||||
----
|
||||
1978322
|
||||
1978323
|
||||
1978324
|
||||
1978325
|
||||
1978326
|
||||
4978322
|
||||
4978323
|
||||
4978324
|
||||
4978325
|
||||
4978326
|
||||
|
||||
statement ok
|
||||
DROP ${table_type} integers
|
||||
|
||||
endloop
|
||||
95
external/duckdb/test/sql/limit/test_parallel_limit_nested.test_slow
vendored
Normal file
95
external/duckdb/test/sql/limit/test_parallel_limit_nested.test_slow
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
# name: test/sql/limit/test_parallel_limit_nested.test_slow
|
||||
# description: Test parallel limit execution with basic nested types
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=8
|
||||
|
||||
statement ok
|
||||
CREATE TABLE other_table AS SELECT 337 i UNION ALL SELECT 94824 UNION ALL SELECT 177979 UNION ALL SELECT 477979;
|
||||
|
||||
foreach table_type TABLE VIEW
|
||||
|
||||
statement ok
|
||||
CREATE ${table_type} integers AS SELECT i, [i, i + 1, i + 2] AS k, {'i': i} AS l FROM range(1000000) tbl(i);
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers LIMIT 5
|
||||
----
|
||||
[0, 1, 2] {'i': 0}
|
||||
[1, 2, 3] {'i': 1}
|
||||
[2, 3, 4] {'i': 2}
|
||||
[3, 4, 5] {'i': 3}
|
||||
[4, 5, 6] {'i': 4}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>197832 OR i=334 LIMIT 5
|
||||
----
|
||||
[334, 335, 336] {'i': 334}
|
||||
[197833, 197834, 197835] {'i': 197833}
|
||||
[197834, 197835, 197836] {'i': 197834}
|
||||
[197835, 197836, 197837] {'i': 197835}
|
||||
[197836, 197837, 197838] {'i': 197836}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>197832 LIMIT 5
|
||||
----
|
||||
[197833, 197834, 197835] {'i': 197833}
|
||||
[197834, 197835, 197836] {'i': 197834}
|
||||
[197835, 197836, 197837] {'i': 197835}
|
||||
[197836, 197837, 197838] {'i': 197836}
|
||||
[197837, 197838, 197839] {'i': 197837}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>497832 LIMIT 5
|
||||
----
|
||||
[497833, 497834, 497835] {'i': 497833}
|
||||
[497834, 497835, 497836] {'i': 497834}
|
||||
[497835, 497836, 497837] {'i': 497835}
|
||||
[497836, 497837, 497838] {'i': 497836}
|
||||
[497837, 497838, 497839] {'i': 497837}
|
||||
|
||||
# large offset
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>497832 LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
[597833, 597834, 597835] {'i': 597833}
|
||||
[597834, 597835, 597836] {'i': 597834}
|
||||
[597835, 597836, 597837] {'i': 597835}
|
||||
[597836, 597837, 597838] {'i': 597836}
|
||||
[597837, 597838, 597839] {'i': 597837}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>497832 LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
|
||||
# IN-clause (semi join)
|
||||
query II sort
|
||||
SELECT k, l FROM integers WHERE i IN (SELECT * FROM other_table)
|
||||
----
|
||||
[177979, 177980, 177981] {'i': 177979}
|
||||
[337, 338, 339] {'i': 337}
|
||||
[477979, 477980, 477981] {'i': 477979}
|
||||
[94824, 94825, 94826] {'i': 94824}
|
||||
|
||||
query II
|
||||
(SELECT k, l FROM integers WHERE i>197832 LIMIT 5) UNION ALL (SELECT k, l FROM integers WHERE i>497832 LIMIT 5)
|
||||
----
|
||||
[197833, 197834, 197835] {'i': 197833}
|
||||
[197834, 197835, 197836] {'i': 197834}
|
||||
[197835, 197836, 197837] {'i': 197835}
|
||||
[197836, 197837, 197838] {'i': 197836}
|
||||
[197837, 197838, 197839] {'i': 197837}
|
||||
[497833, 497834, 497835] {'i': 497833}
|
||||
[497834, 497835, 497836] {'i': 497834}
|
||||
[497835, 497836, 497837] {'i': 497835}
|
||||
[497836, 497837, 497838] {'i': 497836}
|
||||
[497837, 497838, 497839] {'i': 497837}
|
||||
|
||||
statement ok
|
||||
DROP ${table_type} integers
|
||||
|
||||
endloop
|
||||
95
external/duckdb/test/sql/limit/test_parallel_limit_nested_null.test_slow
vendored
Normal file
95
external/duckdb/test/sql/limit/test_parallel_limit_nested_null.test_slow
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
# name: test/sql/limit/test_parallel_limit_nested_null.test_slow
|
||||
# description: Test parallel limit execution with nested types and nulls
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=8
|
||||
|
||||
statement ok
|
||||
CREATE TABLE other_table AS SELECT 337 i UNION ALL SELECT 94824 UNION ALL SELECT 177979 UNION ALL SELECT 477979;
|
||||
|
||||
foreach table_type TABLE VIEW
|
||||
|
||||
statement ok
|
||||
CREATE ${table_type} integers AS SELECT i, case when i%2=0 then [i, NULL, i + 2] else [NULL, i + 1, NULL] end AS k, {'i': case when i%2=0 then null else i end} AS l FROM range(1000000) tbl(i);
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers LIMIT 5
|
||||
----
|
||||
[0, NULL, 2] {'i': NULL}
|
||||
[NULL, 2, NULL] {'i': 1}
|
||||
[2, NULL, 4] {'i': NULL}
|
||||
[NULL, 4, NULL] {'i': 3}
|
||||
[4, NULL, 6] {'i': NULL}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>197832 OR i=334 LIMIT 5
|
||||
----
|
||||
[334, NULL, 336] {'i': NULL}
|
||||
[NULL, 197834, NULL] {'i': 197833}
|
||||
[197834, NULL, 197836] {'i': NULL}
|
||||
[NULL, 197836, NULL] {'i': 197835}
|
||||
[197836, NULL, 197838] {'i': NULL}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>197832 LIMIT 5
|
||||
----
|
||||
[NULL, 197834, NULL] {'i': 197833}
|
||||
[197834, NULL, 197836] {'i': NULL}
|
||||
[NULL, 197836, NULL] {'i': 197835}
|
||||
[197836, NULL, 197838] {'i': NULL}
|
||||
[NULL, 197838, NULL] {'i': 197837}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>497832 LIMIT 5
|
||||
----
|
||||
[NULL, 497834, NULL] {'i': 497833}
|
||||
[497834, NULL, 497836] {'i': NULL}
|
||||
[NULL, 497836, NULL] {'i': 497835}
|
||||
[497836, NULL, 497838] {'i': NULL}
|
||||
[NULL, 497838, NULL] {'i': 497837}
|
||||
|
||||
# large offset
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>497832 LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
[NULL, 597834, NULL] {'i': 597833}
|
||||
[597834, NULL, 597836] {'i': NULL}
|
||||
[NULL, 597836, NULL] {'i': 597835}
|
||||
[597836, NULL, 597838] {'i': NULL}
|
||||
[NULL, 597838, NULL] {'i': 597837}
|
||||
|
||||
query II
|
||||
SELECT k, l FROM integers WHERE i>497832 LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
|
||||
# IN-clause (semi join)
|
||||
query II sort
|
||||
SELECT k, l FROM integers WHERE i IN (SELECT * FROM other_table)
|
||||
----
|
||||
[94824, NULL, 94826] {'i': NULL}
|
||||
[NULL, 177980, NULL] {'i': 177979}
|
||||
[NULL, 338, NULL] {'i': 337}
|
||||
[NULL, 477980, NULL] {'i': 477979}
|
||||
|
||||
query II
|
||||
(SELECT k, l FROM integers WHERE i>197832 LIMIT 5) UNION ALL (SELECT k, l FROM integers WHERE i>497832 LIMIT 5)
|
||||
----
|
||||
[NULL, 197834, NULL] {'i': 197833}
|
||||
[197834, NULL, 197836] {'i': NULL}
|
||||
[NULL, 197836, NULL] {'i': 197835}
|
||||
[197836, NULL, 197838] {'i': NULL}
|
||||
[NULL, 197838, NULL] {'i': 197837}
|
||||
[NULL, 497834, NULL] {'i': 497833}
|
||||
[497834, NULL, 497836] {'i': NULL}
|
||||
[NULL, 497836, NULL] {'i': 497835}
|
||||
[497836, NULL, 497838] {'i': NULL}
|
||||
[NULL, 497838, NULL] {'i': 497837}
|
||||
|
||||
statement ok
|
||||
DROP ${table_type} integers
|
||||
|
||||
endloop
|
||||
100
external/duckdb/test/sql/limit/test_parallel_limit_nulls.test_slow
vendored
Normal file
100
external/duckdb/test/sql/limit/test_parallel_limit_nulls.test_slow
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
# name: test/sql/limit/test_parallel_limit_nulls.test_slow
|
||||
# description: Test parallel limit execution with NULLs
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=8
|
||||
|
||||
statement ok
|
||||
CREATE TABLE other_table AS SELECT 337 i UNION ALL SELECT 948247 UNION ALL SELECT 1779793 UNION ALL SELECT 4779793;
|
||||
|
||||
foreach table_type TABLE VIEW
|
||||
|
||||
statement ok
|
||||
CREATE ${table_type} integers AS SELECT i, CASE WHEN i%2=0 THEN NULL ELSE i END AS k FROM range(10000000) tbl(i);
|
||||
|
||||
query I
|
||||
SELECT k FROM integers LIMIT 5
|
||||
----
|
||||
NULL
|
||||
1
|
||||
NULL
|
||||
3
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>1978321 OR i=334 LIMIT 5
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
1978323
|
||||
NULL
|
||||
1978325
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>1978321 LIMIT 5
|
||||
----
|
||||
NULL
|
||||
1978323
|
||||
NULL
|
||||
1978325
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>4978321 LIMIT 5
|
||||
----
|
||||
NULL
|
||||
4978323
|
||||
NULL
|
||||
4978325
|
||||
NULL
|
||||
|
||||
# large offset
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>4978321 LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
NULL
|
||||
5078323
|
||||
NULL
|
||||
5078325
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>4978321 LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
NULL
|
||||
5978323
|
||||
NULL
|
||||
5978325
|
||||
NULL
|
||||
|
||||
# IN-clause (semi join)
|
||||
query I sort
|
||||
SELECT k FROM integers WHERE i IN (SELECT * FROM other_table)
|
||||
----
|
||||
1779793
|
||||
337
|
||||
4779793
|
||||
948247
|
||||
|
||||
query I
|
||||
(SELECT k FROM integers WHERE i>1978321 LIMIT 5) UNION ALL (SELECT k FROM integers WHERE i>4978321 LIMIT 5)
|
||||
----
|
||||
NULL
|
||||
1978323
|
||||
NULL
|
||||
1978325
|
||||
NULL
|
||||
NULL
|
||||
4978323
|
||||
NULL
|
||||
4978325
|
||||
NULL
|
||||
|
||||
statement ok
|
||||
DROP ${table_type} integers
|
||||
|
||||
endloop
|
||||
100
external/duckdb/test/sql/limit/test_parallel_limit_strings.test_slow
vendored
Normal file
100
external/duckdb/test/sql/limit/test_parallel_limit_strings.test_slow
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
# name: test/sql/limit/test_parallel_limit_strings.test_slow
|
||||
# description: Test parallel limit execution with strings
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=8
|
||||
|
||||
statement ok
|
||||
CREATE TABLE other_table AS SELECT 337 i UNION ALL SELECT 948247 UNION ALL SELECT 1779793 UNION ALL SELECT 4779793;
|
||||
|
||||
foreach table_type TABLE VIEW
|
||||
|
||||
statement ok
|
||||
CREATE ${table_type} integers AS SELECT i, CONCAT('quackquack', i) AS k FROM range(10000000) tbl(i);
|
||||
|
||||
query I
|
||||
SELECT k FROM integers LIMIT 5
|
||||
----
|
||||
quackquack0
|
||||
quackquack1
|
||||
quackquack2
|
||||
quackquack3
|
||||
quackquack4
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>1978321 OR i=334 LIMIT 5
|
||||
----
|
||||
quackquack334
|
||||
quackquack1978322
|
||||
quackquack1978323
|
||||
quackquack1978324
|
||||
quackquack1978325
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>1978321 LIMIT 5
|
||||
----
|
||||
quackquack1978322
|
||||
quackquack1978323
|
||||
quackquack1978324
|
||||
quackquack1978325
|
||||
quackquack1978326
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>4978321 LIMIT 5
|
||||
----
|
||||
quackquack4978322
|
||||
quackquack4978323
|
||||
quackquack4978324
|
||||
quackquack4978325
|
||||
quackquack4978326
|
||||
|
||||
# large offset
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>4978321 LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
quackquack5078322
|
||||
quackquack5078323
|
||||
quackquack5078324
|
||||
quackquack5078325
|
||||
quackquack5078326
|
||||
|
||||
query I
|
||||
SELECT k FROM integers WHERE i>4978321 LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
quackquack5978322
|
||||
quackquack5978323
|
||||
quackquack5978324
|
||||
quackquack5978325
|
||||
quackquack5978326
|
||||
|
||||
# IN-clause (semi join)
|
||||
query I sort
|
||||
SELECT k FROM integers WHERE i IN (SELECT * FROM other_table)
|
||||
----
|
||||
quackquack1779793
|
||||
quackquack337
|
||||
quackquack4779793
|
||||
quackquack948247
|
||||
|
||||
query I
|
||||
(SELECT k FROM integers WHERE i>1978321 LIMIT 5) UNION ALL (SELECT k FROM integers WHERE i>4978321 LIMIT 5)
|
||||
----
|
||||
quackquack1978322
|
||||
quackquack1978323
|
||||
quackquack1978324
|
||||
quackquack1978325
|
||||
quackquack1978326
|
||||
quackquack4978322
|
||||
quackquack4978323
|
||||
quackquack4978324
|
||||
quackquack4978325
|
||||
quackquack4978326
|
||||
|
||||
statement ok
|
||||
DROP ${table_type} integers
|
||||
|
||||
endloop
|
||||
63
external/duckdb/test/sql/limit/test_preserve_insertion_order.test
vendored
Normal file
63
external/duckdb/test/sql/limit/test_preserve_insertion_order.test
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
# name: test/sql/limit/test_preserve_insertion_order.test
|
||||
# description: Test limit with preserve insertion order disabled
|
||||
# group: [limit]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
SET preserve_insertion_order=false
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT 1 AS i FROM range(1000000) t(i)
|
||||
|
||||
query III
|
||||
SELECT MIN(i), MAX(i), COUNT(*) FROM integers
|
||||
----
|
||||
1 1 1000000
|
||||
|
||||
query I
|
||||
SELECT * FROM integers LIMIT 5
|
||||
----
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
|
||||
query I
|
||||
SELECT * FROM integers LIMIT 5 OFFSET 500000
|
||||
----
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers2 AS SELECT * FROM range(1000000) tbl(i)
|
||||
|
||||
query III
|
||||
SELECT MIN(i), MAX(i), COUNT(*) FROM integers2
|
||||
----
|
||||
0 999999 1000000
|
||||
|
||||
# we need a rowsort here because we don't preserve insertion order
|
||||
# note that rowsort is a string-based sort
|
||||
query I rowsort
|
||||
SELECT * FROM integers2 WHERE i IN (337, 195723, 442578, 994375)
|
||||
----
|
||||
195723
|
||||
337
|
||||
442578
|
||||
994375
|
||||
|
||||
# when insertion order is disabled, there is no guarantee on which tuples come out of a LIMIT clause
|
||||
# for the LIMIT test select everything
|
||||
query I rowsort
|
||||
SELECT * FROM integers2 WHERE i IN (337, 195723, 442578, 994375) LIMIT 4
|
||||
----
|
||||
195723
|
||||
337
|
||||
442578
|
||||
994375
|
||||
Reference in New Issue
Block a user