| OLD | NEW |
| 1 # | 1 # |
| 2 # 2001 September 15 | 2 # 2001 September 15 |
| 3 # | 3 # |
| 4 # The author disclaims copyright to this source code. In place of | 4 # The author disclaims copyright to this source code. In place of |
| 5 # a legal notice, here is a blessing: | 5 # a legal notice, here is a blessing: |
| 6 # | 6 # |
| 7 # May you do good and not evil. | 7 # May you do good and not evil. |
| 8 # May you find forgiveness for yourself and forgive others. | 8 # May you find forgiveness for yourself and forgive others. |
| 9 # May you share freely, never taking more than you give. | 9 # May you share freely, never taking more than you give. |
| 10 # | 10 # |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 # | 314 # |
| 315 # These tests - collate4-2.* - check that indices are correctly | 315 # These tests - collate4-2.* - check that indices are correctly |
| 316 # selected or not selected to implement WHERE clauses when user | 316 # selected or not selected to implement WHERE clauses when user |
| 317 # defined collation sequences are involved. | 317 # defined collation sequences are involved. |
| 318 # | 318 # |
| 319 # Indices may optimise WHERE clauses using <, >, <=, >=, = or IN | 319 # Indices may optimise WHERE clauses using <, >, <=, >=, = or IN |
| 320 # operators. | 320 # operators. |
| 321 # | 321 # |
| 322 do_test collate4-2.1.0 { | 322 do_test collate4-2.1.0 { |
| 323 execsql { | 323 execsql { |
| 324 PRAGMA automatic_index=OFF; |
| 324 CREATE TABLE collate4t1(a COLLATE NOCASE); | 325 CREATE TABLE collate4t1(a COLLATE NOCASE); |
| 325 CREATE TABLE collate4t2(b COLLATE TEXT); | 326 CREATE TABLE collate4t2(b COLLATE TEXT); |
| 326 | 327 |
| 327 INSERT INTO collate4t1 VALUES('a'); | 328 INSERT INTO collate4t1 VALUES('a'); |
| 328 INSERT INTO collate4t1 VALUES('A'); | 329 INSERT INTO collate4t1 VALUES('A'); |
| 329 INSERT INTO collate4t1 VALUES('b'); | 330 INSERT INTO collate4t1 VALUES('b'); |
| 330 INSERT INTO collate4t1 VALUES('B'); | 331 INSERT INTO collate4t1 VALUES('B'); |
| 331 INSERT INTO collate4t1 VALUES('c'); | 332 INSERT INTO collate4t1 VALUES('c'); |
| 332 INSERT INTO collate4t1 VALUES('C'); | 333 INSERT INTO collate4t1 VALUES('C'); |
| 333 INSERT INTO collate4t1 VALUES('d'); | 334 INSERT INTO collate4t1 VALUES('d'); |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 419 INSERT INTO collate4t1 VALUES('0', '1', '1'); | 420 INSERT INTO collate4t1 VALUES('0', '1', '1'); |
| 420 INSERT INTO collate4t1 VALUES('1', '0', '0'); | 421 INSERT INTO collate4t1 VALUES('1', '0', '0'); |
| 421 INSERT INTO collate4t1 VALUES('1', '0', '1'); | 422 INSERT INTO collate4t1 VALUES('1', '0', '1'); |
| 422 INSERT INTO collate4t1 VALUES('1', '1', '0'); | 423 INSERT INTO collate4t1 VALUES('1', '1', '0'); |
| 423 INSERT INTO collate4t1 VALUES('1', '1', '1'); | 424 INSERT INTO collate4t1 VALUES('1', '1', '1'); |
| 424 insert into collate4t2 SELECT * FROM collate4t1; | 425 insert into collate4t2 SELECT * FROM collate4t1; |
| 425 } | 426 } |
| 426 } {} | 427 } {} |
| 427 do_test collate4-2.2.1 { | 428 do_test collate4-2.2.1 { |
| 428 count { | 429 count { |
| 429 SELECT * FROM collate4t2 NATURAL JOIN collate4t1; | 430 SELECT * FROM collate4t2 NOT INDEXED NATURAL JOIN collate4t1 NOT INDEXED; |
| 430 } | 431 } |
| 431 } {0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 63} | 432 } {0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 63} |
| 432 do_test collate4-2.2.1b { | 433 do_test collate4-2.2.1b { |
| 433 execsql { | 434 execsql { |
| 434 CREATE INDEX collate4i1 ON collate4t1(a, b, c); | 435 CREATE INDEX collate4i1 ON collate4t1(a, b, c); |
| 435 } | 436 } |
| 436 count { | 437 count { |
| 437 SELECT * FROM collate4t2 NATURAL JOIN collate4t1; | 438 SELECT * FROM collate4t2 NATURAL JOIN collate4t1; |
| 438 } | 439 } |
| 439 } {0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 29} | 440 } {0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 29} |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 SELECT * FROM collate4t1 ORDER BY oid; | 692 SELECT * FROM collate4t1 ORDER BY oid; |
| 692 } | 693 } |
| 693 } {10 15 101 nosort} | 694 } {10 15 101 nosort} |
| 694 do_test collate4-6.3 { | 695 do_test collate4-6.3 { |
| 695 cksort { | 696 cksort { |
| 696 SELECT * FROM collate4t1 ORDER BY oid||'' COLLATE TEXT; | 697 SELECT * FROM collate4t1 ORDER BY oid||'' COLLATE TEXT; |
| 697 } | 698 } |
| 698 } {10 101 15 sort} | 699 } {10 101 15 sort} |
| 699 | 700 |
| 700 finish_test | 701 finish_test |
| OLD | NEW |