123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- # 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 WHERE clause analysis.
- #
- # $Id: mallocK.test,v 1.3 2009/01/08 21:00:03 drh Exp $
- set testdir [file dirname $argv0]
- source $testdir/tester.tcl
- source $testdir/malloc_common.tcl
- set sql {SELECT * FROM t1, t2 WHERE (a=1 OR a=2)}
- for {set x 1} {$x<5} {incr x} {
- append sql " AND b=y"
- do_malloc_test mallocK-1.$x -sqlbody $sql -sqlprep {
- CREATE TABLE t1(a,b);
- CREATE TABLE t2(x,y);
- }
- }
- set sql {SELECT * FROM t1 WHERE a GLOB 'xyz*' AND (a=1 OR a=2)}
- for {set x 1} {$x<5} {incr x} {
- append sql " AND b!=$x"
- do_malloc_test mallocK-2.$x -sqlbody $sql -sqlprep {
- CREATE TABLE t1(a,b);
- }
- }
- set sql {SELECT * FROM t1 WHERE a BETWEEN 5 AND 10}
- for {set x 1} {$x<5} {incr x} {
- append sql " AND b=$x"
- do_malloc_test mallocK-3.$x -sqlbody $sql -sqlprep {
- CREATE TABLE t1(a,b);
- }
- }
- set sql {SELECT * FROM t1 WHERE b=0}
- for {set x 1} {$x<5} {incr x} {
- set term "(b=$x"
- for {set y 0} {$y<$x} {incr y} {
- append term " AND a!=$y"
- }
- append sql " OR $term)"
- do_malloc_test mallocK-4.$x -sqlbody $sql -sqlprep {
- CREATE TABLE t1(a,b);
- }
- }
- ifcapable vtab {
- set sql {SELECT * FROM t2 WHERE a MATCH 'xyz'}
- for {set x 1} {$x<5} {incr x} {
- append sql " AND b!=$x"
- do_malloc_test mallocK-5.$x -sqlbody $sql -tclprep {
- register_echo_module [sqlite3_connection_pointer db]
- db eval {
- CREATE TABLE t1(a,b);
- CREATE VIRTUAL TABLE t2 USING echo(t1);
- }
- }
- }
- }
- finish_test
|