324 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			324 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # 2014 June 26
 | |
| #
 | |
| # The author disclaims copyright to this source code.  In place of
 | |
| # a legal notice, here is a blessing:
 | |
| #
 | |
| #    May you do good and not evil.
 | |
| #    May you find forgiveness for yourself and forgive others.
 | |
| #    May you share freely, never taking more than you give.
 | |
| #
 | |
| #***********************************************************************
 | |
| # This file implements regression tests for SQLite library.
 | |
| #
 | |
| # This file implements tests to verify that ticket [9a8b09f8e6] has been
 | |
| # fixed.
 | |
| #
 | |
| 
 | |
| set testdir [file dirname $argv0]
 | |
| source $testdir/tester.tcl
 | |
| set testprefix tkt-9a8b09f8e6
 | |
| 
 | |
| do_test 1.1 {
 | |
|   execsql {
 | |
|     CREATE TABLE t1(x TEXT);
 | |
|     INSERT INTO t1 VALUES('1');
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 1.2 {
 | |
|   execsql {
 | |
|     CREATE TABLE t2(x INTEGER);
 | |
|     INSERT INTO t2 VALUES(1);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 1.3 {
 | |
|   execsql {
 | |
|     CREATE TABLE t3(x REAL);
 | |
|     INSERT INTO t3 VALUES(1.0);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 1.4 {
 | |
|   execsql {
 | |
|     CREATE TABLE t4(x REAL);
 | |
|     INSERT INTO t4 VALUES(1.11);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 1.5 {
 | |
|   execsql {
 | |
|     CREATE TABLE t5(x, y);
 | |
|     INSERT INTO t5 VALUES('1', 'one');
 | |
|     INSERT INTO t5 VALUES(1, 'two');
 | |
|     INSERT INTO t5 VALUES('1.0', 'three');
 | |
|     INSERT INTO t5 VALUES(1.0, 'four');
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 2.1 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE x IN (1);
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 2.2 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE x IN (1.0);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 2.3 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE x IN ('1');
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 2.4 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE x IN ('1.0');
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 2.5 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE 1 IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 2.6 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE 1.0 IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 2.7 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE '1' IN (x);
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 2.8 {
 | |
|   execsql {
 | |
|     SELECT x FROM t1 WHERE '1.0' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 3.1 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE x IN (1);
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 3.2 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE x IN (1.0);
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 3.3 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE x IN ('1');
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 3.4 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE x IN ('1.0');
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 3.5 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE 1 IN (x);
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 3.6 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE 1.0 IN (x);
 | |
|   }
 | |
| } {1}
 | |
| 
 | |
| do_test 3.7 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE '1' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 3.8 {
 | |
|   execsql {
 | |
|     SELECT x FROM t2 WHERE '1.0' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 4.1 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE x IN (1);
 | |
|   }
 | |
| } {1.0}
 | |
| 
 | |
| do_test 4.2 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE x IN (1.0);
 | |
|   }
 | |
| } {1.0}
 | |
| 
 | |
| do_test 4.3 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE x IN ('1');
 | |
|   }
 | |
| } {1.0}
 | |
| 
 | |
| do_test 4.4 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE x IN ('1.0');
 | |
|   }
 | |
| } {1.0}
 | |
| 
 | |
| do_test 4.5 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE 1 IN (x);
 | |
|   }
 | |
| } {1.0}
 | |
| 
 | |
| do_test 4.6 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE 1.0 IN (x);
 | |
|   }
 | |
| } {1.0}
 | |
| 
 | |
| do_test 4.7 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE '1' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 4.8 {
 | |
|   execsql {
 | |
|     SELECT x FROM t3 WHERE '1.0' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.1 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE x IN (1);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.2 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE x IN (1.0);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.3 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE x IN ('1');
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.4 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE x IN ('1.0');
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.5 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE x IN (1.11);
 | |
|   }
 | |
| } {1.11}
 | |
| 
 | |
| do_test 5.6 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE x IN ('1.11');
 | |
|   }
 | |
| } {1.11}
 | |
| 
 | |
| do_test 5.7 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE 1 IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.8 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE 1.0 IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.9 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE '1' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.10 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE '1.0' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 5.11 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE 1.11 IN (x);
 | |
|   }
 | |
| } {1.11}
 | |
| 
 | |
| do_test 5.12 {
 | |
|   execsql {
 | |
|     SELECT x FROM t4 WHERE '1.11' IN (x);
 | |
|   }
 | |
| } {}
 | |
| 
 | |
| do_test 6.1 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE x IN (1);
 | |
|   }
 | |
| } {1 two 1.0 four}
 | |
| 
 | |
| do_test 6.2 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE x IN (1.0);
 | |
|   }
 | |
| } {1 two 1.0 four}
 | |
| 
 | |
| do_test 6.3 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE x IN ('1');
 | |
|   }
 | |
| } {1 one}
 | |
| 
 | |
| do_test 6.4 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE x IN ('1.0');
 | |
|   }
 | |
| } {1.0 three}
 | |
| 
 | |
| do_test 6.5 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE 1 IN (x);
 | |
|   }
 | |
| } {1 two 1.0 four}
 | |
| 
 | |
| do_test 6.6 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE 1.0 IN (x);
 | |
|   }
 | |
| } {1 two 1.0 four}
 | |
| 
 | |
| do_test 6.7 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE '1' IN (x);
 | |
|   }
 | |
| } {1 one}
 | |
| 
 | |
| do_test 6.8 {
 | |
|   execsql {
 | |
|     SELECT x, y FROM t5 WHERE '1.0' IN (x);
 | |
|   }
 | |
| } {1.0 three}
 | |
| 
 | |
| finish_test
 | 
