Skip to content

Commit d5337ec

Browse files
committed
Add sqllogictest test files
1 parent ffc3e84 commit d5337ec

File tree

621 files changed

+44860664
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

621 files changed

+44860664
-0
lines changed
Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,313 @@
1+
2+
# EVIDENCE-OF: R-52275-55503 When the right operand is an empty set, the
3+
# result of IN is false and the result of NOT IN is true, regardless of
4+
# the left operand and even if the left operand is NULL.
5+
#
6+
7+
# EVIDENCE-OF: R-13595-45863 Note that SQLite allows the parenthesized
8+
# list of scalar values on the right-hand side of an IN or NOT IN
9+
# operator to be an empty list but most other SQL database database
10+
# engines and the SQL92 standard require the list to contain at least
11+
# one element.
12+
#
13+
14+
# EVIDENCE-OF: R-50221-42915 The result of an IN or NOT IN operator is
15+
# determined by the following matrix: Left operand is NULL Right operand
16+
# contains NULL Right operand is an empty set Left operand found within
17+
# right operand Result of IN operator Result of NOT IN operator no no no
18+
# no false true does not matter no yes no false true no does not matter
19+
# no yes true false no yes no no NULL NULL yes does not matter no does
20+
# not matter NULL NULL
21+
#
22+
23+
skipif oracle
24+
statement ok
25+
CREATE TABLE t1( x INTEGER, y TEXT )
26+
27+
onlyif oracle
28+
statement ok
29+
CREATE TABLE t1( x INTEGER, y VARCHAR(8) )
30+
31+
statement ok
32+
INSERT INTO t1 VALUES(1,'true')
33+
34+
statement ok
35+
INSERT INTO t1 VALUES(0,'false')
36+
37+
statement ok
38+
INSERT INTO t1 VALUES(NULL,'NULL')
39+
40+
# Row 1:
41+
42+
query I nosort
43+
SELECT 1 FROM t1 WHERE 1 IN (2)
44+
----
45+
46+
query I nosort
47+
SELECT 1 FROM t1 WHERE 1.0 IN (2.0)
48+
----
49+
50+
query I nosort
51+
SELECT 1 FROM t1 WHERE '1' IN ('2')
52+
----
53+
54+
query I nosort
55+
SELECT 1 FROM t1 WHERE 1 NOT IN (2)
56+
----
57+
1
58+
1
59+
1
60+
61+
query I nosort
62+
SELECT 1 FROM t1 WHERE 1.0 NOT IN (2.0)
63+
----
64+
1
65+
1
66+
1
67+
68+
query I nosort
69+
SELECT 1 FROM t1 WHERE '1' NOT IN ('2')
70+
----
71+
1
72+
1
73+
1
74+
75+
#
76+
# Row 2: empty RHS
77+
78+
skipif mysql # empty RHS
79+
skipif mssql # empty RHS
80+
skipif oracle # empty RHS
81+
query I nosort
82+
SELECT 1 FROM t1 WHERE 1 IN ()
83+
----
84+
85+
skipif mysql # empty RHS
86+
skipif mssql # empty RHS
87+
skipif oracle # empty RHS
88+
query I nosort
89+
SELECT 1 FROM t1 WHERE 1.0 IN ()
90+
----
91+
92+
skipif mysql # empty RHS
93+
skipif mssql # empty RHS
94+
skipif oracle # empty RHS
95+
query I nosort
96+
SELECT 1 FROM t1 WHERE '1' IN ()
97+
----
98+
99+
skipif mysql # empty RHS
100+
skipif mssql # empty RHS
101+
skipif oracle # empty RHS
102+
query I nosort
103+
SELECT 1 FROM t1 WHERE NULL IN ()
104+
----
105+
106+
skipif mysql # empty RHS
107+
skipif mssql # empty RHS
108+
skipif oracle # empty RHS
109+
query I nosort
110+
SELECT 1 FROM t1 WHERE 1 NOT IN ()
111+
----
112+
1
113+
1
114+
1
115+
116+
skipif mysql # empty RHS
117+
skipif mssql # empty RHS
118+
skipif oracle # empty RHS
119+
query I nosort
120+
SELECT 1 FROM t1 WHERE 1.0 NOT IN ()
121+
----
122+
1
123+
1
124+
1
125+
126+
skipif mysql # empty RHS
127+
skipif mssql # empty RHS
128+
skipif oracle # empty RHS
129+
query I nosort
130+
SELECT 1 FROM t1 WHERE '1' NOT IN ()
131+
----
132+
1
133+
1
134+
1
135+
136+
skipif mysql # empty RHS
137+
skipif mssql # empty RHS
138+
skipif oracle # empty RHS
139+
query I nosort
140+
SELECT 1 FROM t1 WHERE NULL NOT IN ()
141+
----
142+
1
143+
1
144+
1
145+
146+
# Row 3:
147+
148+
query I nosort
149+
SELECT 1 FROM t1 WHERE 1 IN ( NULL, 1 )
150+
----
151+
1
152+
1
153+
1
154+
155+
query I nosort
156+
SELECT 1 FROM t1 WHERE 1.0 IN ( NULL, 1.0 )
157+
----
158+
1
159+
1
160+
1
161+
162+
query I nosort
163+
SELECT 1 FROM t1 WHERE '1' IN ( NULL, '1' )
164+
----
165+
1
166+
1
167+
1
168+
169+
query I nosort
170+
SELECT 1 FROM t1 WHERE 1 NOT IN ( NULL, 1 )
171+
----
172+
173+
query I nosort
174+
SELECT 1 FROM t1 WHERE 1.0 NOT IN ( NULL, 1.0 )
175+
----
176+
177+
query I nosort
178+
SELECT 1 FROM t1 WHERE '1' NOT IN ( NULL, '1' )
179+
----
180+
181+
query I nosort
182+
SELECT 1 FROM t1 WHERE 1 IN ( 1 )
183+
----
184+
1
185+
1
186+
1
187+
188+
query I nosort
189+
SELECT 1 FROM t1 WHERE 1.0 IN ( 1.0 )
190+
----
191+
1
192+
1
193+
1
194+
195+
query I nosort
196+
SELECT 1 FROM t1 WHERE '1' IN ( '1' )
197+
----
198+
1
199+
1
200+
1
201+
202+
query I nosort
203+
SELECT 1 FROM t1 WHERE 1 NOT IN ( 1 )
204+
----
205+
206+
query I nosort
207+
SELECT 1 FROM t1 WHERE 1.0 NOT IN ( 1.0 )
208+
----
209+
210+
query I nosort
211+
SELECT 1 FROM t1 WHERE '1' NOT IN ( '1' )
212+
----
213+
214+
#
215+
# Row 4: RHS contains NULL, LHS not in RHS
216+
217+
query I nosort
218+
SELECT 1 FROM t1 WHERE 1 IN ( NULL, 2 )
219+
----
220+
221+
query I nosort
222+
SELECT 1 FROM t1 WHERE 1.0 IN ( NULL, 2.0 )
223+
----
224+
225+
query I nosort
226+
SELECT 1 FROM t1 WHERE '1' IN ( NULL, '2' )
227+
----
228+
229+
query I nosort
230+
SELECT 1 FROM t1 WHERE 1 NOT IN ( NULL, 2 )
231+
----
232+
233+
query I nosort
234+
SELECT 1 FROM t1 WHERE 1.0 NOT IN ( NULL, 2.0 )
235+
----
236+
237+
query I nosort
238+
SELECT 1 FROM t1 WHERE '1' NOT IN ( NULL, '2' )
239+
----
240+
241+
#
242+
# Row 5: LHS is NULL
243+
244+
query I nosort
245+
SELECT 1 FROM t1 WHERE NULL IN ( 1 )
246+
----
247+
248+
query I nosort
249+
SELECT 1 FROM t1 WHERE NULL IN ( 1.0 )
250+
----
251+
252+
query I nosort
253+
SELECT 1 FROM t1 WHERE NULL IN ( '1' )
254+
----
255+
256+
query I nosort
257+
SELECT 1 FROM t1 WHERE NULL NOT IN ( 1 )
258+
----
259+
260+
query I nosort
261+
SELECT 1 FROM t1 WHERE NULL NOT IN ( 1.0 )
262+
----
263+
264+
query I nosort
265+
SELECT 1 FROM t1 WHERE NULL NOT IN ( '1' )
266+
----
267+
268+
query I nosort
269+
SELECT 1 FROM t1 WHERE NULL IN ( NULL, 1 )
270+
----
271+
272+
query I nosort
273+
SELECT 1 FROM t1 WHERE NULL IN ( NULL, 1.0 )
274+
----
275+
276+
query I nosort
277+
SELECT 1 FROM t1 WHERE NULL IN ( NULL, '1' )
278+
----
279+
280+
query I nosort
281+
SELECT 1 FROM t1 WHERE NULL NOT IN ( NULL, 1 )
282+
----
283+
284+
query I nosort
285+
SELECT 1 FROM t1 WHERE NULL NOT IN ( NULL, 1.0 )
286+
----
287+
288+
query I nosort
289+
SELECT 1 FROM t1 WHERE NULL NOT IN ( NULL, '1' )
290+
----
291+
292+
# EVIDENCE-OF: R-35033-20570 The subquery on the right of an IN or NOT
293+
# IN operator must be a scalar subquery if the left expression is not a
294+
# row value expression.
295+
296+
query I nosort
297+
SELECT 1 FROM t1 WHERE 1 IN (SELECT 1)
298+
----
299+
1
300+
1
301+
1
302+
303+
statement error
304+
SELECT 1 FROM t1 WHERE 1 IN (SELECT 1,2)
305+
306+
statement error
307+
SELECT 1 FROM t1 WHERE 1 IN (SELECT x,y FROM t1)
308+
309+
statement error
310+
SELECT 1 FROM t1 WHERE 1 IN (SELECT * FROM t1)
311+
312+
statement error
313+
SELECT 1 FROM t1 WHERE 1 IN (SELECT min(x),max(x) FROM t1)

0 commit comments

Comments
 (0)