should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View 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;
----

View 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]

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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.*

View 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

View 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

View 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