wasCSharpSQLite – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 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 |