CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
tkt1567.test83 linesDownload Raw Back to test
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