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>