OLD | NEW |
1 # 2002 January 29 | 1 # 2002 January 29 |
2 # | 2 # |
3 # The author disclaims copyright to this source code. In place of | 3 # The author disclaims copyright to this source code. In place of |
4 # a legal notice, here is a blessing: | 4 # a legal notice, here is a blessing: |
5 # | 5 # |
6 # May you do good and not evil. | 6 # May you do good and not evil. |
7 # May you find forgiveness for yourself and forgive others. | 7 # May you find forgiveness for yourself and forgive others. |
8 # May you share freely, never taking more than you give. | 8 # May you share freely, never taking more than you give. |
9 # | 9 # |
10 #*********************************************************************** | 10 #*********************************************************************** |
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 # | 278 # |
279 # i The reference number of the test | 279 # i The reference number of the test |
280 # conf1 The conflict resolution algorithm on the UNIQUE constraint | 280 # conf1 The conflict resolution algorithm on the UNIQUE constraint |
281 # cmd An UPDATE command to execute against table t1 | 281 # cmd An UPDATE command to execute against table t1 |
282 # t0 True if there is an error from $cmd | 282 # t0 True if there is an error from $cmd |
283 # t1 Content of "b" column of t1 assuming no error in $cmd | 283 # t1 Content of "b" column of t1 assuming no error in $cmd |
284 # t2 Content of "x" column of t3 | 284 # t2 Content of "x" column of t3 |
285 # t3 Number of temporary files for tables | 285 # t3 Number of temporary files for tables |
286 # t4 Number of temporary files for statement journals | 286 # t4 Number of temporary files for statement journals |
287 # | 287 # |
288 # Update: Since temporary table files are now opened lazily, and none | 288 # Update (2007-08-21): Since temporary table files are now opened lazily, |
289 # of the following tests use large quantities of data, t3 is always 0. | 289 # and none of the following tests use large quantities of data, t3 is always 0. |
| 290 # |
| 291 # Update (2016-03-04): Subjournals now also open lazily, so t4 is also always 0. |
290 # | 292 # |
291 foreach {i conf1 cmd t0 t1 t2 t3 t4} { | 293 foreach {i conf1 cmd t0 t1 t2 t3 t4} { |
292 1 {} UPDATE 1 {6 7 8 9} 1 0 1 | 294 1 {} UPDATE 1 {6 7 8 9} 1 0 0 |
293 2 REPLACE UPDATE 0 {7 6 9} 1 0 0 | 295 2 REPLACE UPDATE 0 {7 6 9} 1 0 0 |
294 3 IGNORE UPDATE 0 {6 7 3 9} 1 0 0 | 296 3 IGNORE UPDATE 0 {6 7 3 9} 1 0 0 |
295 4 FAIL UPDATE 1 {6 7 3 4} 1 0 0 | 297 4 FAIL UPDATE 1 {6 7 3 4} 1 0 0 |
296 5 ABORT UPDATE 1 {1 2 3 4} 1 0 1 | 298 5 ABORT UPDATE 1 {1 2 3 4} 1 0 0 |
297 6 ROLLBACK UPDATE 1 {1 2 3 4} 0 0 0 | 299 6 ROLLBACK UPDATE 1 {1 2 3 4} 0 0 0 |
298 7 REPLACE {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 | 300 7 REPLACE {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 |
299 8 IGNORE {UPDATE OR REPLACE} 0 {7 6 9} 1 0 0 | 301 8 IGNORE {UPDATE OR REPLACE} 0 {7 6 9} 1 0 0 |
300 9 FAIL {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 | 302 9 FAIL {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 |
301 10 ABORT {UPDATE OR REPLACE} 0 {7 6 9} 1 0 0 | 303 10 ABORT {UPDATE OR REPLACE} 0 {7 6 9} 1 0 0 |
302 11 ROLLBACK {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 | 304 11 ROLLBACK {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 |
303 12 {} {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 | 305 12 {} {UPDATE OR IGNORE} 0 {6 7 3 9} 1 0 0 |
304 13 {} {UPDATE OR REPLACE} 0 {7 6 9} 1 0 0 | 306 13 {} {UPDATE OR REPLACE} 0 {7 6 9} 1 0 0 |
305 14 {} {UPDATE OR FAIL} 1 {6 7 3 4} 1 0 0 | 307 14 {} {UPDATE OR FAIL} 1 {6 7 3 4} 1 0 0 |
306 15 {} {UPDATE OR ABORT} 1 {1 2 3 4} 1 0 1 | 308 15 {} {UPDATE OR ABORT} 1 {1 2 3 4} 1 0 0 |
307 16 {} {UPDATE OR ROLLBACK} 1 {1 2 3 4} 0 0 0 | 309 16 {} {UPDATE OR ROLLBACK} 1 {1 2 3 4} 0 0 0 |
308 } { | 310 } { |
309 if {$t0} {set t1 {UNIQUE constraint failed: t1.a}} | 311 if {$t0} {set t1 {UNIQUE constraint failed: t1.a}} |
310 if {[info exists TEMP_STORE] && $TEMP_STORE==3} { | 312 if {[info exists TEMP_STORE] && $TEMP_STORE==3} { |
311 set t3 0 | 313 set t3 0 |
312 } else { | 314 } else { |
313 set t3 [expr {$t3+$t4}] | 315 set t3 [expr {$t3+$t4}] |
314 } | 316 } |
315 do_test conflict-6.$i { | 317 do_test conflict-6.$i { |
316 db close | 318 db close |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 do_test conflict-13.2 { | 819 do_test conflict-13.2 { |
818 execsql { | 820 execsql { |
819 REPLACE INTO t13 VALUES(3); | 821 REPLACE INTO t13 VALUES(3); |
820 COMMIT; | 822 COMMIT; |
821 SELECT * FROM t13; | 823 SELECT * FROM t13; |
822 } | 824 } |
823 } {1 3} | 825 } {1 3} |
824 | 826 |
825 | 827 |
826 finish_test | 828 finish_test |
OLD | NEW |