OLD | NEW |
| (Empty) |
1 # 2005 December 19 2005 | |
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 #1567 is | |
14 # fixed. | |
15 # | |
16 | |
17 set testdir [file dirname $argv0] | |
18 source $testdir/tester.tcl | |
19 | |
20 do_test tkt1567-1.1 { | |
21 execsql { | |
22 CREATE TABLE t1(a TEXT PRIMARY KEY); | |
23 } | |
24 set bigstr abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ | |
25 for {set i 0} {$i<100} {incr i} { | |
26 set x [format %5d [expr $i*2]] | |
27 set sql "INSERT INTO t1 VALUES('$x-$bigstr')" | |
28 execsql $sql | |
29 } | |
30 } {} | |
31 integrity_check tkt1567-1.2 | |
32 | |
33 do_test tkt1567-1.3 { | |
34 execsql { | |
35 BEGIN; | |
36 UPDATE t1 SET a = a||'x' WHERE rowid%2==0; | |
37 } | |
38 } {} | |
39 do_test tkt1567-1.4 { | |
40 catchsql { | |
41 UPDATE t1 SET a = CASE WHEN rowid<90 THEN substr(a,1,10) ELSE '9999' END; | |
42 } | |
43 } {1 {UNIQUE constraint failed: t1.a}} | |
44 do_test tkt1567-1.5 { | |
45 execsql { | |
46 COMMIT; | |
47 } | |
48 } {} | |
49 integrity_check tkt1567-1.6 | |
50 | |
51 do_test tkt1567-2.1 { | |
52 execsql { | |
53 CREATE TABLE t2(a TEXT PRIMARY KEY, rowid INT) WITHOUT rowid; | |
54 } | |
55 set bigstr abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ | |
56 for {set i 0} {$i<100} {incr i} { | |
57 set x [format %5d [expr $i*2]] | |
58 set sql "INSERT INTO t2 VALUES('$x-$bigstr', $i+1)" | |
59 execsql $sql | |
60 } | |
61 } {} | |
62 integrity_check tkt1567-2.2 | |
63 | |
64 do_test tkt1567-2.3 { | |
65 execsql { | |
66 BEGIN; | |
67 UPDATE t2 SET a = a||'x' WHERE rowid%2==0; | |
68 } | |
69 } {} | |
70 do_test tkt1567-2.4 { | |
71 catchsql { | |
72 UPDATE t2 SET a = CASE WHEN rowid<90 THEN substr(a,1,10) ELSE '9999' END; | |
73 } | |
74 } {1 {UNIQUE constraint failed: t2.a}} | |
75 do_test tkt1567-2.5 { | |
76 execsql { | |
77 COMMIT; | |
78 } | |
79 } {} | |
80 integrity_check tkt1567-2.6 | |
81 | |
82 finish_test | |
OLD | NEW |