Annotation of embedaddon/sqlite3/test/where8m.test, revision 1.1.1.1

1.1       misho       1: # 2008 December 23
                      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: # This file implements regression tests for SQLite library. The focus
                     12: # is testing of where.c. More specifically, the focus is the optimization
                     13: # of WHERE clauses that feature the OR operator.
                     14: #
                     15: # $Id: where8m.test,v 1.3 2009/06/05 17:09:12 drh Exp $
                     16: 
                     17: set testdir [file dirname $argv0]
                     18: source $testdir/tester.tcl
                     19: 
                     20: source $testdir/malloc_common.tcl
                     21: 
                     22: do_malloc_test where8m-1 -sqlprep {
                     23:   CREATE TABLE t1(a, b, c);
                     24:   CREATE INDEX i1 ON t1(a);
                     25:   CREATE INDEX i2 ON t1(b);
                     26: } -sqlbody {
                     27:   SELECT c FROM t1
                     28:   WHERE 
                     29:     a = 2 OR b = 'three' OR a = 4 OR b = 'five' OR a = 6 OR
                     30:     b = 'seven' OR a = 8 OR b = 'nine' OR a = 10
                     31:   ORDER BY rowid;
                     32: 
                     33:   SELECT c FROM t1 WHERE
                     34:     a = 1 OR a = 2 OR a = 3 OR a = 4 OR a = 5 OR a = 6;
                     35: 
                     36:   SELECT c FROM t1 WHERE
                     37:     a BETWEEN 1 AND 3  AND b < 5 AND b > 2 AND c = 4;
                     38: }
                     39: 
                     40: do_malloc_test where8m-2 -tclprep {
                     41:   db eval {
                     42:     BEGIN;
                     43:     CREATE TABLE t1(a, b, c);
                     44:     CREATE INDEX i1 ON t1(a);
                     45:     CREATE INDEX i2 ON t1(b);
                     46:   }
                     47:   for {set i 0} {$i < 1000} {incr i} {
                     48:     set ii [expr $i*$i]
                     49:     set iii [expr $i*$i]
                     50:     db eval { INSERT INTO t1 VALUES($i, $ii, $iii) }
                     51:   }
                     52:   db eval COMMIT
                     53: } -sqlbody {
                     54:   SELECT count(*) FROM t1 WHERE a BETWEEN 5 AND 995 OR b BETWEEN 5 AND 900000;
                     55: }
                     56: 
                     57: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>