1# 2018-04-17 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# 12# Test cases for UPSERT 13 14set testdir [file dirname $argv0] 15source $testdir/tester.tcl 16set testprefix upsertfault 17 18do_execsql_test 1.0 { 19 CREATE TABLE t1(a PRIMARY KEY, b, c, d, UNIQUE(b, c)); 20 INSERT INTO t1 VALUES(1, 1, 1, 1); 21 INSERT INTO t1 VALUES(2, 2, 2, 2); 22} 23faultsim_save_and_close 24 25do_faultsim_test 1 -faults oom* -prep { 26 faultsim_restore_and_reopen 27 db eval { SELECT * FROM sqlite_master } 28} -body { 29 execsql { 30 INSERT INTO t1 VALUES(3, 2, 2, NULL) ON CONFLICT(b, c) DO 31 UPDATE SET d=d+1; 32 } 33} -test { 34 faultsim_test_result {0 {}} 35} 36 37 38finish_test 39