| 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 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 # collate4-6.* INTEGER PRIMARY KEY indices. | 53 # collate4-6.* INTEGER PRIMARY KEY indices. |
| 54 # | 54 # |
| 55 | 55 |
| 56 # | 56 # |
| 57 # These tests - collate4-1.* - check that indices are correctly | 57 # These tests - collate4-1.* - check that indices are correctly |
| 58 # selected or not selected to implement ORDER BY clauses when | 58 # selected or not selected to implement ORDER BY clauses when |
| 59 # user defined collation sequences are involved. | 59 # user defined collation sequences are involved. |
| 60 # | 60 # |
| 61 # Because these tests also exercise all the different ways indices | 61 # Because these tests also exercise all the different ways indices |
| 62 # can be created, they also serve to verify that indices are correctly | 62 # can be created, they also serve to verify that indices are correctly |
| 63 # initialised with user-defined collation sequences when they are | 63 # initialized with user-defined collation sequences when they are |
| 64 # created. | 64 # created. |
| 65 # | 65 # |
| 66 # Tests named collate4-1.1.* use indices with a single column. Tests | 66 # Tests named collate4-1.1.* use indices with a single column. Tests |
| 67 # collate4-1.2.* use indices with two columns. | 67 # collate4-1.2.* use indices with two columns. |
| 68 # | 68 # |
| 69 do_test collate4-1.1.0 { | 69 do_test collate4-1.1.0 { |
| 70 execsql { | 70 execsql { |
| 71 CREATE TABLE collate4t1(a COLLATE NOCASE, b COLLATE TEXT); | 71 CREATE TABLE collate4t1(a COLLATE NOCASE, b COLLATE TEXT); |
| 72 INSERT INTO collate4t1 VALUES( 'a', 'a' ); | 72 INSERT INTO collate4t1 VALUES( 'a', 'a' ); |
| 73 INSERT INTO collate4t1 VALUES( 'b', 'b' ); | 73 INSERT INTO collate4t1 VALUES( 'b', 'b' ); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 87 do_test collate4-1.1.3 { | 87 do_test collate4-1.1.3 { |
| 88 cksort {SELECT a FROM collate4t1 ORDER BY a COLLATE TEXT} | 88 cksort {SELECT a FROM collate4t1 ORDER BY a COLLATE TEXT} |
| 89 } {{} A B a b sort} | 89 } {{} A B a b sort} |
| 90 do_test collate4-1.1.4 { | 90 do_test collate4-1.1.4 { |
| 91 cksort {SELECT b FROM collate4t1 ORDER BY b} | 91 cksort {SELECT b FROM collate4t1 ORDER BY b} |
| 92 } {{} A B a b nosort} | 92 } {{} A B a b nosort} |
| 93 do_test collate4-1.1.5 { | 93 do_test collate4-1.1.5 { |
| 94 cksort {SELECT b FROM collate4t1 ORDER BY b COLLATE TEXT} | 94 cksort {SELECT b FROM collate4t1 ORDER BY b COLLATE TEXT} |
| 95 } {{} A B a b nosort} | 95 } {{} A B a b nosort} |
| 96 do_test collate4-1.1.6 { | 96 do_test collate4-1.1.6 { |
| 97 cksort {SELECT b FROM collate4t1 ORDER BY b COLLATE NOCASE} | 97 cksort {SELECT b FROM collate4t1 ORDER BY b COLLATE NOCASE, rowid} |
| 98 } {{} a A b B sort} | 98 } {{} a A b B sort} |
| 99 | 99 |
| 100 do_test collate4-1.1.7 { | 100 do_test collate4-1.1.7 { |
| 101 execsql { | 101 execsql { |
| 102 CREATE TABLE collate4t2( | 102 CREATE TABLE collate4t2( |
| 103 a PRIMARY KEY COLLATE NOCASE, | 103 a PRIMARY KEY COLLATE NOCASE, |
| 104 b UNIQUE COLLATE TEXT | 104 b UNIQUE COLLATE TEXT |
| 105 ); | 105 ); |
| 106 INSERT INTO collate4t2 VALUES( 'a', 'a' ); | 106 INSERT INTO collate4t2 VALUES( 'a', 'a' ); |
| 107 INSERT INTO collate4t2 VALUES( NULL, NULL ); | 107 INSERT INTO collate4t2 VALUES( NULL, NULL ); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 INSERT INTO collate4t4 VALUES( 'a', 'a' ); | 164 INSERT INTO collate4t4 VALUES( 'a', 'a' ); |
| 165 INSERT INTO collate4t4 VALUES( 'b', 'b' ); | 165 INSERT INTO collate4t4 VALUES( 'b', 'b' ); |
| 166 INSERT INTO collate4t4 VALUES( NULL, NULL ); | 166 INSERT INTO collate4t4 VALUES( NULL, NULL ); |
| 167 INSERT INTO collate4t4 VALUES( 'B', 'B' ); | 167 INSERT INTO collate4t4 VALUES( 'B', 'B' ); |
| 168 INSERT INTO collate4t4 VALUES( 'A', 'A' ); | 168 INSERT INTO collate4t4 VALUES( 'A', 'A' ); |
| 169 CREATE INDEX collate4i3 ON collate4t4(a COLLATE TEXT); | 169 CREATE INDEX collate4i3 ON collate4t4(a COLLATE TEXT); |
| 170 CREATE INDEX collate4i4 ON collate4t4(b COLLATE NOCASE); | 170 CREATE INDEX collate4i4 ON collate4t4(b COLLATE NOCASE); |
| 171 } | 171 } |
| 172 } {} | 172 } {} |
| 173 do_test collate4-1.1.22 { | 173 do_test collate4-1.1.22 { |
| 174 cksort {SELECT a FROM collate4t4 ORDER BY a} | 174 cksort {SELECT a FROM collate4t4 ORDER BY a, rowid} |
| 175 } {{} a A b B sort} | 175 } {{} a A b B sort} |
| 176 do_test collate4-1.1.23 { | 176 do_test collate4-1.1.23 { |
| 177 cksort {SELECT a FROM collate4t4 ORDER BY a COLLATE NOCASE} | 177 cksort {SELECT a FROM collate4t4 ORDER BY a COLLATE NOCASE, rowid} |
| 178 } {{} a A b B sort} | 178 } {{} a A b B sort} |
| 179 do_test collate4-1.1.24 { | 179 do_test collate4-1.1.24 { |
| 180 cksort {SELECT a FROM collate4t4 ORDER BY a COLLATE TEXT} | 180 cksort {SELECT a FROM collate4t4 ORDER BY a COLLATE TEXT, rowid} |
| 181 } {{} A B a b nosort} | 181 } {{} A B a b nosort} |
| 182 do_test collate4-1.1.25 { | 182 do_test collate4-1.1.25 { |
| 183 cksort {SELECT b FROM collate4t4 ORDER BY b} | 183 cksort {SELECT b FROM collate4t4 ORDER BY b} |
| 184 } {{} A B a b sort} | 184 } {{} A B a b sort} |
| 185 do_test collate4-1.1.26 { | 185 do_test collate4-1.1.26 { |
| 186 cksort {SELECT b FROM collate4t4 ORDER BY b COLLATE TEXT} | 186 cksort {SELECT b FROM collate4t4 ORDER BY b COLLATE TEXT} |
| 187 } {{} A B a b sort} | 187 } {{} A B a b sort} |
| 188 do_test collate4-1.1.27 { | 188 do_test collate4-1.1.27 { |
| 189 cksort {SELECT b FROM collate4t4 ORDER BY b COLLATE NOCASE} | 189 cksort {SELECT b FROM collate4t4 ORDER BY b COLLATE NOCASE} |
| 190 } {{} a A b B nosort} | 190 } {{} a A b B nosort} |
| (...skipping 24 matching lines...) Expand all Loading... |
| 215 do_test collate4-1.2.2 { | 215 do_test collate4-1.2.2 { |
| 216 cksort {SELECT a FROM collate4t1 ORDER BY a COLLATE nocase} | 216 cksort {SELECT a FROM collate4t1 ORDER BY a COLLATE nocase} |
| 217 } {{} A a B b nosort} | 217 } {{} A a B b nosort} |
| 218 do_test collate4-1.2.3 { | 218 do_test collate4-1.2.3 { |
| 219 cksort {SELECT a FROM collate4t1 ORDER BY a COLLATE text} | 219 cksort {SELECT a FROM collate4t1 ORDER BY a COLLATE text} |
| 220 } {{} A B a b sort} | 220 } {{} A B a b sort} |
| 221 do_test collate4-1.2.4 { | 221 do_test collate4-1.2.4 { |
| 222 cksort {SELECT a FROM collate4t1 ORDER BY a, b} | 222 cksort {SELECT a FROM collate4t1 ORDER BY a, b} |
| 223 } {{} A a B b nosort} | 223 } {{} A a B b nosort} |
| 224 do_test collate4-1.2.5 { | 224 do_test collate4-1.2.5 { |
| 225 cksort {SELECT a FROM collate4t1 ORDER BY a, b COLLATE nocase} | 225 cksort {SELECT a FROM collate4t1 ORDER BY a, b COLLATE nocase, rowid} |
| 226 } {{} a A b B sort} | 226 } {{} a A b B sort} |
| 227 do_test collate4-1.2.6 { | 227 do_test collate4-1.2.6 { |
| 228 cksort {SELECT a FROM collate4t1 ORDER BY a, b COLLATE text} | 228 cksort {SELECT a FROM collate4t1 ORDER BY a, b COLLATE text} |
| 229 } {{} A a B b nosort} | 229 } {{} A a B b nosort} |
| 230 | 230 |
| 231 do_test collate4-1.2.7 { | 231 do_test collate4-1.2.7 { |
| 232 execsql { | 232 execsql { |
| 233 CREATE TABLE collate4t2( | 233 CREATE TABLE collate4t2( |
| 234 a COLLATE NOCASE, | 234 a COLLATE NOCASE, |
| 235 b COLLATE TEXT, | 235 b COLLATE TEXT, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 264 CREATE TABLE collate4t3(a COLLATE NOCASE, b COLLATE TEXT); | 264 CREATE TABLE collate4t3(a COLLATE NOCASE, b COLLATE TEXT); |
| 265 INSERT INTO collate4t3 VALUES( 'a', 'a' ); | 265 INSERT INTO collate4t3 VALUES( 'a', 'a' ); |
| 266 INSERT INTO collate4t3 VALUES( 'b', 'b' ); | 266 INSERT INTO collate4t3 VALUES( 'b', 'b' ); |
| 267 INSERT INTO collate4t3 VALUES( NULL, NULL ); | 267 INSERT INTO collate4t3 VALUES( NULL, NULL ); |
| 268 INSERT INTO collate4t3 VALUES( 'B', 'B' ); | 268 INSERT INTO collate4t3 VALUES( 'B', 'B' ); |
| 269 INSERT INTO collate4t3 VALUES( 'A', 'A' ); | 269 INSERT INTO collate4t3 VALUES( 'A', 'A' ); |
| 270 CREATE INDEX collate4i2 ON collate4t3(a COLLATE TEXT, b COLLATE NOCASE); | 270 CREATE INDEX collate4i2 ON collate4t3(a COLLATE TEXT, b COLLATE NOCASE); |
| 271 } | 271 } |
| 272 } {} | 272 } {} |
| 273 do_test collate4-1.2.15 { | 273 do_test collate4-1.2.15 { |
| 274 cksort {SELECT a FROM collate4t3 ORDER BY a} | 274 cksort {SELECT a FROM collate4t3 ORDER BY a, rowid} |
| 275 } {{} a A b B sort} | 275 } {{} a A b B sort} |
| 276 do_test collate4-1.2.16 { | 276 do_test collate4-1.2.16 { |
| 277 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE nocase} | 277 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE nocase, rowid} |
| 278 } {{} a A b B sort} | 278 } {{} a A b B sort} |
| 279 do_test collate4-1.2.17 { | 279 do_test collate4-1.2.17 { |
| 280 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE text} | 280 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE text} |
| 281 } {{} A B a b nosort} | 281 } {{} A B a b nosort} |
| 282 do_test collate4-1.2.18 { | 282 do_test collate4-1.2.18 { |
| 283 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE text, b} | 283 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE text, b} |
| 284 } {{} A B a b sort} | 284 } {{} A B a b sort} |
| 285 do_test collate4-1.2.19 { | 285 do_test collate4-1.2.19 { |
| 286 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE text, b COLLATE nocase} | 286 cksort {SELECT a FROM collate4t3 ORDER BY a COLLATE text, b COLLATE nocase} |
| 287 } {{} A B a b nosort} | 287 } {{} A B a b nosort} |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 357 count { | 357 count { |
| 358 SELECT * FROM collate4t2, collate4t1 WHERE b = a; | 358 SELECT * FROM collate4t2, collate4t1 WHERE b = a; |
| 359 } | 359 } |
| 360 } {A A 19} | 360 } {A A 19} |
| 361 do_test collate4-2.1.4 { | 361 do_test collate4-2.1.4 { |
| 362 execsql { | 362 execsql { |
| 363 DROP INDEX collate4i1; | 363 DROP INDEX collate4i1; |
| 364 CREATE INDEX collate4i1 ON collate4t1(a COLLATE TEXT); | 364 CREATE INDEX collate4i1 ON collate4t1(a COLLATE TEXT); |
| 365 } | 365 } |
| 366 count { | 366 count { |
| 367 SELECT * FROM collate4t2, collate4t1 WHERE a = b; | 367 SELECT * FROM collate4t2, collate4t1 WHERE a = b |
| 368 ORDER BY collate4t2.rowid, collate4t1.rowid |
| 368 } | 369 } |
| 369 } {A a A A 19} | 370 } {A a A A 19} |
| 370 do_test collate4-2.1.5 { | 371 do_test collate4-2.1.5 { |
| 371 count { | 372 count { |
| 372 SELECT * FROM collate4t2, collate4t1 WHERE b = a; | 373 SELECT * FROM collate4t2, collate4t1 WHERE b = a; |
| 373 } | 374 } |
| 374 } {A A 4} | 375 } {A A 4} |
| 375 ifcapable subquery { | 376 ifcapable subquery { |
| 376 do_test collate4-2.1.6 { | 377 do_test collate4-2.1.6 { |
| 377 count { | 378 count { |
| 378 SELECT a FROM collate4t1 WHERE a IN (SELECT * FROM collate4t2); | 379 SELECT a FROM collate4t1 WHERE a IN (SELECT * FROM collate4t2) |
| 380 ORDER BY rowid |
| 379 } | 381 } |
| 380 } {a A 10} | 382 } {a A 10} |
| 381 do_test collate4-2.1.7 { | 383 do_test collate4-2.1.7 { |
| 382 execsql { | 384 execsql { |
| 383 DROP INDEX collate4i1; | 385 DROP INDEX collate4i1; |
| 384 CREATE INDEX collate4i1 ON collate4t1(a); | 386 CREATE INDEX collate4i1 ON collate4t1(a); |
| 385 } | 387 } |
| 386 count { | 388 count { |
| 387 SELECT a FROM collate4t1 WHERE a IN (SELECT * FROM collate4t2); | 389 SELECT a FROM collate4t1 WHERE a IN (SELECT * FROM collate4t2) |
| 390 ORDER BY rowid |
| 388 } | 391 } |
| 389 } {a A 6} | 392 } {a A 6} |
| 390 do_test collate4-2.1.8 { | 393 do_test collate4-2.1.8 { |
| 391 count { | 394 count { |
| 392 SELECT a FROM collate4t1 WHERE a IN ('z', 'a'); | 395 SELECT a FROM collate4t1 WHERE a IN ('z', 'a'); |
| 393 } | 396 } |
| 394 } {a A 5} | 397 } {a A 5} |
| 395 do_test collate4-2.1.9 { | 398 do_test collate4-2.1.9 { |
| 396 execsql { | 399 execsql { |
| 397 DROP INDEX collate4i1; | 400 DROP INDEX collate4i1; |
| 398 CREATE INDEX collate4i1 ON collate4t1(a COLLATE TEXT); | 401 CREATE INDEX collate4i1 ON collate4t1(a COLLATE TEXT); |
| 399 } | 402 } |
| 400 count { | 403 count { |
| 401 SELECT a FROM collate4t1 WHERE a IN ('z', 'a'); | 404 SELECT a FROM collate4t1 WHERE a IN ('z', 'a') ORDER BY rowid; |
| 402 } | 405 } |
| 403 } {a A 9} | 406 } {a A 9} |
| 404 } | 407 } |
| 405 do_test collate4-2.1.10 { | 408 do_test collate4-2.1.10 { |
| 406 execsql { | 409 execsql { |
| 407 DROP TABLE collate4t1; | 410 DROP TABLE collate4t1; |
| 408 DROP TABLE collate4t2; | 411 DROP TABLE collate4t2; |
| 409 } | 412 } |
| 410 } {} | 413 } {} |
| 411 | 414 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 do_test collate4-3.0 { | 466 do_test collate4-3.0 { |
| 464 execsql { | 467 execsql { |
| 465 CREATE TABLE collate4t1(a PRIMARY KEY COLLATE NOCASE); | 468 CREATE TABLE collate4t1(a PRIMARY KEY COLLATE NOCASE); |
| 466 } | 469 } |
| 467 } {} | 470 } {} |
| 468 do_test collate4-3.1 { | 471 do_test collate4-3.1 { |
| 469 catchsql { | 472 catchsql { |
| 470 INSERT INTO collate4t1 VALUES('abc'); | 473 INSERT INTO collate4t1 VALUES('abc'); |
| 471 INSERT INTO collate4t1 VALUES('ABC'); | 474 INSERT INTO collate4t1 VALUES('ABC'); |
| 472 } | 475 } |
| 473 } {1 {column a is not unique}} | 476 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 474 do_test collate4-3.2 { | 477 do_test collate4-3.2 { |
| 475 execsql { | 478 execsql { |
| 476 SELECT * FROM collate4t1; | 479 SELECT * FROM collate4t1; |
| 477 } | 480 } |
| 478 } {abc} | 481 } {abc} |
| 479 do_test collate4-3.3 { | 482 do_test collate4-3.3 { |
| 480 catchsql { | 483 catchsql { |
| 481 INSERT INTO collate4t1 SELECT upper(a) FROM collate4t1; | 484 INSERT INTO collate4t1 SELECT upper(a) FROM collate4t1; |
| 482 } | 485 } |
| 483 } {1 {column a is not unique}} | 486 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 484 do_test collate4-3.4 { | 487 do_test collate4-3.4 { |
| 485 catchsql { | 488 catchsql { |
| 486 INSERT INTO collate4t1 VALUES(1); | 489 INSERT INTO collate4t1 VALUES(1); |
| 487 UPDATE collate4t1 SET a = 'abc'; | 490 UPDATE collate4t1 SET a = 'abc'; |
| 488 } | 491 } |
| 489 } {1 {column a is not unique}} | 492 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 490 do_test collate4-3.5 { | 493 do_test collate4-3.5 { |
| 491 execsql { | 494 execsql { |
| 492 DROP TABLE collate4t1; | 495 DROP TABLE collate4t1; |
| 493 CREATE TABLE collate4t1(a COLLATE NOCASE UNIQUE); | 496 CREATE TABLE collate4t1(a COLLATE NOCASE UNIQUE); |
| 494 } | 497 } |
| 495 } {} | 498 } {} |
| 496 do_test collate4-3.6 { | 499 do_test collate4-3.6 { |
| 497 catchsql { | 500 catchsql { |
| 498 INSERT INTO collate4t1 VALUES('abc'); | 501 INSERT INTO collate4t1 VALUES('abc'); |
| 499 INSERT INTO collate4t1 VALUES('ABC'); | 502 INSERT INTO collate4t1 VALUES('ABC'); |
| 500 } | 503 } |
| 501 } {1 {column a is not unique}} | 504 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 502 do_test collate4-3.7 { | 505 do_test collate4-3.7 { |
| 503 execsql { | 506 execsql { |
| 504 SELECT * FROM collate4t1; | 507 SELECT * FROM collate4t1; |
| 505 } | 508 } |
| 506 } {abc} | 509 } {abc} |
| 507 do_test collate4-3.8 { | 510 do_test collate4-3.8 { |
| 508 catchsql { | 511 catchsql { |
| 509 INSERT INTO collate4t1 SELECT upper(a) FROM collate4t1; | 512 INSERT INTO collate4t1 SELECT upper(a) FROM collate4t1; |
| 510 } | 513 } |
| 511 } {1 {column a is not unique}} | 514 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 512 do_test collate4-3.9 { | 515 do_test collate4-3.9 { |
| 513 catchsql { | 516 catchsql { |
| 514 INSERT INTO collate4t1 VALUES(1); | 517 INSERT INTO collate4t1 VALUES(1); |
| 515 UPDATE collate4t1 SET a = 'abc'; | 518 UPDATE collate4t1 SET a = 'abc'; |
| 516 } | 519 } |
| 517 } {1 {column a is not unique}} | 520 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 518 do_test collate4-3.10 { | 521 do_test collate4-3.10 { |
| 519 execsql { | 522 execsql { |
| 520 DROP TABLE collate4t1; | 523 DROP TABLE collate4t1; |
| 521 CREATE TABLE collate4t1(a); | 524 CREATE TABLE collate4t1(a); |
| 522 CREATE UNIQUE INDEX collate4i1 ON collate4t1(a COLLATE NOCASE); | 525 CREATE UNIQUE INDEX collate4i1 ON collate4t1(a COLLATE NOCASE); |
| 523 } | 526 } |
| 524 } {} | 527 } {} |
| 525 do_test collate4-3.11 { | 528 do_test collate4-3.11 { |
| 526 catchsql { | 529 catchsql { |
| 527 INSERT INTO collate4t1 VALUES('abc'); | 530 INSERT INTO collate4t1 VALUES('abc'); |
| 528 INSERT INTO collate4t1 VALUES('ABC'); | 531 INSERT INTO collate4t1 VALUES('ABC'); |
| 529 } | 532 } |
| 530 } {1 {column a is not unique}} | 533 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 531 do_test collate4-3.12 { | 534 do_test collate4-3.12 { |
| 532 execsql { | 535 execsql { |
| 533 SELECT * FROM collate4t1; | 536 SELECT * FROM collate4t1; |
| 534 } | 537 } |
| 535 } {abc} | 538 } {abc} |
| 536 do_test collate4-3.13 { | 539 do_test collate4-3.13 { |
| 537 catchsql { | 540 catchsql { |
| 538 INSERT INTO collate4t1 SELECT upper(a) FROM collate4t1; | 541 INSERT INTO collate4t1 SELECT upper(a) FROM collate4t1; |
| 539 } | 542 } |
| 540 } {1 {column a is not unique}} | 543 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 541 do_test collate4-3.14 { | 544 do_test collate4-3.14 { |
| 542 catchsql { | 545 catchsql { |
| 543 INSERT INTO collate4t1 VALUES(1); | 546 INSERT INTO collate4t1 VALUES(1); |
| 544 UPDATE collate4t1 SET a = 'abc'; | 547 UPDATE collate4t1 SET a = 'abc'; |
| 545 } | 548 } |
| 546 } {1 {column a is not unique}} | 549 } {1 {UNIQUE constraint failed: collate4t1.a}} |
| 547 | 550 |
| 548 do_test collate4-3.15 { | 551 do_test collate4-3.15 { |
| 549 execsql { | 552 execsql { |
| 550 DROP TABLE collate4t1; | 553 DROP TABLE collate4t1; |
| 551 } | 554 } |
| 552 } {} | 555 } {} |
| 553 | 556 |
| 554 # Mimic the SQLite 2 collation type NUMERIC. | 557 # Mimic the SQLite 2 collation type NUMERIC. |
| 555 db collate numeric numeric_collate | 558 db collate numeric numeric_collate |
| 556 proc numeric_collate {lhs rhs} { | 559 proc numeric_collate {lhs rhs} { |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 SELECT * FROM collate4t1 ORDER BY oid; | 695 SELECT * FROM collate4t1 ORDER BY oid; |
| 693 } | 696 } |
| 694 } {10 15 101 nosort} | 697 } {10 15 101 nosort} |
| 695 do_test collate4-6.3 { | 698 do_test collate4-6.3 { |
| 696 cksort { | 699 cksort { |
| 697 SELECT * FROM collate4t1 ORDER BY oid||'' COLLATE TEXT; | 700 SELECT * FROM collate4t1 ORDER BY oid||'' COLLATE TEXT; |
| 698 } | 701 } |
| 699 } {10 101 15 sort} | 702 } {10 101 15 sort} |
| 700 | 703 |
| 701 finish_test | 704 finish_test |
| OLD | NEW |