1# 2008 August 01 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# This test script checks malloc failures in LIMIT operations for 13# UPDATE/DELETE statements. 14# 15# $Id: mallocJ.test,v 1.3 2008/11/04 14:25:06 drh Exp $ 16 17set testdir [file dirname $argv0] 18source $testdir/tester.tcl 19source $testdir/malloc_common.tcl 20 21ifcapable {update_delete_limit} { 22 23 do_malloc_test mallocJ-1 -sqlprep { 24 DROP TABLE IF EXISTS t1; 25 CREATE TABLE t1(x int, y int); 26 INSERT INTO t1 VALUES(1,1); 27 INSERT INTO t1 VALUES(1,2); 28 INSERT INTO t1 VALUES(1,2); 29 INSERT INTO t1 VALUES(2,1); 30 INSERT INTO t1 VALUES(2,2); 31 INSERT INTO t1 VALUES(2,3); 32 } -sqlbody { 33 UPDATE t1 SET x=1 ORDER BY y LIMIT 2 OFFSET 2; 34 UPDATE t1 SET x=2 WHERE y=1 ORDER BY y LIMIT 2 OFFSET 2; 35 DELETE FROM t1 WHERE x=1 ORDER BY y LIMIT 2 OFFSET 2; 36 DELETE FROM t1 ORDER BY y LIMIT 2 OFFSET 2; 37 } 38 39} 40 41# ticket #3467 42do_malloc_test mallocJ-2 -sqlprep { 43 CREATE TABLE t1(a,b); 44 INSERT INTO t1 VALUES(1,2); 45} -sqlbody { 46 SELECT a, b, 'abc' FROM t1 47 UNION 48 SELECT b, a, 'xyz' FROM t1 49 ORDER BY 2, 3; 50} 51 52# ticket #3478 53do_malloc_test mallocJ-3 -sqlbody { 54 EXPLAIN COMMIT 55} 56 57finish_test 58