AryaWu/sqlite
0
1# 2008 August 012#3# The author disclaims copyright to this source code. In place of4# 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.6 2009/01/09 02:49:32 drh Exp $16 17set testdir [file dirname $argv0]18source $testdir/tester.tcl19source $testdir/malloc_common.tcl20 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 #346742do_malloc_test mallocJ-2 -sqlprep {43 CREATE TABLE t1(a,b);44 INSERT INTO t1 VALUES(1,2);45 PRAGMA vdbe_trace=ON;46} -sqlbody {47 SELECT a, b, 'abc' FROM t148 UNION49 SELECT b, a, 'xyz' FROM t150 ORDER BY 2, 3;51}52 53# ticket #347854do_malloc_test mallocJ-3 -sqlbody {55 EXPLAIN COMMIT56}57 58# ticket #348559do_malloc_test mallocJ-4 -sqlprep {60 CREATE TABLE t1(a,b,c);61 CREATE TABLE t2(x,y,z);62} -sqlbody {63 SELECT * FROM (SELECT a,b FROM t1 UNION ALL SELECT x, y FROM t2) ORDER BY 164}65 66# coverage testing67do_malloc_test mallocJ-5 -sqlprep {68 CREATE TABLE t1(["a"]);69} -sqlbody {70 SELECT * FROM t171}72 73finish_test74 