should be it
This commit is contained in:
58
external/duckdb/test/sql/topn/test_top_n.test
vendored
Normal file
58
external/duckdb/test/sql/topn/test_top_n.test
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
# name: test/sql/topn/test_top_n.test
|
||||
# description: Test Top N Optimization
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE test (b INTEGER);
|
||||
|
||||
statement ok
|
||||
INSERT INTO test VALUES (22), (2), (7);
|
||||
|
||||
# Top N optimization
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b DESC LIMIT 2;
|
||||
----
|
||||
22
|
||||
7
|
||||
|
||||
# Top N optimization: works with OFFSET
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b LIMIT 1 OFFSET 1;
|
||||
----
|
||||
7
|
||||
|
||||
# Top N optimization: Limit greater than number of rows
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b LIMIT 10
|
||||
----
|
||||
2
|
||||
7
|
||||
22
|
||||
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b DESC LIMIT 10
|
||||
----
|
||||
22
|
||||
7
|
||||
2
|
||||
|
||||
# Top N optimization: Limit greater than number of rows
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b LIMIT 10 OFFSET 1;
|
||||
----
|
||||
7
|
||||
22
|
||||
|
||||
# Top N optimization: Offset greater than total number of rows
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b LIMIT 10 OFFSET 10;
|
||||
----
|
||||
|
||||
# Top N optimization: doesn't apply for Offset without Limit
|
||||
query I
|
||||
SELECT b FROM test ORDER BY b OFFSET 10;
|
||||
----
|
||||
|
||||
123
external/duckdb/test/sql/topn/test_top_n_lists.test
vendored
Normal file
123
external/duckdb/test/sql/topn/test_top_n_lists.test
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
# name: test/sql/topn/test_top_n_lists.test
|
||||
# description: Test Top N with lists
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
# top-n with lists and null values
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT [i] l FROM range(1000) tbl(i) UNION ALL SELECT NULL l FROM range(3)
|
||||
|
||||
loop i 0 2
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l NULLS FIRST LIMIT 5
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
[0]
|
||||
[1]
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l NULLS LAST LIMIT 5
|
||||
----
|
||||
[0]
|
||||
[1]
|
||||
[2]
|
||||
[3]
|
||||
[4]
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l DESC NULLS FIRST LIMIT 5
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
[999]
|
||||
[998]
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l DESC NULLS LAST LIMIT 5
|
||||
----
|
||||
[999]
|
||||
[998]
|
||||
[997]
|
||||
[996]
|
||||
[995]
|
||||
|
||||
statement ok
|
||||
DROP TABLE tbl
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT NULL l FROM range(3) UNION ALL SELECT [i] l FROM range(1000) tbl(i)
|
||||
|
||||
endloop
|
||||
|
||||
statement ok
|
||||
DROP TABLE tbl
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT [i] l FROM range(1000) tbl(i) UNION ALL SELECT [NULL] l FROM range(3)
|
||||
|
||||
loop i 0 2
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l NULLS FIRST LIMIT 5
|
||||
----
|
||||
[0]
|
||||
[1]
|
||||
[2]
|
||||
[3]
|
||||
[4]
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l NULLS LAST LIMIT 5
|
||||
----
|
||||
[0]
|
||||
[1]
|
||||
[2]
|
||||
[3]
|
||||
[4]
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l DESC NULLS FIRST LIMIT 5
|
||||
----
|
||||
[NULL]
|
||||
[NULL]
|
||||
[NULL]
|
||||
[999]
|
||||
[998]
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l DESC NULLS LAST LIMIT 5
|
||||
----
|
||||
[NULL]
|
||||
[NULL]
|
||||
[NULL]
|
||||
[999]
|
||||
[998]
|
||||
|
||||
statement ok
|
||||
DROP TABLE tbl
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT [NULL] l FROM range(3) UNION ALL SELECT [i] l FROM range(1000) tbl(i)
|
||||
|
||||
endloop
|
||||
|
||||
# bigger lists
|
||||
query I
|
||||
SELECT range(i) l FROM range(10) tbl(i) ORDER BY l DESC LIMIT 3
|
||||
----
|
||||
[0, 1, 2, 3, 4, 5, 6, 7, 8]
|
||||
[0, 1, 2, 3, 4, 5, 6, 7]
|
||||
[0, 1, 2, 3, 4, 5, 6]
|
||||
|
||||
query I
|
||||
SELECT range(i) l FROM range(10) tbl(i) ORDER BY l ASC LIMIT 3
|
||||
----
|
||||
[]
|
||||
[0]
|
||||
[0, 1]
|
||||
27
external/duckdb/test/sql/topn/test_top_n_medium.test
vendored
Normal file
27
external/duckdb/test/sql/topn/test_top_n_medium.test
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
# name: test/sql/topn/test_top_n_medium.test
|
||||
# description: Test Top N with medium sized data
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT i, i % 1000 j FROM range(1000000) tbl(i)
|
||||
|
||||
query II
|
||||
SELECT * FROM tbl ORDER BY j, i LIMIT 5
|
||||
----
|
||||
0 0
|
||||
1000 0
|
||||
2000 0
|
||||
3000 0
|
||||
4000 0
|
||||
|
||||
query II
|
||||
SELECT * FROM tbl ORDER BY j DESC, i DESC LIMIT 5
|
||||
----
|
||||
999999 999
|
||||
998999 999
|
||||
997999 999
|
||||
996999 999
|
||||
995999 999
|
||||
28
external/duckdb/test/sql/topn/test_top_n_nested_struct.test
vendored
Normal file
28
external/duckdb/test/sql/topn/test_top_n_nested_struct.test
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# name: test/sql/topn/test_top_n_nested_struct.test
|
||||
# description: Test Top-N on nested structs
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE nested_struct(cik BIGINT, entityName VARCHAR, a STRUCT(b STRUCT(c INT, d INT), c STRUCT(e INT, f INT)));
|
||||
|
||||
statement ok
|
||||
INSERT INTO nested_struct VALUES (42, 'entity', {'b': {'c': 42, 'd': 43}, 'c': {'e': 44, 'f': 45}}),
|
||||
(142, 'entity2', {'b': {'c': 142, 'd': 143}, 'c': {'e': 144, 'f': 145}});
|
||||
|
||||
query IIII
|
||||
select unnest(a, recursive:=true) from nested_struct limit 1
|
||||
----
|
||||
42 43 44 45
|
||||
|
||||
query IIII
|
||||
SELECT unnest(a, recursive := true) FROM nested_struct ORDER BY a.b.c LIMIT 1
|
||||
----
|
||||
42 43 44 45
|
||||
|
||||
query IIII
|
||||
SELECT unnest(a, recursive := true) FROM nested_struct ORDER BY a.b.c DESC LIMIT 1
|
||||
----
|
||||
142 143 144 145
|
||||
36
external/duckdb/test/sql/topn/test_top_n_nulls_first.test
vendored
Normal file
36
external/duckdb/test/sql/topn/test_top_n_nulls_first.test
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
# name: test/sql/topn/test_top_n_nulls_first.test
|
||||
# description: Test NULLS FIRST/NULLS LAST with top n implementation
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers(i INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO integers VALUES (1), (NULL)
|
||||
|
||||
query I
|
||||
SELECT * FROM integers ORDER BY i NULLS FIRST LIMIT 2
|
||||
----
|
||||
NULL
|
||||
1
|
||||
|
||||
query I
|
||||
SELECT * FROM integers ORDER BY i NULLS LAST LIMIT 2
|
||||
----
|
||||
1
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT * FROM integers ORDER BY i DESC NULLS FIRST LIMIT 2
|
||||
----
|
||||
NULL
|
||||
1
|
||||
|
||||
query I
|
||||
SELECT * FROM integers ORDER BY i DESC NULLS LAST LIMIT 2
|
||||
----
|
||||
1
|
||||
NULL
|
||||
147
external/duckdb/test/sql/topn/test_top_n_nulls_large.test_slow
vendored
Normal file
147
external/duckdb/test/sql/topn/test_top_n_nulls_large.test_slow
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
# name: test/sql/topn/test_top_n_nulls_large.test_slow
|
||||
# description: Test Top N NULLS FIRST/LAST with many rows
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
# we execute this set of tests twice
|
||||
# the data is the same, but organized different physically
|
||||
# first the nulls are at the end of the table
|
||||
# then the nulls are at the beginning of the table
|
||||
# all the results should stay the same
|
||||
|
||||
statement ok
|
||||
PRAGMA threads=4
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT i, i j FROM range(1000000) tbl(i) UNION ALL SELECT NULL i, range j FROM range(1000000)
|
||||
|
||||
loop i 0 2
|
||||
|
||||
# single column sort
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i ASC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i ASC NULLS LAST LIMIT 5;
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS LAST LIMIT 5;
|
||||
----
|
||||
999999
|
||||
999998
|
||||
999997
|
||||
999996
|
||||
999995
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i NULLS FIRST LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS FIRST LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
999999
|
||||
999998
|
||||
999997
|
||||
999996
|
||||
999995
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i NULLS LAST LIMIT 5 OFFSET 1000000;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
# multi-column sort
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j, i NULLS FIRST LIMIT 5;
|
||||
----
|
||||
0 NULL
|
||||
0 0
|
||||
1 NULL
|
||||
1 1
|
||||
2 NULL
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j, i NULLS LAST LIMIT 5;
|
||||
----
|
||||
0 0
|
||||
0 NULL
|
||||
1 1
|
||||
1 NULL
|
||||
2 2
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j DESC, i DESC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
999999 NULL
|
||||
999999 999999
|
||||
999998 NULL
|
||||
999998 999998
|
||||
999997 NULL
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j DESC, i DESC NULLS LAST LIMIT 5;
|
||||
----
|
||||
999999 999999
|
||||
999999 NULL
|
||||
999998 999998
|
||||
999998 NULL
|
||||
999997 999997
|
||||
|
||||
query II
|
||||
SELECT i, j FROM integers ORDER BY i DESC NULLS FIRST, j DESC LIMIT 5;
|
||||
----
|
||||
NULL 999999
|
||||
NULL 999998
|
||||
NULL 999997
|
||||
NULL 999996
|
||||
NULL 999995
|
||||
|
||||
query II
|
||||
SELECT i, j FROM integers ORDER BY i DESC NULLS LAST, j ASC LIMIT 5;
|
||||
----
|
||||
999999 999999
|
||||
999998 999998
|
||||
999997 999997
|
||||
999996 999996
|
||||
999995 999995
|
||||
|
||||
statement ok
|
||||
DROP TABLE integers
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT NULL i, i j FROM range(1000000) tbl(i) UNION ALL SELECT range i, range j FROM range(1000000)
|
||||
|
||||
endloop
|
||||
144
external/duckdb/test/sql/topn/test_top_n_nulls_medium.test_slow
vendored
Normal file
144
external/duckdb/test/sql/topn/test_top_n_nulls_medium.test_slow
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
# name: test/sql/topn/test_top_n_nulls_medium.test_slow
|
||||
# description: Test Top N NULLS FIRST/LAST with many rows
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
# we execute this set of tests twice
|
||||
# the data is the same, but organized different physically
|
||||
# first the nulls are at the end of the table
|
||||
# then the nulls are at the beginning of the table
|
||||
# all the results should stay the same
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT i, i j FROM range(100000) tbl(i) UNION ALL SELECT NULL i, range j FROM range(100000)
|
||||
|
||||
loop i 0 2
|
||||
|
||||
# single column sort
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i ASC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i ASC NULLS LAST LIMIT 5;
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS LAST LIMIT 5;
|
||||
----
|
||||
99999
|
||||
99998
|
||||
99997
|
||||
99996
|
||||
99995
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i NULLS FIRST LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS FIRST LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
99999
|
||||
99998
|
||||
99997
|
||||
99996
|
||||
99995
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i NULLS LAST LIMIT 5 OFFSET 100000;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
# multi-column sort
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j, i NULLS FIRST LIMIT 5;
|
||||
----
|
||||
0 NULL
|
||||
0 0
|
||||
1 NULL
|
||||
1 1
|
||||
2 NULL
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j, i NULLS LAST LIMIT 5;
|
||||
----
|
||||
0 0
|
||||
0 NULL
|
||||
1 1
|
||||
1 NULL
|
||||
2 2
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j DESC, i DESC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
99999 NULL
|
||||
99999 99999
|
||||
99998 NULL
|
||||
99998 99998
|
||||
99997 NULL
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j DESC, i DESC NULLS LAST LIMIT 5;
|
||||
----
|
||||
99999 99999
|
||||
99999 NULL
|
||||
99998 99998
|
||||
99998 NULL
|
||||
99997 99997
|
||||
|
||||
query II
|
||||
SELECT i, j FROM integers ORDER BY i DESC NULLS FIRST, j DESC LIMIT 5;
|
||||
----
|
||||
NULL 99999
|
||||
NULL 99998
|
||||
NULL 99997
|
||||
NULL 99996
|
||||
NULL 99995
|
||||
|
||||
query II
|
||||
SELECT i, j FROM integers ORDER BY i DESC NULLS LAST, j ASC LIMIT 5;
|
||||
----
|
||||
99999 99999
|
||||
99998 99998
|
||||
99997 99997
|
||||
99996 99996
|
||||
99995 99995
|
||||
|
||||
statement ok
|
||||
DROP TABLE integers
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT NULL i, i j FROM range(100000) tbl(i) UNION ALL SELECT range i, range j FROM range(100000)
|
||||
|
||||
endloop
|
||||
144
external/duckdb/test/sql/topn/test_top_n_nulls_small.test
vendored
Normal file
144
external/duckdb/test/sql/topn/test_top_n_nulls_small.test
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
# name: test/sql/topn/test_top_n_nulls_small.test
|
||||
# description: Test Top N NULLS FIRST/LAST with few rows
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
# we execute this set of tests twice
|
||||
# the data is the same, but organized different physically
|
||||
# first the nulls are at the end of the table
|
||||
# then the nulls are at the beginning of the table
|
||||
# all the results should stay the same
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT i, i j FROM range(1000) tbl(i) UNION ALL SELECT NULL i, range j FROM range(1000)
|
||||
|
||||
loop i 0 2
|
||||
|
||||
# single column sort
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i ASC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i ASC NULLS LAST LIMIT 5;
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS LAST LIMIT 5;
|
||||
----
|
||||
999
|
||||
998
|
||||
997
|
||||
996
|
||||
995
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i NULLS FIRST LIMIT 5 OFFSET 1000;
|
||||
----
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i DESC NULLS FIRST LIMIT 5 OFFSET 1000;
|
||||
----
|
||||
999
|
||||
998
|
||||
997
|
||||
996
|
||||
995
|
||||
|
||||
query I
|
||||
SELECT i FROM integers ORDER BY i NULLS LAST LIMIT 5 OFFSET 1000;
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
|
||||
# multi-column sort
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j, i NULLS FIRST LIMIT 5;
|
||||
----
|
||||
0 NULL
|
||||
0 0
|
||||
1 NULL
|
||||
1 1
|
||||
2 NULL
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j, i NULLS LAST LIMIT 5;
|
||||
----
|
||||
0 0
|
||||
0 NULL
|
||||
1 1
|
||||
1 NULL
|
||||
2 2
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j DESC, i DESC NULLS FIRST LIMIT 5;
|
||||
----
|
||||
999 NULL
|
||||
999 999
|
||||
998 NULL
|
||||
998 998
|
||||
997 NULL
|
||||
|
||||
query II
|
||||
SELECT j, i FROM integers ORDER BY j DESC, i DESC NULLS LAST LIMIT 5;
|
||||
----
|
||||
999 999
|
||||
999 NULL
|
||||
998 998
|
||||
998 NULL
|
||||
997 997
|
||||
|
||||
query II
|
||||
SELECT i, j FROM integers ORDER BY i DESC NULLS FIRST, j DESC LIMIT 5;
|
||||
----
|
||||
NULL 999
|
||||
NULL 998
|
||||
NULL 997
|
||||
NULL 996
|
||||
NULL 995
|
||||
|
||||
query II
|
||||
SELECT i, j FROM integers ORDER BY i DESC NULLS LAST, j ASC LIMIT 5;
|
||||
----
|
||||
999 999
|
||||
998 998
|
||||
997 997
|
||||
996 996
|
||||
995 995
|
||||
|
||||
statement ok
|
||||
DROP TABLE integers
|
||||
|
||||
statement ok
|
||||
CREATE TABLE integers AS SELECT NULL i, i j FROM range(1000) tbl(i) UNION ALL SELECT range i, range j FROM range(1000)
|
||||
|
||||
endloop
|
||||
55
external/duckdb/test/sql/topn/test_top_n_structs.test
vendored
Normal file
55
external/duckdb/test/sql/topn/test_top_n_structs.test
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
# name: test/sql/topn/test_top_n_structs.test
|
||||
# description: Test Top N with structs
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT {'i': i} l FROM range(1000) tbl(i) UNION ALL SELECT NULL l FROM range(3)
|
||||
|
||||
loop i 0 2
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l NULLS FIRST LIMIT 5
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
{'i': 0}
|
||||
{'i': 1}
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l NULLS LAST LIMIT 5
|
||||
----
|
||||
{'i': 0}
|
||||
{'i': 1}
|
||||
{'i': 2}
|
||||
{'i': 3}
|
||||
{'i': 4}
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l DESC NULLS FIRST LIMIT 5
|
||||
----
|
||||
NULL
|
||||
NULL
|
||||
NULL
|
||||
{'i': 999}
|
||||
{'i': 998}
|
||||
|
||||
query I
|
||||
SELECT l FROM tbl ORDER BY l DESC NULLS LAST LIMIT 5
|
||||
----
|
||||
{'i': 999}
|
||||
{'i': 998}
|
||||
{'i': 997}
|
||||
{'i': 996}
|
||||
{'i': 995}
|
||||
|
||||
statement ok
|
||||
DROP TABLE tbl
|
||||
|
||||
statement ok
|
||||
CREATE TABLE tbl AS SELECT NULL l FROM range(3) UNION ALL SELECT {'i': i} l FROM range(1000) tbl(i)
|
||||
|
||||
endloop
|
||||
148
external/duckdb/test/sql/topn/top_n_materialization.test
vendored
Normal file
148
external/duckdb/test/sql/topn/top_n_materialization.test
vendored
Normal file
@@ -0,0 +1,148 @@
|
||||
# name: test/sql/topn/top_n_materialization.test
|
||||
# description: Test Top N Optimization
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE test AS SELECT i, i + 1 AS j, i + 2 AS k, -i AS l FROM range(10) t(i);
|
||||
|
||||
statement ok
|
||||
SET explain_output='optimized_only'
|
||||
|
||||
# Top N optimization
|
||||
# this gets turned into a row-id join
|
||||
query II
|
||||
explain SELECT * FROM test ORDER BY j DESC LIMIT 2;
|
||||
----
|
||||
logical_opt <REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
query IIII
|
||||
SELECT * FROM test ORDER BY j DESC LIMIT 2;
|
||||
----
|
||||
9 10 11 -9
|
||||
8 9 10 -8
|
||||
|
||||
query II
|
||||
explain SELECT * FROM test ORDER BY j, i LIMIT 2;
|
||||
----
|
||||
logical_opt <REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
query IIII
|
||||
SELECT * FROM test ORDER BY j, i LIMIT 2;
|
||||
----
|
||||
0 1 2 0
|
||||
1 2 3 -1
|
||||
|
||||
# this does not, we cannot remove any columns by turning it into a row-id join
|
||||
query II
|
||||
explain SELECT i FROM test ORDER BY i LIMIT 2;
|
||||
----
|
||||
logical_opt <!REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
# we cannot do this with volatile expressions
|
||||
query II
|
||||
explain SELECT * FROM (SELECT i + random() AS i, j, k, l FROM test) ORDER BY i LIMIT 2;
|
||||
----
|
||||
logical_opt <!REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
# top-n with expressions
|
||||
query IIII
|
||||
SELECT * FROM (SELECT -i i, -j j, -k k, -l l FROM test) ORDER BY -j DESC LIMIT 2
|
||||
----
|
||||
-9 -10 -11 9
|
||||
-8 -9 -10 8
|
||||
|
||||
# multiple layers
|
||||
query IIII
|
||||
SELECT * FROM (SELECT 100 + i i, 1000 + j j, 10000 + k k, 100000 + l l FROM (SELECT -i i, -j j, -k k, -l l FROM test)) ORDER BY j DESC LIMIT 2
|
||||
----
|
||||
100 999 9998 100000
|
||||
99 998 9997 100001
|
||||
|
||||
# limit + offset
|
||||
query II
|
||||
explain SELECT * FROM test LIMIT 2 OFFSET 2;
|
||||
----
|
||||
logical_opt <REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
query IIII
|
||||
SELECT * FROM test LIMIT 2 OFFSET 2;
|
||||
----
|
||||
2 3 4 -2
|
||||
3 4 5 -3
|
||||
|
||||
# sample
|
||||
query II
|
||||
explain SELECT * FROM test USING SAMPLE 2 ROWS
|
||||
----
|
||||
logical_opt <REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
# we can only use joins when we are sampling rows
|
||||
query II
|
||||
explain SELECT * FROM test USING SAMPLE 10%
|
||||
----
|
||||
logical_opt <!REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
# order on expression
|
||||
query IIII
|
||||
SELECT * FROM test ORDER BY -j DESC LIMIT 2
|
||||
----
|
||||
0 1 2 0
|
||||
1 2 3 -1
|
||||
|
||||
# projection in subquery
|
||||
query IIII
|
||||
SELECT * FROM (SELECT -i i, -j j, -k k, -l l FROM test) ORDER BY -j DESC LIMIT 2
|
||||
----
|
||||
-9 -10 -11 9
|
||||
-8 -9 -10 8
|
||||
|
||||
# filter after top-n
|
||||
query IIII
|
||||
SELECT * FROM (
|
||||
SELECT * FROM test ORDER BY j DESC LIMIT 2
|
||||
) WHERE i=8
|
||||
----
|
||||
8 9 10 -8
|
||||
|
||||
query I
|
||||
SELECT l FROM (
|
||||
SELECT * FROM test ORDER BY j DESC LIMIT 2
|
||||
) WHERE k=10
|
||||
----
|
||||
-8
|
||||
|
||||
# now with varchar columns
|
||||
statement ok
|
||||
CREATE OR REPLACE TABLE test AS SELECT i, printf('%02d', i + 1) AS j, printf('%02d', i + 2) AS k, -i AS l FROM range(10) t(i);
|
||||
|
||||
query IIII
|
||||
SELECT * FROM test ORDER BY j DESC LIMIT 2;
|
||||
----
|
||||
9 10 11 -9
|
||||
8 09 10 -8
|
||||
|
||||
query IIII
|
||||
SELECT j, k, l, i FROM test WHERE i > 5 ORDER BY j DESC LIMIT 2;
|
||||
----
|
||||
10 11 -9 9
|
||||
09 10 -8 8
|
||||
|
||||
# test late materialization setting
|
||||
statement ok
|
||||
SET late_materialization_max_rows=0
|
||||
|
||||
query II
|
||||
explain SELECT * FROM test ORDER BY j DESC LIMIT 2;
|
||||
----
|
||||
logical_opt <!REGEX>:.*COMPARISON_JOIN.*
|
||||
|
||||
statement ok
|
||||
RESET late_materialization_max_rows
|
||||
|
||||
query II
|
||||
explain SELECT * FROM test ORDER BY j DESC LIMIT 2;
|
||||
----
|
||||
logical_opt <REGEX>:.*COMPARISON_JOIN.*
|
||||
448
external/duckdb/test/sql/topn/tpcds_q14_topn.test
vendored
Normal file
448
external/duckdb/test/sql/topn/tpcds_q14_topn.test
vendored
Normal file
@@ -0,0 +1,448 @@
|
||||
# name: test/sql/topn/tpcds_q14_topn.test
|
||||
# description: Test Top N on TPC-DS SF1
|
||||
# group: [topn]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE final(channel VARCHAR, i_brand_id INTEGER, i_class_id INTEGER, i_category_id INTEGER, sum_sales DECIMAL(38,2), number_sales HUGEINT);
|
||||
|
||||
statement ok
|
||||
COPY final FROM 'data/csv/tpcds_14.csv' (FORMAT CSV, DELIMITER '|', HEADER);
|
||||
|
||||
query IIIIII
|
||||
SELECT * FROM final
|
||||
ORDER BY channel NULLS FIRST,
|
||||
i_brand_id NULLS FIRST,
|
||||
i_class_id NULLS FIRST,
|
||||
i_category_id NULLS FIRST
|
||||
LIMIT 100;
|
||||
----
|
||||
NULL NULL NULL NULL 7014662.98 160443
|
||||
catalog NULL NULL NULL 2365617.61 46750
|
||||
catalog 1001001 NULL NULL 15639.61 347
|
||||
catalog 1001001 1 NULL 7537.03 167
|
||||
catalog 1001001 1 1 868.60 20
|
||||
catalog 1001001 1 2 1126.88 27
|
||||
catalog 1001001 1 3 68.52 3
|
||||
catalog 1001001 1 4 1210.00 23
|
||||
catalog 1001001 1 5 1093.30 25
|
||||
catalog 1001001 1 6 52.48 3
|
||||
catalog 1001001 1 7 452.95 9
|
||||
catalog 1001001 1 8 712.10 13
|
||||
catalog 1001001 1 9 1053.72 21
|
||||
catalog 1001001 1 10 898.48 23
|
||||
catalog 1001001 2 NULL 1542.32 25
|
||||
catalog 1001001 2 2 341.84 7
|
||||
catalog 1001001 2 3 1124.59 15
|
||||
catalog 1001001 2 5 75.89 3
|
||||
catalog 1001001 3 NULL 2173.35 45
|
||||
catalog 1001001 3 1 116.53 5
|
||||
catalog 1001001 3 2 456.59 14
|
||||
catalog 1001001 3 4 168.32 4
|
||||
catalog 1001001 3 5 63.20 1
|
||||
catalog 1001001 3 6 340.30 7
|
||||
catalog 1001001 3 7 559.79 7
|
||||
catalog 1001001 3 8 308.92 4
|
||||
catalog 1001001 3 9 159.70 3
|
||||
catalog 1001001 4 NULL 1068.60 31
|
||||
catalog 1001001 4 2 539.99 13
|
||||
catalog 1001001 4 3 233.42 8
|
||||
catalog 1001001 4 4 295.19 10
|
||||
catalog 1001001 5 NULL 835.63 17
|
||||
catalog 1001001 5 9 553.45 12
|
||||
catalog 1001001 5 10 282.18 5
|
||||
catalog 1001001 7 NULL 62.00 3
|
||||
catalog 1001001 7 7 62.00 3
|
||||
catalog 1001001 8 NULL 490.30 13
|
||||
catalog 1001001 8 7 187.96 7
|
||||
catalog 1001001 8 10 302.34 6
|
||||
catalog 1001001 9 NULL 283.80 5
|
||||
catalog 1001001 9 6 283.80 5
|
||||
catalog 1001001 11 NULL 660.94 12
|
||||
catalog 1001001 11 9 660.94 12
|
||||
catalog 1001001 12 NULL 287.67 9
|
||||
catalog 1001001 12 10 287.67 9
|
||||
catalog 1001001 15 NULL 697.97 20
|
||||
catalog 1001001 15 9 319.21 7
|
||||
catalog 1001001 15 10 378.76 13
|
||||
catalog 1001002 NULL NULL 34357.86 715
|
||||
catalog 1001002 1 NULL 25374.09 536
|
||||
catalog 1001002 1 1 25374.09 536
|
||||
catalog 1001002 2 NULL 1291.83 29
|
||||
catalog 1001002 2 1 1291.83 29
|
||||
catalog 1001002 3 NULL 3984.23 68
|
||||
catalog 1001002 3 1 3984.23 68
|
||||
catalog 1001002 4 NULL 954.02 21
|
||||
catalog 1001002 4 1 954.02 21
|
||||
catalog 1001002 5 NULL 401.39 9
|
||||
catalog 1001002 5 1 401.39 9
|
||||
catalog 1001002 6 NULL 80.01 4
|
||||
catalog 1001002 6 1 80.01 4
|
||||
catalog 1001002 7 NULL 437.66 10
|
||||
catalog 1001002 7 1 437.66 10
|
||||
catalog 1001002 8 NULL 535.21 13
|
||||
catalog 1001002 8 1 535.21 13
|
||||
catalog 1001002 9 NULL 152.45 4
|
||||
catalog 1001002 9 1 152.45 4
|
||||
catalog 1001002 12 NULL 510.63 7
|
||||
catalog 1001002 12 1 510.63 7
|
||||
catalog 1001002 15 NULL 237.38 6
|
||||
catalog 1001002 15 1 237.38 6
|
||||
catalog 1001002 16 NULL 398.96 8
|
||||
catalog 1001002 16 1 398.96 8
|
||||
catalog 1002001 NULL NULL 19351.34 386
|
||||
catalog 1002001 1 NULL 3176.84 55
|
||||
catalog 1002001 1 1 491.44 14
|
||||
catalog 1002001 1 2 1240.31 21
|
||||
catalog 1002001 1 4 442.63 5
|
||||
catalog 1002001 1 5 156.72 4
|
||||
catalog 1002001 1 6 261.62 3
|
||||
catalog 1002001 1 9 298.23 4
|
||||
catalog 1002001 1 10 285.89 4
|
||||
catalog 1002001 2 NULL 11365.13 225
|
||||
catalog 1002001 2 1 2531.13 51
|
||||
catalog 1002001 2 2 1507.28 26
|
||||
catalog 1002001 2 3 840.83 17
|
||||
catalog 1002001 2 4 478.43 13
|
||||
catalog 1002001 2 5 593.76 10
|
||||
catalog 1002001 2 6 1392.26 20
|
||||
catalog 1002001 2 7 733.29 16
|
||||
catalog 1002001 2 8 1168.84 24
|
||||
catalog 1002001 2 9 1958.75 38
|
||||
catalog 1002001 2 10 160.56 10
|
||||
catalog 1002001 3 NULL 710.78 17
|
||||
catalog 1002001 3 2 191.80 6
|
||||
catalog 1002001 3 7 102.44 3
|
||||
catalog 1002001 3 8 416.54 8
|
||||
catalog 1002001 4 NULL 1822.20 37
|
||||
catalog 1002001 4 1 938.17 15
|
||||
catalog 1002001 4 3 283.47 7
|
||||
|
||||
query IIIIII
|
||||
SELECT * FROM final
|
||||
ORDER BY channel DESC NULLS FIRST,
|
||||
i_brand_id DESC NULLS FIRST,
|
||||
i_class_id DESC NULLS FIRST,
|
||||
i_category_id DESC NULLS FIRST
|
||||
LIMIT 100;
|
||||
----
|
||||
NULL NULL NULL NULL 7014662.98 160443
|
||||
web NULL NULL NULL 1183348.75 22789
|
||||
web 10016017 NULL NULL 82.76 4
|
||||
web 10016017 3 NULL 82.76 4
|
||||
web 10016017 3 10 82.76 4
|
||||
web 10016016 NULL NULL 436.02 9
|
||||
web 10016016 16 NULL 436.02 9
|
||||
web 10016016 16 10 233.59 5
|
||||
web 10016016 16 5 202.43 4
|
||||
web 10016015 NULL NULL 402.94 9
|
||||
web 10016015 16 NULL 402.94 9
|
||||
web 10016015 16 10 402.94 9
|
||||
web 10016014 NULL NULL 604.77 9
|
||||
web 10016014 16 NULL 604.77 9
|
||||
web 10016014 16 10 604.77 9
|
||||
web 10016013 NULL NULL 321.85 8
|
||||
web 10016013 16 NULL 260.05 5
|
||||
web 10016013 16 10 260.05 5
|
||||
web 10016013 2 NULL 61.80 3
|
||||
web 10016013 2 5 61.80 3
|
||||
web 10016012 NULL NULL 630.51 11
|
||||
web 10016012 16 NULL 48.19 1
|
||||
web 10016012 16 10 48.19 1
|
||||
web 10016012 13 NULL 349.34 3
|
||||
web 10016012 13 8 349.34 3
|
||||
web 10016012 7 NULL 88.91 4
|
||||
web 10016012 7 10 88.91 4
|
||||
web 10016012 3 NULL 144.07 3
|
||||
web 10016012 3 3 144.07 3
|
||||
web 10016010 NULL NULL 969.45 15
|
||||
web 10016010 16 NULL 704.47 11
|
||||
web 10016010 16 10 704.47 11
|
||||
web 10016010 2 NULL 264.98 4
|
||||
web 10016010 2 10 264.98 4
|
||||
web 10016009 NULL NULL 569.14 10
|
||||
web 10016009 16 NULL 438.95 7
|
||||
web 10016009 16 10 233.20 4
|
||||
web 10016009 16 8 205.75 3
|
||||
web 10016009 4 NULL 130.19 3
|
||||
web 10016009 4 2 130.19 3
|
||||
web 10016008 NULL NULL 328.82 5
|
||||
web 10016008 16 NULL 328.82 5
|
||||
web 10016008 16 10 328.82 5
|
||||
web 10016007 NULL NULL 320.74 9
|
||||
web 10016007 16 NULL 320.74 9
|
||||
web 10016007 16 10 58.42 4
|
||||
web 10016007 16 9 262.32 5
|
||||
web 10016006 NULL NULL 138.26 2
|
||||
web 10016006 16 NULL 138.26 2
|
||||
web 10016006 16 10 138.26 2
|
||||
web 10016005 NULL NULL 752.58 16
|
||||
web 10016005 16 NULL 628.49 14
|
||||
web 10016005 16 10 628.49 14
|
||||
web 10016005 11 NULL 124.09 2
|
||||
web 10016005 11 9 124.09 2
|
||||
web 10016004 NULL NULL 304.28 7
|
||||
web 10016004 1 NULL 304.28 7
|
||||
web 10016004 1 10 53.90 2
|
||||
web 10016004 1 5 250.38 5
|
||||
web 10016003 NULL NULL 798.02 12
|
||||
web 10016003 16 NULL 167.05 5
|
||||
web 10016003 16 10 167.05 5
|
||||
web 10016003 4 NULL 630.97 7
|
||||
web 10016003 4 10 630.97 7
|
||||
web 10016002 NULL NULL 603.23 16
|
||||
web 10016002 16 NULL 226.12 3
|
||||
web 10016002 16 4 226.12 3
|
||||
web 10016002 4 NULL 260.90 6
|
||||
web 10016002 4 1 260.90 6
|
||||
web 10016002 3 NULL 45.88 4
|
||||
web 10016002 3 10 45.88 4
|
||||
web 10016002 1 NULL 70.33 3
|
||||
web 10016002 1 10 70.33 3
|
||||
web 10016001 NULL NULL 127.24 3
|
||||
web 10016001 16 NULL 127.24 3
|
||||
web 10016001 16 10 127.24 3
|
||||
web 10015017 NULL NULL 344.84 7
|
||||
web 10015017 15 NULL 344.84 7
|
||||
web 10015017 15 10 344.84 7
|
||||
web 10015016 NULL NULL 190.34 6
|
||||
web 10015016 15 NULL 190.34 6
|
||||
web 10015016 15 10 190.34 6
|
||||
web 10015015 NULL NULL 793.09 12
|
||||
web 10015015 15 NULL 793.09 12
|
||||
web 10015015 15 10 601.99 10
|
||||
web 10015015 15 4 191.10 2
|
||||
web 10015013 NULL NULL 1461.08 22
|
||||
web 10015013 15 NULL 676.44 9
|
||||
web 10015013 15 10 544.04 6
|
||||
web 10015013 15 6 132.40 3
|
||||
web 10015013 3 NULL 125.90 2
|
||||
web 10015013 3 10 125.90 2
|
||||
web 10015013 2 NULL 441.80 4
|
||||
web 10015013 2 4 441.80 4
|
||||
web 10015013 1 NULL 216.94 7
|
||||
web 10015013 1 4 49.83 3
|
||||
web 10015013 1 1 167.11 4
|
||||
web 10015012 NULL NULL 148.71 5
|
||||
web 10015012 15 NULL 148.71 5
|
||||
web 10015012 15 1 148.71 5
|
||||
|
||||
query IIIIII
|
||||
SELECT * FROM final
|
||||
ORDER BY channel NULLS LAST,
|
||||
i_brand_id NULLS LAST,
|
||||
i_class_id NULLS LAST,
|
||||
i_category_id NULLS LAST
|
||||
LIMIT 100;
|
||||
----
|
||||
catalog 1001001 1 1 868.60 20
|
||||
catalog 1001001 1 2 1126.88 27
|
||||
catalog 1001001 1 3 68.52 3
|
||||
catalog 1001001 1 4 1210.00 23
|
||||
catalog 1001001 1 5 1093.30 25
|
||||
catalog 1001001 1 6 52.48 3
|
||||
catalog 1001001 1 7 452.95 9
|
||||
catalog 1001001 1 8 712.10 13
|
||||
catalog 1001001 1 9 1053.72 21
|
||||
catalog 1001001 1 10 898.48 23
|
||||
catalog 1001001 1 NULL 7537.03 167
|
||||
catalog 1001001 2 2 341.84 7
|
||||
catalog 1001001 2 3 1124.59 15
|
||||
catalog 1001001 2 5 75.89 3
|
||||
catalog 1001001 2 NULL 1542.32 25
|
||||
catalog 1001001 3 1 116.53 5
|
||||
catalog 1001001 3 2 456.59 14
|
||||
catalog 1001001 3 4 168.32 4
|
||||
catalog 1001001 3 5 63.20 1
|
||||
catalog 1001001 3 6 340.30 7
|
||||
catalog 1001001 3 7 559.79 7
|
||||
catalog 1001001 3 8 308.92 4
|
||||
catalog 1001001 3 9 159.70 3
|
||||
catalog 1001001 3 NULL 2173.35 45
|
||||
catalog 1001001 4 2 539.99 13
|
||||
catalog 1001001 4 3 233.42 8
|
||||
catalog 1001001 4 4 295.19 10
|
||||
catalog 1001001 4 NULL 1068.60 31
|
||||
catalog 1001001 5 9 553.45 12
|
||||
catalog 1001001 5 10 282.18 5
|
||||
catalog 1001001 5 NULL 835.63 17
|
||||
catalog 1001001 7 7 62.00 3
|
||||
catalog 1001001 7 NULL 62.00 3
|
||||
catalog 1001001 8 7 187.96 7
|
||||
catalog 1001001 8 10 302.34 6
|
||||
catalog 1001001 8 NULL 490.30 13
|
||||
catalog 1001001 9 6 283.80 5
|
||||
catalog 1001001 9 NULL 283.80 5
|
||||
catalog 1001001 11 9 660.94 12
|
||||
catalog 1001001 11 NULL 660.94 12
|
||||
catalog 1001001 12 10 287.67 9
|
||||
catalog 1001001 12 NULL 287.67 9
|
||||
catalog 1001001 15 9 319.21 7
|
||||
catalog 1001001 15 10 378.76 13
|
||||
catalog 1001001 15 NULL 697.97 20
|
||||
catalog 1001001 NULL NULL 15639.61 347
|
||||
catalog 1001002 1 1 25374.09 536
|
||||
catalog 1001002 1 NULL 25374.09 536
|
||||
catalog 1001002 2 1 1291.83 29
|
||||
catalog 1001002 2 NULL 1291.83 29
|
||||
catalog 1001002 3 1 3984.23 68
|
||||
catalog 1001002 3 NULL 3984.23 68
|
||||
catalog 1001002 4 1 954.02 21
|
||||
catalog 1001002 4 NULL 954.02 21
|
||||
catalog 1001002 5 1 401.39 9
|
||||
catalog 1001002 5 NULL 401.39 9
|
||||
catalog 1001002 6 1 80.01 4
|
||||
catalog 1001002 6 NULL 80.01 4
|
||||
catalog 1001002 7 1 437.66 10
|
||||
catalog 1001002 7 NULL 437.66 10
|
||||
catalog 1001002 8 1 535.21 13
|
||||
catalog 1001002 8 NULL 535.21 13
|
||||
catalog 1001002 9 1 152.45 4
|
||||
catalog 1001002 9 NULL 152.45 4
|
||||
catalog 1001002 12 1 510.63 7
|
||||
catalog 1001002 12 NULL 510.63 7
|
||||
catalog 1001002 15 1 237.38 6
|
||||
catalog 1001002 15 NULL 237.38 6
|
||||
catalog 1001002 16 1 398.96 8
|
||||
catalog 1001002 16 NULL 398.96 8
|
||||
catalog 1001002 NULL NULL 34357.86 715
|
||||
catalog 1002001 1 1 491.44 14
|
||||
catalog 1002001 1 2 1240.31 21
|
||||
catalog 1002001 1 4 442.63 5
|
||||
catalog 1002001 1 5 156.72 4
|
||||
catalog 1002001 1 6 261.62 3
|
||||
catalog 1002001 1 9 298.23 4
|
||||
catalog 1002001 1 10 285.89 4
|
||||
catalog 1002001 1 NULL 3176.84 55
|
||||
catalog 1002001 2 1 2531.13 51
|
||||
catalog 1002001 2 2 1507.28 26
|
||||
catalog 1002001 2 3 840.83 17
|
||||
catalog 1002001 2 4 478.43 13
|
||||
catalog 1002001 2 5 593.76 10
|
||||
catalog 1002001 2 6 1392.26 20
|
||||
catalog 1002001 2 7 733.29 16
|
||||
catalog 1002001 2 8 1168.84 24
|
||||
catalog 1002001 2 9 1958.75 38
|
||||
catalog 1002001 2 10 160.56 10
|
||||
catalog 1002001 2 NULL 11365.13 225
|
||||
catalog 1002001 3 2 191.80 6
|
||||
catalog 1002001 3 7 102.44 3
|
||||
catalog 1002001 3 8 416.54 8
|
||||
catalog 1002001 3 NULL 710.78 17
|
||||
catalog 1002001 4 1 938.17 15
|
||||
catalog 1002001 4 3 283.47 7
|
||||
catalog 1002001 4 4 208.51 6
|
||||
catalog 1002001 4 5 267.36 4
|
||||
catalog 1002001 4 7 50.87 2
|
||||
catalog 1002001 4 9 73.82 3
|
||||
|
||||
query IIIIII
|
||||
SELECT * FROM final
|
||||
ORDER BY channel DESC NULLS LAST,
|
||||
i_brand_id DESC NULLS LAST,
|
||||
i_class_id DESC NULLS LAST,
|
||||
i_category_id DESC NULLS LAST
|
||||
LIMIT 100;
|
||||
----
|
||||
web 10016017 3 10 82.76 4
|
||||
web 10016017 3 NULL 82.76 4
|
||||
web 10016017 NULL NULL 82.76 4
|
||||
web 10016016 16 10 233.59 5
|
||||
web 10016016 16 5 202.43 4
|
||||
web 10016016 16 NULL 436.02 9
|
||||
web 10016016 NULL NULL 436.02 9
|
||||
web 10016015 16 10 402.94 9
|
||||
web 10016015 16 NULL 402.94 9
|
||||
web 10016015 NULL NULL 402.94 9
|
||||
web 10016014 16 10 604.77 9
|
||||
web 10016014 16 NULL 604.77 9
|
||||
web 10016014 NULL NULL 604.77 9
|
||||
web 10016013 16 10 260.05 5
|
||||
web 10016013 16 NULL 260.05 5
|
||||
web 10016013 2 5 61.80 3
|
||||
web 10016013 2 NULL 61.80 3
|
||||
web 10016013 NULL NULL 321.85 8
|
||||
web 10016012 16 10 48.19 1
|
||||
web 10016012 16 NULL 48.19 1
|
||||
web 10016012 13 8 349.34 3
|
||||
web 10016012 13 NULL 349.34 3
|
||||
web 10016012 7 10 88.91 4
|
||||
web 10016012 7 NULL 88.91 4
|
||||
web 10016012 3 3 144.07 3
|
||||
web 10016012 3 NULL 144.07 3
|
||||
web 10016012 NULL NULL 630.51 11
|
||||
web 10016010 16 10 704.47 11
|
||||
web 10016010 16 NULL 704.47 11
|
||||
web 10016010 2 10 264.98 4
|
||||
web 10016010 2 NULL 264.98 4
|
||||
web 10016010 NULL NULL 969.45 15
|
||||
web 10016009 16 10 233.20 4
|
||||
web 10016009 16 8 205.75 3
|
||||
web 10016009 16 NULL 438.95 7
|
||||
web 10016009 4 2 130.19 3
|
||||
web 10016009 4 NULL 130.19 3
|
||||
web 10016009 NULL NULL 569.14 10
|
||||
web 10016008 16 10 328.82 5
|
||||
web 10016008 16 NULL 328.82 5
|
||||
web 10016008 NULL NULL 328.82 5
|
||||
web 10016007 16 10 58.42 4
|
||||
web 10016007 16 9 262.32 5
|
||||
web 10016007 16 NULL 320.74 9
|
||||
web 10016007 NULL NULL 320.74 9
|
||||
web 10016006 16 10 138.26 2
|
||||
web 10016006 16 NULL 138.26 2
|
||||
web 10016006 NULL NULL 138.26 2
|
||||
web 10016005 16 10 628.49 14
|
||||
web 10016005 16 NULL 628.49 14
|
||||
web 10016005 11 9 124.09 2
|
||||
web 10016005 11 NULL 124.09 2
|
||||
web 10016005 NULL NULL 752.58 16
|
||||
web 10016004 1 10 53.90 2
|
||||
web 10016004 1 5 250.38 5
|
||||
web 10016004 1 NULL 304.28 7
|
||||
web 10016004 NULL NULL 304.28 7
|
||||
web 10016003 16 10 167.05 5
|
||||
web 10016003 16 NULL 167.05 5
|
||||
web 10016003 4 10 630.97 7
|
||||
web 10016003 4 NULL 630.97 7
|
||||
web 10016003 NULL NULL 798.02 12
|
||||
web 10016002 16 4 226.12 3
|
||||
web 10016002 16 NULL 226.12 3
|
||||
web 10016002 4 1 260.90 6
|
||||
web 10016002 4 NULL 260.90 6
|
||||
web 10016002 3 10 45.88 4
|
||||
web 10016002 3 NULL 45.88 4
|
||||
web 10016002 1 10 70.33 3
|
||||
web 10016002 1 NULL 70.33 3
|
||||
web 10016002 NULL NULL 603.23 16
|
||||
web 10016001 16 10 127.24 3
|
||||
web 10016001 16 NULL 127.24 3
|
||||
web 10016001 NULL NULL 127.24 3
|
||||
web 10015017 15 10 344.84 7
|
||||
web 10015017 15 NULL 344.84 7
|
||||
web 10015017 NULL NULL 344.84 7
|
||||
web 10015016 15 10 190.34 6
|
||||
web 10015016 15 NULL 190.34 6
|
||||
web 10015016 NULL NULL 190.34 6
|
||||
web 10015015 15 10 601.99 10
|
||||
web 10015015 15 4 191.10 2
|
||||
web 10015015 15 NULL 793.09 12
|
||||
web 10015015 NULL NULL 793.09 12
|
||||
web 10015013 15 10 544.04 6
|
||||
web 10015013 15 6 132.40 3
|
||||
web 10015013 15 NULL 676.44 9
|
||||
web 10015013 3 10 125.90 2
|
||||
web 10015013 3 NULL 125.90 2
|
||||
web 10015013 2 4 441.80 4
|
||||
web 10015013 2 NULL 441.80 4
|
||||
web 10015013 1 4 49.83 3
|
||||
web 10015013 1 1 167.11 4
|
||||
web 10015013 1 NULL 216.94 7
|
||||
web 10015013 NULL NULL 1461.08 22
|
||||
web 10015012 15 1 148.71 5
|
||||
web 10015012 15 NULL 148.71 5
|
||||
web 10015012 NULL NULL 148.71 5
|
||||
web 10015011 15 10 104.46 5
|
||||
web 10015011 15 NULL 104.46 5
|
||||
121
external/duckdb/test/sql/topn/tpcds_q59_topn.test
vendored
Normal file
121
external/duckdb/test/sql/topn/tpcds_q59_topn.test
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
# name: test/sql/topn/tpcds_q59_topn.test
|
||||
# description: Test Top N on TPC-DS SF1
|
||||
# group: [topn]
|
||||
|
||||
# statement ok
|
||||
# PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
CREATE TABLE final(s_store_name1 VARCHAR, s_store_id1 VARCHAR, d_week_seq1 INTEGER, "sun_sales1 / sun_sales2" DOUBLE, "mon_sales1 / mon_sales2" DOUBLE, "tue_sales1 / tue_sales2" DOUBLE, "wed_sales1 / wed_sales2" DOUBLE, "thu_sales1 / thu_sales2" DOUBLE, "fri_sales1 / fri_sales2" DOUBLE, "sat_sales1 / sat_sales2" DOUBLE);
|
||||
|
||||
statement ok
|
||||
COPY final FROM 'data/csv/tpcds_59.csv' (FORMAT CSV, DELIMITER '|', HEADER);
|
||||
|
||||
query IIIIIIIIII
|
||||
SELECT *
|
||||
FROM final
|
||||
ORDER BY s_store_name1 NULLS FIRST,
|
||||
s_store_id1 NULLS FIRST,
|
||||
d_week_seq1 NULLS FIRST
|
||||
LIMIT 100;
|
||||
----
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5271 1.569772 2.083386 0.324033 0.444362 1.023992 0.765392 1.947611
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5272 1.057594 0.806263 0.791214 0.624252 1.261028 1.248838 1.168022
|
||||
able AAAAAAAACAAAAAAA 5273 1.105312 1.048109 0.426352 0.742212 0.780149 1.385064 0.701742
|
||||
able AAAAAAAACAAAAAAA 5273 1.105312 1.048109 0.426352 0.742212 0.780149 1.385064 0.701742
|
||||
84
external/duckdb/test/sql/topn/tpch_top_n.test_slow
vendored
Normal file
84
external/duckdb/test/sql/topn/tpch_top_n.test_slow
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
# name: test/sql/topn/tpch_top_n.test_slow
|
||||
# description: Test Top N NULLS FIRST/LAST with few rows
|
||||
# group: [topn]
|
||||
|
||||
require tpch
|
||||
|
||||
statement ok
|
||||
CALL dbgen(sf=1);
|
||||
|
||||
query IIIIIIIIIIIIIIII
|
||||
select * from lineitem order by l_extendedprice desc, l_shipdate limit 2;
|
||||
----
|
||||
2513090 199999 5038 4 50.00 104949.50 0.02 0.04 A F 1993-10-05 1993-10-17 1993-10-28 TAKE BACK RETURN FOB - ironic, pending pinto be
|
||||
82823 199998 5037 2 50.00 104899.50 0.04 0.05 A F 1992-04-30 1992-07-05 1992-05-29 COLLECT COD SHIP orbits. bold fox
|
||||
|
||||
query I
|
||||
select l_quantity
|
||||
from lineitem
|
||||
where l_linestatus = 'O'
|
||||
order by l_quantity limit 10 offset 100;
|
||||
----
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
1.00
|
||||
|
||||
query I
|
||||
select l_quantity
|
||||
from lineitem
|
||||
where l_linestatus = 'O'
|
||||
order by l_quantity limit 10 offset 1000000;
|
||||
----
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
17.00
|
||||
|
||||
query I
|
||||
select sum(l_quantity)
|
||||
from lineitem
|
||||
group by l_orderkey
|
||||
order by sum(l_quantity) desc
|
||||
limit 10 offset 100;
|
||||
----
|
||||
297.00
|
||||
296.00
|
||||
296.00
|
||||
296.00
|
||||
296.00
|
||||
296.00
|
||||
296.00
|
||||
296.00
|
||||
295.00
|
||||
295.00
|
||||
|
||||
query I
|
||||
select sum(l_quantity)
|
||||
from lineitem
|
||||
group by l_orderkey
|
||||
order by sum(l_quantity) desc
|
||||
limit 10 offset 100000;
|
||||
----
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
195.00
|
||||
Reference in New Issue
Block a user