github.com/jdgcs/sqlite3@v1.12.1-0.20210908114423-bc5f96e4dd51/testdata/tcl/mallocJ.test (about)

     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.6 2009/01/09 02:49:32 drh Exp $
    16  
    17  set testdir [file dirname $argv0]
    18  source $testdir/tester.tcl
    19  source $testdir/malloc_common.tcl
    20  
    21  ifcapable {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
    42  do_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 t1
    48      UNION
    49      SELECT b, a, 'xyz' FROM t1
    50      ORDER BY 2, 3;
    51  }
    52  
    53  # ticket #3478
    54  do_malloc_test mallocJ-3 -sqlbody {
    55    EXPLAIN COMMIT
    56  }
    57  
    58  # ticket #3485
    59  do_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 1
    64  }
    65  
    66  # coverage testing
    67  do_malloc_test mallocJ-5 -sqlprep {
    68    CREATE TABLE t1(["a"]);
    69  } -sqlbody {
    70    SELECT * FROM t1
    71  }
    72  
    73  finish_test