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

1.1     ! misho       1: # 2002 May 24
        !             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.
        !            12: #
        !            13: # This file implements tests for joins, including outer joins, where
        !            14: # there are a large number of tables involved in the join.
        !            15: #
        !            16: # $Id: join3.test,v 1.4 2005/01/19 23:24:51 drh Exp $
        !            17: 
        !            18: set testdir [file dirname $argv0]
        !            19: source $testdir/tester.tcl
        !            20: 
        !            21: # An unrestricted join
        !            22: #
        !            23: catch {unset ::result}
        !            24: set result {}
        !            25: for {set N 1} {$N<=$bitmask_size} {incr N} {
        !            26:   lappend result $N
        !            27:   do_test join3-1.$N {
        !            28:     execsql "CREATE TABLE t${N}(x);"
        !            29:     execsql "INSERT INTO t$N VALUES($N)"
        !            30:     set sql "SELECT * FROM t1"
        !            31:     for {set i 2} {$i<=$N} {incr i} {append sql ", t$i"}
        !            32:     execsql $sql
        !            33:   } $result
        !            34: }
        !            35: 
        !            36: # Joins with a comparison
        !            37: #
        !            38: set result {}
        !            39: for {set N 1} {$N<=$bitmask_size} {incr N} {
        !            40:   lappend result $N
        !            41:   do_test join3-2.$N {
        !            42:     set sql "SELECT * FROM t1"
        !            43:     for {set i 2} {$i<=$N} {incr i} {append sql ", t$i"}
        !            44:     set sep WHERE
        !            45:     for {set i 1} {$i<$N} {incr i} {
        !            46:       append sql " $sep t[expr {$i+1}].x==t$i.x+1"
        !            47:       set sep AND
        !            48:     }
        !            49:     execsql $sql
        !            50:   } $result
        !            51: }
        !            52: 
        !            53: # Error of too many tables in the join
        !            54: #
        !            55: do_test join3-3.1 {
        !            56:   set sql "SELECT * FROM t1 AS t0, t1"
        !            57:   for {set i 2} {$i<=$bitmask_size} {incr i} {append sql ", t$i"}
        !            58:   catchsql $sql
        !            59: } [list 1 "at most $bitmask_size tables in a join"]
        !            60: 
        !            61: 
        !            62: finish_test

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