1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
# name: test/sql/order/test_limit_parameter.test
# description: Test LIMIT with a parameter (issue 1866)
# group: [order]
statement ok
PRAGMA enable_verification
statement error
SELECT 'Test' LIMIT ?
----
<REGEX>:Invalid Input Error.*Expected 1 parameters, but none were supplied.*
statement ok
PREPARE v1 AS SELECT 'Test' LIMIT ?
query I
EXECUTE v1(1)
----
Test
query I
EXECUTE v1(0)
----
statement ok
PREPARE v2 AS SELECT * FROM RANGE(1000000000) LIMIT ? OFFSET ?
query I
EXECUTE v2(3, 0)
----
0
1
2
query I
EXECUTE v2(3, 17)
----
17
18
19
statement ok
PREPARE v3 AS SELECT * FROM RANGE(1000000000) LIMIT 2 OFFSET ?
query I
EXECUTE v3(0)
----
0
1
query I
EXECUTE v3(17)
----
17
18
statement ok
PREPARE v4 AS SELECT * FROM RANGE(1000000000) LIMIT ? OFFSET 17
query I
EXECUTE v4(3)
----
17
18
19
query I
EXECUTE v4(6)
----
17
18
19
20
21
22
statement ok
PREPARE v5 AS SELECT * FROM RANGE(1000000000) LIMIT (SELECT ?::INT) OFFSET (SELECT ?::INT)
query I
EXECUTE v5(3, 0)
----
0
1
2
query I
EXECUTE v5(3, 17)
----
17
18
19
statement ok
PREPARE v6 AS SELECT * FROM RANGE(1000000000) LIMIT 3+? OFFSET ?+2*?
query I
EXECUTE v6(1, 0, 0)
----
0
1
2
3
query I
EXECUTE v6(3, 1, 2)
----
5
6
7
8
9
10
statement ok
PREPARE v7 AS SELECT * FROM GENERATE_SERIES(0,4,1) LIMIT ? OFFSET ?
query I
EXECUTE v7(NULL, 2)
----
2
3
4
query I
EXECUTE v7(2, NULL)
----
0
1
query I
EXECUTE v7(NULL, 9223372036854775807)
----
query I
EXECUTE v7(9223372036854775807, NULL)
----
0
1
2
3
4
statement error
EXECUTE v7(NULL, 922337203685477580700)
----
<REGEX>:Conversion Error.*INT128.*is out of range for.*INT64.*
query I
EXECUTE v7(NULL, 4611686018427387904)
----
query I
EXECUTE v7(4611686018427387904, NULL)
----
0
1
2
3
4
|