xref: /sqlite-3.40.0/test/tkt-9a8b09f8e6.test (revision 5d249518)
1# 2014 June 26
2#
3# The author disclaims copyright to this source code.  In place of
4# a legal notice, here is a blessing:
5#
6#    May you do good and not evil.
7#    May you find forgiveness for yourself and forgive others.
8#    May you share freely, never taking more than you give.
9#
10#***********************************************************************
11# This file implements regression tests for SQLite library.
12#
13# This file implements tests to verify that ticket [9a8b09f8e6] has been
14# fixed.
15#
16
17set testdir [file dirname $argv0]
18source $testdir/tester.tcl
19set testprefix tkt-9a8b09f8e6
20
21do_test 1.1 {
22  execsql {
23    CREATE TABLE t1(x TEXT);
24    INSERT INTO t1 VALUES('1');
25  }
26} {}
27
28do_test 1.2 {
29  execsql {
30    CREATE TABLE t2(x INTEGER);
31    INSERT INTO t2 VALUES(1);
32  }
33} {}
34
35do_test 1.3 {
36  execsql {
37    CREATE TABLE t3(x REAL);
38    INSERT INTO t3 VALUES(1.0);
39  }
40} {}
41
42do_test 1.4 {
43  execsql {
44    CREATE TABLE t4(x REAL);
45    INSERT INTO t4 VALUES(1.11);
46  }
47} {}
48
49do_test 1.5 {
50  execsql {
51    CREATE TABLE t5(x, y);
52    INSERT INTO t5 VALUES('1', 'one');
53    INSERT INTO t5 VALUES(1, 'two');
54    INSERT INTO t5 VALUES('1.0', 'three');
55    INSERT INTO t5 VALUES(1.0, 'four');
56  }
57} {}
58
59do_test 2.1 {
60  execsql {
61    SELECT x FROM t1 WHERE x IN (1);
62  }
63} {1}
64
65do_test 2.2 {
66  execsql {
67    SELECT x FROM t1 WHERE x IN (1.0);
68  }
69} {}
70
71do_test 2.3 {
72  execsql {
73    SELECT x FROM t1 WHERE x IN ('1');
74  }
75} {1}
76
77do_test 2.4 {
78  execsql {
79    SELECT x FROM t1 WHERE x IN ('1.0');
80  }
81} {}
82
83do_test 2.5 {
84  execsql {
85    SELECT x FROM t1 WHERE 1 IN (x);
86  }
87} {}
88
89do_test 2.6 {
90  execsql {
91    SELECT x FROM t1 WHERE 1.0 IN (x);
92  }
93} {}
94
95do_test 2.7 {
96  execsql {
97    SELECT x FROM t1 WHERE '1' IN (x);
98  }
99} {1}
100
101do_test 2.8 {
102  execsql {
103    SELECT x FROM t1 WHERE '1.0' IN (x);
104  }
105} {}
106
107do_test 3.1 {
108  execsql {
109    SELECT x FROM t2 WHERE x IN (1);
110  }
111} {1}
112
113do_test 3.2 {
114  execsql {
115    SELECT x FROM t2 WHERE x IN (1.0);
116  }
117} {1}
118
119do_test 3.3 {
120  execsql {
121    SELECT x FROM t2 WHERE x IN ('1');
122  }
123} {1}
124
125do_test 3.4 {
126  execsql {
127    SELECT x FROM t2 WHERE x IN ('1.0');
128  }
129} {1}
130
131do_test 3.5 {
132  execsql {
133    SELECT x FROM t2 WHERE 1 IN (x);
134  }
135} {1}
136
137do_test 3.6 {
138  execsql {
139    SELECT x FROM t2 WHERE 1.0 IN (x);
140  }
141} {1}
142
143do_test 3.7 {
144  execsql {
145    SELECT x FROM t2 WHERE '1' IN (x);
146  }
147} {}
148
149do_test 3.8 {
150  execsql {
151    SELECT x FROM t2 WHERE '1.0' IN (x);
152  }
153} {}
154
155do_test 4.1 {
156  execsql {
157    SELECT x FROM t3 WHERE x IN (1);
158  }
159} {1.0}
160
161do_test 4.2 {
162  execsql {
163    SELECT x FROM t3 WHERE x IN (1.0);
164  }
165} {1.0}
166
167do_test 4.3 {
168  execsql {
169    SELECT x FROM t3 WHERE x IN ('1');
170  }
171} {1.0}
172
173do_test 4.4 {
174  execsql {
175    SELECT x FROM t3 WHERE x IN ('1.0');
176  }
177} {1.0}
178
179do_test 4.5 {
180  execsql {
181    SELECT x FROM t3 WHERE 1 IN (x);
182  }
183} {1.0}
184
185do_test 4.6 {
186  execsql {
187    SELECT x FROM t3 WHERE 1.0 IN (x);
188  }
189} {1.0}
190
191do_test 4.7 {
192  execsql {
193    SELECT x FROM t3 WHERE '1' IN (x);
194  }
195} {}
196
197do_test 4.8 {
198  execsql {
199    SELECT x FROM t3 WHERE '1.0' IN (x);
200  }
201} {}
202
203do_test 5.1 {
204  execsql {
205    SELECT x FROM t4 WHERE x IN (1);
206  }
207} {}
208
209do_test 5.2 {
210  execsql {
211    SELECT x FROM t4 WHERE x IN (1.0);
212  }
213} {}
214
215do_test 5.3 {
216  execsql {
217    SELECT x FROM t4 WHERE x IN ('1');
218  }
219} {}
220
221do_test 5.4 {
222  execsql {
223    SELECT x FROM t4 WHERE x IN ('1.0');
224  }
225} {}
226
227do_test 5.5 {
228  execsql {
229    SELECT x FROM t4 WHERE x IN (1.11);
230  }
231} {1.11}
232
233do_test 5.6 {
234  execsql {
235    SELECT x FROM t4 WHERE x IN ('1.11');
236  }
237} {1.11}
238
239do_test 5.7 {
240  execsql {
241    SELECT x FROM t4 WHERE 1 IN (x);
242  }
243} {}
244
245do_test 5.8 {
246  execsql {
247    SELECT x FROM t4 WHERE 1.0 IN (x);
248  }
249} {}
250
251do_test 5.9 {
252  execsql {
253    SELECT x FROM t4 WHERE '1' IN (x);
254  }
255} {}
256
257do_test 5.10 {
258  execsql {
259    SELECT x FROM t4 WHERE '1.0' IN (x);
260  }
261} {}
262
263do_test 5.11 {
264  execsql {
265    SELECT x FROM t4 WHERE 1.11 IN (x);
266  }
267} {1.11}
268
269do_test 5.12 {
270  execsql {
271    SELECT x FROM t4 WHERE '1.11' IN (x);
272  }
273} {}
274
275do_test 6.1 {
276  execsql {
277    SELECT x, y FROM t5 WHERE x IN (1);
278  }
279} {1 two 1.0 four}
280
281do_test 6.2 {
282  execsql {
283    SELECT x, y FROM t5 WHERE x IN (1.0);
284  }
285} {1 two 1.0 four}
286
287do_test 6.3 {
288  execsql {
289    SELECT x, y FROM t5 WHERE x IN ('1');
290  }
291} {1 one}
292
293do_test 6.4 {
294  execsql {
295    SELECT x, y FROM t5 WHERE x IN ('1.0');
296  }
297} {1.0 three}
298
299do_test 6.5 {
300  execsql {
301    SELECT x, y FROM t5 WHERE 1 IN (x);
302  }
303} {1 two 1.0 four}
304
305do_test 6.6 {
306  execsql {
307    SELECT x, y FROM t5 WHERE 1.0 IN (x);
308  }
309} {1 two 1.0 four}
310
311do_test 6.7 {
312  execsql {
313    SELECT x, y FROM t5 WHERE '1' IN (x);
314  }
315} {1 one}
316
317do_test 6.8 {
318  execsql {
319    SELECT x, y FROM t5 WHERE '1.0' IN (x);
320  }
321} {1.0 three}
322
323finish_test
324