drh | 883486b | 2016-07-01 19:48:43 +0000 | [diff] [blame] | 1 | # 2016-07-01 |
| 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 | # Test cases for a crash bug. |
| 12 | # |
| 13 | |
| 14 | set testdir [file dirname $argv0] |
| 15 | source $testdir/tester.tcl |
dan | a77edc6 | 2017-03-23 17:03:35 +0000 | [diff] [blame] | 16 | set testprefix collateB |
drh | 883486b | 2016-07-01 19:48:43 +0000 | [diff] [blame] | 17 | |
| 18 | do_execsql_test collateB-1.1 { |
| 19 | CREATE TABLE t1(a INTEGER PRIMARY KEY); |
| 20 | CREATE TABLE t2(b INTEGER PRIMARY KEY, x1 INT COLLATE NOCASE); |
| 21 | CREATE TABLE t3(x2 INT); |
| 22 | SELECT * FROM t3, t2, t1 WHERE x2=b AND x1=a AND a=1; |
| 23 | } {} |
| 24 | do_execsql_test collateB-1.2 { |
| 25 | INSERT INTO t1(a) VALUES(1),(2),(3); |
| 26 | INSERT INTO t2(b,x1) VALUES(11,1),(22,2),(33,3); |
| 27 | INSERT INTO t3(x2) VALUES(11),(22),(33); |
| 28 | SELECT *,'|' FROM t3, t2, t1 WHERE x2=b AND x1=a AND a=1; |
| 29 | } {11 11 1 1 |} |
| 30 | do_execsql_test collateB-1.3 { |
| 31 | SELECT *,'|' FROM t3, t1, t2 WHERE x2=b AND x1=a AND a=1; |
| 32 | } {11 1 11 1 |} |
| 33 | do_execsql_test collateB-1.4 { |
| 34 | SELECT *,'|' FROM t2, t3, t1 WHERE x2=b AND x1=a AND a=1; |
| 35 | } {11 1 11 1 |} |
| 36 | do_execsql_test collateB-1.5 { |
| 37 | SELECT *,'|' FROM t2, t1, t3 WHERE x2=b AND x1=a AND a=1; |
| 38 | } {11 1 1 11 |} |
| 39 | do_execsql_test collateB-1.6 { |
| 40 | SELECT *,'|' FROM t1, t2, t3 WHERE x2=b AND x1=a AND a=1; |
| 41 | } {1 11 1 11 |} |
| 42 | do_execsql_test collateB-1.7 { |
| 43 | SELECT *,'|' FROM t1, t2, t3 WHERE x2=b AND x1=a AND a=1; |
| 44 | } {1 11 1 11 |} |
| 45 | do_execsql_test collateB-1.12 { |
| 46 | SELECT *,'|' FROM t3, t2, t1 WHERE b=x2 AND a=x1 AND 1=a; |
| 47 | } {11 11 1 1 |} |
| 48 | do_execsql_test collateB-1.13 { |
| 49 | SELECT *,'|' FROM t3, t1, t2 WHERE b=x2 AND a=x1 AND 1=a; |
| 50 | } {11 1 11 1 |} |
| 51 | do_execsql_test collateB-1.14 { |
| 52 | SELECT *,'|' FROM t2, t3, t1 WHERE b=x2 AND a=x1 AND 1=a; |
| 53 | } {11 1 11 1 |} |
| 54 | do_execsql_test collateB-1.15 { |
| 55 | SELECT *,'|' FROM t2, t1, t3 WHERE b=x2 AND a=x1 AND 1=a; |
| 56 | } {11 1 1 11 |} |
| 57 | do_execsql_test collateB-1.16 { |
| 58 | SELECT *,'|' FROM t1, t2, t3 WHERE b=x2 AND a=x1 AND 1=a; |
| 59 | } {1 11 1 11 |} |
| 60 | do_execsql_test collateB-1.17 { |
| 61 | SELECT *,'|' FROM t1, t2, t3 WHERE b=x2 AND a=x1 AND 1=a; |
| 62 | } {1 11 1 11 |} |
| 63 | |
dan | a77edc6 | 2017-03-23 17:03:35 +0000 | [diff] [blame] | 64 | #------------------------------------------------------------------------- |
| 65 | # Test an assert() failure that was occuring if an index were created |
| 66 | # on a column explicitly declared "COLLATE binary". |
| 67 | reset_db |
| 68 | do_execsql_test 2.1 { |
| 69 | CREATE TABLE t4(a COLLATE binary); |
| 70 | CREATE INDEX i4 ON t4(a); |
| 71 | INSERT INTO t4 VALUES('one'), ('two'), ('three'); |
| 72 | VACUUM; |
| 73 | } |
| 74 | |
| 75 | integrity_check 2.2 |
| 76 | |
drh | 883486b | 2016-07-01 19:48:43 +0000 | [diff] [blame] | 77 | finish_test |