From 7bb481fda9ecb134804b49c2ce77ca28f7eea583 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Fri, 30 Mar 2012 20:42:12 -0400 Subject: Imported Upstream version 2.0.3 --- test/mallocJ.test | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 test/mallocJ.test (limited to 'test/mallocJ.test') diff --git a/test/mallocJ.test b/test/mallocJ.test new file mode 100644 index 0000000..e63f6b7 --- /dev/null +++ b/test/mallocJ.test @@ -0,0 +1,73 @@ +# 2008 August 01 +# +# 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. +# +#*********************************************************************** +# +# This test script checks malloc failures in LIMIT operations for +# UPDATE/DELETE statements. +# +# $Id: mallocJ.test,v 1.6 2009/01/09 02:49:32 drh Exp $ + +set testdir [file dirname $argv0] +source $testdir/tester.tcl +source $testdir/malloc_common.tcl + +ifcapable {update_delete_limit} { + + do_malloc_test mallocJ-1 -sqlprep { + DROP TABLE IF EXISTS t1; + CREATE TABLE t1(x int, y int); + INSERT INTO t1 VALUES(1,1); + INSERT INTO t1 VALUES(1,2); + INSERT INTO t1 VALUES(1,2); + INSERT INTO t1 VALUES(2,1); + INSERT INTO t1 VALUES(2,2); + INSERT INTO t1 VALUES(2,3); + } -sqlbody { + UPDATE t1 SET x=1 ORDER BY y LIMIT 2 OFFSET 2; + UPDATE t1 SET x=2 WHERE y=1 ORDER BY y LIMIT 2 OFFSET 2; + DELETE FROM t1 WHERE x=1 ORDER BY y LIMIT 2 OFFSET 2; + DELETE FROM t1 ORDER BY y LIMIT 2 OFFSET 2; + } + +} + +# ticket #3467 +do_malloc_test mallocJ-2 -sqlprep { + CREATE TABLE t1(a,b); + INSERT INTO t1 VALUES(1,2); + PRAGMA vdbe_trace=ON; +} -sqlbody { + SELECT a, b, 'abc' FROM t1 + UNION + SELECT b, a, 'xyz' FROM t1 + ORDER BY 2, 3; +} + +# ticket #3478 +do_malloc_test mallocJ-3 -sqlbody { + EXPLAIN COMMIT +} + +# ticket #3485 +do_malloc_test mallocJ-4 -sqlprep { + CREATE TABLE t1(a,b,c); + CREATE TABLE t2(x,y,z); +} -sqlbody { + SELECT * FROM (SELECT a,b FROM t1 UNION ALL SELECT x, y FROM t2) ORDER BY 1 +} + +# coverage testing +do_malloc_test mallocJ-5 -sqlprep { + CREATE TABLE t1(["a"]); +} -sqlbody { + SELECT * FROM t1 +} + +finish_test -- cgit v1.2.3