Annotation of embedaddon/sqlite3/test/subquery2.test, revision 1.1

1.1     ! misho       1: # 2011 September 16
        !             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
        !            12: # focus of this script is testing correlated subqueries
        !            13: #
        !            14: #
        !            15: 
        !            16: set testdir [file dirname $argv0]
        !            17: source $testdir/tester.tcl
        !            18: 
        !            19: ifcapable !subquery {
        !            20:   finish_test
        !            21:   return
        !            22: }
        !            23: 
        !            24: do_test subquery2-1.1 {
        !            25:   execsql {
        !            26:     BEGIN;
        !            27:     CREATE TABLE t1(a,b);
        !            28:     INSERT INTO t1 VALUES(1,2);
        !            29:     INSERT INTO t1 VALUES(3,4);
        !            30:     INSERT INTO t1 VALUES(5,6);
        !            31:     INSERT INTO t1 VALUES(7,8);
        !            32:     CREATE TABLE t2(c,d);
        !            33:     INSERT INTO t2 VALUES(1,1);
        !            34:     INSERT INTO t2 VALUES(3,9);
        !            35:     INSERT INTO t2 VALUES(5,25);
        !            36:     INSERT INTO t2 VALUES(7,49);
        !            37:     CREATE TABLE t3(e,f);
        !            38:     INSERT INTO t3 VALUES(1,1);
        !            39:     INSERT INTO t3 VALUES(3,27);
        !            40:     INSERT INTO t3 VALUES(5,125);
        !            41:     INSERT INTO t3 VALUES(7,343);
        !            42:     COMMIT;
        !            43:   }
        !            44:   execsql {
        !            45:     SELECT a FROM t1
        !            46:      WHERE b IN (SELECT x+1 FROM (SELECT DISTINCT f/(a*a) AS x FROM t3));
        !            47:   }
        !            48: } {1 3 5 7}
        !            49: do_test subquery2-1.2 {
        !            50:   execsql {
        !            51:     CREATE INDEX t1b ON t1(b);
        !            52:     SELECT a FROM t1
        !            53:      WHERE b IN (SELECT x+1 FROM (SELECT DISTINCT f/(a*a) AS x FROM t3));
        !            54:   }
        !            55: } {1 3 5 7}
        !            56: 
        !            57: do_test subquery2-1.11 {
        !            58:   execsql {
        !            59:     SELECT a FROM t1
        !            60:      WHERE +b=(SELECT x+1 FROM (SELECT DISTINCT f/(a*a) AS x FROM t3));
        !            61:   }
        !            62: } {1}
        !            63: do_test subquery2-1.12 {
        !            64:   execsql {
        !            65:     SELECT a FROM t1
        !            66:      WHERE b=(SELECT x+1 FROM (SELECT DISTINCT f/(a*a) AS x FROM t3));
        !            67:   }
        !            68: } {1}
        !            69: 
        !            70: do_test subquery2-1.21 {
        !            71:   execsql {
        !            72:     SELECT a FROM t1
        !            73:      WHERE +b=(SELECT x+1 FROM 
        !            74:                  (SELECT DISTINCT f/d AS x FROM t2 JOIN t3 ON d*a=f))
        !            75:   }
        !            76: } {1 3 5 7}
        !            77: do_test subquery2-1.22 {
        !            78:   execsql {
        !            79:     SELECT a FROM t1
        !            80:      WHERE b=(SELECT x+1 FROM 
        !            81:                  (SELECT DISTINCT f/d AS x FROM t2 JOIN t3 ON d*a=f))
        !            82:   }
        !            83: } {1 3 5 7}
        !            84: 
        !            85: 
        !            86: finish_test

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