File: mallocK.test

package info (click to toggle)
db5.3 5.3.28%2Bdfsg1-0.5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 158,360 kB
  • sloc: ansic: 448,411; java: 111,824; tcl: 80,544; sh: 44,326; cs: 33,697; cpp: 21,604; perl: 14,557; xml: 10,799; makefile: 4,077; yacc: 1,003; awk: 965; sql: 801; erlang: 342; python: 216; php: 24; asm: 14
file content (72 lines) | stat: -rw-r--r-- 1,854 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# 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