AryaWu/sqlite
0
1# 2005 December 19 20052#3# The author disclaims copyright to this source code. In place of4# 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 is14# fixed. 15#16 17set testdir [file dirname $argv0]18source $testdir/tester.tcl19 20do_test tkt1567-1.1 {21 execsql {22 CREATE TABLE t1(a TEXT PRIMARY KEY);23 }24 set bigstr abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ25 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 $sql29 }30} {}31integrity_check tkt1567-1.232 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 }43} {1 {UNIQUE constraint failed: t1.a}}44do_test tkt1567-1.5 {45 execsql {46 COMMIT;47 }48} {}49integrity_check tkt1567-1.650 51do_test tkt1567-2.1 {52 execsql {53 CREATE TABLE t2(a TEXT PRIMARY KEY, rowid INT) WITHOUT rowid;54 }55 set bigstr abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ56 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 $sql60 }61} {}62integrity_check tkt1567-2.263 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 }74} {1 {UNIQUE constraint failed: t2.a}}75do_test tkt1567-2.5 {76 execsql {77 COMMIT;78 }79} {}80integrity_check tkt1567-2.681 82finish_test83 