1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # 2012 March 23
- #
- # The author disclaims copyright to this source code. In place of
- # a legal notice, here is a blessing:
- #
- # May you do good and not evil.
- # May you find forgiveness for yourself and forgive others.
- # May you share freely, never taking more than you give.
- #
- #***********************************************************************
- #
- #
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- ifcapable {!incrblob} { finish_test ; return }
- set testprefix incrblob4
- proc create_t1 {} {
- execsql {
- PRAGMA page_size = 1024;
- CREATE TABLE t1(k INTEGER PRIMARY KEY, v);
- }
- }
- proc populate_t1 {} {
- set data [list a b c d e f g h i j k l m n o p q r s t u v w x y z]
- foreach d $data {
- set blob [string repeat $d 900]
- execsql { INSERT INTO t1(v) VALUES($blob) }
- }
- }
- do_test 1.1 {
- create_t1
- populate_t1
- } {}
- do_test 1.2 {
- set blob [db incrblob t1 v 5]
- read $blob 10
- } {eeeeeeeeee}
- do_test 1.3 {
- execsql { DELETE FROM t1 }
- populate_t1
- } {}
- do_test 2.1 {
- reset_db
- create_t1
- populate_t1
- } {}
- do_test 2.2 {
- set blob [db incrblob t1 v 10]
- read $blob 10
- } {jjjjjjjjjj}
- do_test 2.3 {
- set new [string repeat % 900]
- execsql { DELETE FROM t1 WHERE k=10 }
- execsql { DELETE FROM t1 WHERE k=9 }
- execsql { INSERT INTO t1(v) VALUES($new) }
- } {}
- do_test 3.1 {
- reset_db
- create_t1
- populate_t1
- } {}
- do_test 3.2 {
- set blob [db incrblob t1 v 20]
- read $blob 10
- } {tttttttttt}
- do_test 3.3 {
- set new [string repeat % 900]
- execsql { UPDATE t1 SET v = $new WHERE k = 20 }
- execsql { DELETE FROM t1 WHERE k=19 }
- execsql { INSERT INTO t1(v) VALUES($new) }
- } {}
- finish_test
|