diff options
author | dan <Dan Kennedy> | 2023-10-07 16:32:02 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2023-10-07 16:32:02 +0000 |
commit | 4bdcfc6666a99a9710cb94541afadf49e84bf2bc (patch) | |
tree | 91ebb9bbbabde4e0f70ba21bbc2393aece89fe54 /ext/session/sessionfault3.test | |
parent | 8f0634549cd10a0b5673b674998501b00963e210 (diff) | |
parent | 18efe17553c8c777452607d6605cf77a00142418 (diff) | |
download | sqlite-4bdcfc6666a99a9710cb94541afadf49e84bf2bc.tar.gz sqlite-4bdcfc6666a99a9710cb94541afadf49e84bf2bc.zip |
Add the sqlite3changegroup_schema() API. To allow changegroup objects to upgrade the schema of a changeset/patchset under some circumstances.
FossilOrigin-Name: 03f9e50b15c9c2fb4636dee24c1491c45322578b9fed08c6f4360be07c5c3830
Diffstat (limited to 'ext/session/sessionfault3.test')
-rw-r--r-- | ext/session/sessionfault3.test | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ext/session/sessionfault3.test b/ext/session/sessionfault3.test new file mode 100644 index 000000000..af5a4cdb4 --- /dev/null +++ b/ext/session/sessionfault3.test @@ -0,0 +1,59 @@ +# 2016 October 6 +# +# 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. +# +#*********************************************************************** +# +# The focus of this file is testing the session module. +# + +if {![info exists testdir]} { + set testdir [file join [file dirname [info script]] .. .. test] +} +source [file join [file dirname [info script]] session_common.tcl] +source $testdir/tester.tcl +ifcapable !session {finish_test; return} +set testprefix sessionfault3 + +do_execsql_test 1.0 { + CREATE TABLE t1(a, b, PRIMARY KEY(a)); + INSERT INTO t1 VALUES(1, 2); + INSERT INTO t1 VALUES(3, 4); + INSERT INTO t1 VALUES('five', 'six'); +} + +set C1 [changeset_from_sql { + INSERT INTO t1 VALUES('seven', 'eight'); + UPDATE t1 SET b=6 WHERE a='five'; + DELETE FROM t1 WHERE a=1; +}] + +do_execsql_test 1.1 { + ALTER TABLE t1 ADD COLUMN d DEFAULT 123; + ALTER TABLE t1 ADD COLUMN e DEFAULT 'string'; +} + +set C2 [changeset_from_sql { + UPDATE t1 SET e='new value' WHERE a='seven'; + INSERT INTO t1 VALUES(0, 0, 0, 0); +}] + +do_faultsim_test 1 -faults oom* -prep { + sqlite3changegroup G +} -body { + G schema db main + G add $::C1 + G add $::C2 + G output + set {} {} +} -test { + catch { G delete } + faultsim_test_result {0 {}} {1 SQLITE_NOMEM} +} + +finish_test |