blob: cb1a6be5062fd963f2a82e4bde4bd36c8a46a53f [file] [log] [blame]
drh8f9b7282005-12-19 16:15:31 +00001# 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
17set testdir [file dirname $argv0]
18source $testdir/tester.tcl
19
20do_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} {}
31integrity_check tkt1567-1.2
32
33do_test tkt1567-1.3 {
34 execsql {
35 BEGIN;
36 UPDATE t1 SET a = a||'x' WHERE rowid%2==0;
37 }
38} {}
39do_test tkt1567-1.4 {
40 catchsql {
41 UPDATE t1 SET a = CASE WHEN rowid<90 THEN substr(a,1,10) ELSE '9999' END;
42 }
drhf9c8ce32013-11-05 13:33:55 +000043} {1 {UNIQUE constraint failed: t1.a}}
drh8f9b7282005-12-19 16:15:31 +000044do_test tkt1567-1.5 {
45 execsql {
46 COMMIT;
47 }
48} {}
49integrity_check tkt1567-1.6
50
drh00012df2013-11-05 01:59:07 +000051do_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} {}
62integrity_check tkt1567-2.2
63
64do_test tkt1567-2.3 {
65 execsql {
66 BEGIN;
67 UPDATE t2 SET a = a||'x' WHERE rowid%2==0;
68 }
69} {}
70do_test tkt1567-2.4 {
71 catchsql {
72 UPDATE t2 SET a = CASE WHEN rowid<90 THEN substr(a,1,10) ELSE '9999' END;
73 }
drhf9c8ce32013-11-05 13:33:55 +000074} {1 {UNIQUE constraint failed: t2.a}}
drh00012df2013-11-05 01:59:07 +000075do_test tkt1567-2.5 {
76 execsql {
77 COMMIT;
78 }
79} {}
80integrity_check tkt1567-2.6
81
drh8f9b7282005-12-19 16:15:31 +000082finish_test