Annotation of embedaddon/sqlite3/test/subquery2.test, revision 1.1.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>