Modify test scripts to work when SQLITE_OMIT_SUBQUERY (but no other OMIT macros) is defined. (CVS 2252)

FossilOrigin-Name: d4e19efcef68d834c55c7d496cdb3696d63a31a2
This commit is contained in:
danielk1977 2005-01-21 04:25:47 +00:00
parent 3e8c37e7f8
commit e61b9f4f3c
16 changed files with 466 additions and 428 deletions

View File

@ -1,5 +1,5 @@
C Modify\stest\sscripts\sto\swork\swhen\sSQLITE_OMIT_SUBQUERY\s(along\swith\sother\sOMIT\smacros)\sis\sdefined.\s(CVS\s2251)
D 2005-01-21T03:12:15
C Modify\stest\sscripts\sto\swork\swhen\sSQLITE_OMIT_SUBQUERY\s(but\sno\sother\sOMIT\smacros)\sis\sdefined.\s(CVS\s2252)
D 2005-01-21T04:25:47
F Makefile.in ffd81f5e926d40b457071b4de8d7c1fa18f39b5a
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
@ -85,7 +85,7 @@ F src/where.c f4127cc2633ee0f74790ab7f09f5af832489e44e
F tclinstaller.tcl 36478c3bbfc5b93ceac42d94e3c736937b808432
F test/all.test 7f0988442ab811dfa41793b5b550f5828ce316f3
F test/alter.test 95c57a4f461fa81293e0dccef7f83889aadb169a
F test/attach.test f39069efd4394422798f249df9a31489aa941ee1
F test/attach.test 660ed5ed29e864fc6c1710845e939df79467ed34
F test/attach2.test eeb987770f4dbe68bd29afdbc2e8cff0142e6eb5
F test/attach3.test c05c70b933afbde0901dab9da3e66ee842c09f38
F test/auth.test 559e0816b8100740624ebb0ab7aab05f5c92831c
@ -111,7 +111,7 @@ F test/collate1.test f79736d2ebf5492167ee4d1f4ab4c09dda776b03
F test/collate2.test 224a632ba04907c049804b08162efd234aa7871f
F test/collate3.test a5ff693872a915fc6267956673d20915485c1829
F test/collate4.test b8668612691c4dcf90f67a8df1eeb1544e7fdaf8
F test/collate5.test 7999fb3122386bae38acd8ccd61e0b7c5a30e289
F test/collate5.test 581775b94604b7435dc6a5c6e72fbbf7d69e3830
F test/collate6.test 6c9470d1606ee3e564675b229653e320c49ec638
F test/conflict.test c5b849b01cfbe0a4f63a90cba6f68e2fe3a75f87
F test/corrupt.test 916977f0255c81217a44abe0ac01b8508f65dcbf
@ -124,7 +124,7 @@ F test/delete.test fc29491f6a7ac899ce29f4549a104809e245d9a6
F test/delete2.test e382b6a97787197eb8b93dd4ccd37797c3725ea3
F test/diskfull.test e2f6cfd868713ead06dc82b84a4938e868128fc0
F test/enc.test 7a03417a1051fe8bc6c7641cf4c8c3f7e0066d52
F test/enc2.test 6d1a2650e9da43eab499d18ca694a0cb6ec69dee
F test/enc2.test e5e95be36676df5ba7c4c4c837cabcdf9fe01f5b
F test/enc3.test f6a5f0b7b7f3a88f030d3143729b87cd5c86d837
F test/expr.test b2ce68f4b3298dd06867468b770ca2604068014e
F test/fkey1.test 81bb13caaa78f58d7d191d7f535529f7c91d821a
@ -139,23 +139,23 @@ F test/insert3.test fa7cb5b01709a1bca3e28c82c80c1d44386b3676
F test/interrupt.test 5b4d8389e6cf2d01b94f87cfd02d9df1073bfb2d
F test/intpkey.test b57cf5236fde1bd8cbc1388fa0c91908f6fd9194
F test/ioerr.test fb507c2596bb07aeaff257cb48fcc93340159f0c
F test/join.test a61c9328ef0b2b573e1ea803882cb947b870d131
F test/join.test 95ee10ed1a6158020f4374016594303d4f75ee76
F test/join2.test f2171c265e57ee298a27e57e7051d22962f9f324
F test/join3.test 6f0c774ff1ba0489e6c88a3e77b9d3528fb4fda0
F test/join4.test cc6cafe85e11aacacd0abcd247a46bed251308f8
F test/lastinsert.test b6a1db3e1ce2d3f0d6afe99d445084f543b6feaa
F test/laststmtchanges.test 07cbdabc52407c29e40abc25050f2434f044a6b1
F test/limit.test 9913f3cc797841098209e09f9fb259e5198ad2da
F test/limit.test f833e610ab26c618487c36f62baf6458f9284ce6
F test/lock.test a19aab9a963273fe61c1058e3d1b648d6a0a2425
F test/lock2.test 59c3dd7d9b24d1bf7ec91b2d1541c37e97939d5f
F test/lock3.test 615111293cf32aa2ed16d01c6611737651c96fb9
F test/main.test a60a1d234b5f5784097973bd395514ca56003ef1
F test/malloc.test 180f7f7e19aca748ec923ab4ada6a2976b781722
F test/memdb.test 532aac7128a3da494cddc4461d76c6e3988f771b
F test/memdb.test 1860e060be810bf0775bc57408a5b7c4954bcaea
F test/memleak.test c0af09191af44a7501ec2494fdd079ac538a256c
F test/minmax.test b723a302c8c9bfa9fa417ba6f2f43c663bd8479e
F test/misc1.test e4d9edd525d859932ac70d3fad60fa1303c6f6e5
F test/misc2.test 51f45f56af2d7d38238dc3d38eeb6342a2f4bb09
F test/minmax.test 9429a06f1f93acf76fcacafd17160a4392e88526
F test/misc1.test ff817d3740458884fea535b44821ec7e84700457
F test/misc2.test fc052267d5178367f955538ae34aae1b2f696a92
F test/misc3.test 7bd937e2c62bcc6be71939faf068d506467b1e03
F test/misc4.test 145e301fdf10bd47059132db932523814201dc2a
F test/misuse.test 600738a8e611989bc5f544303f5e311c5f228084
@ -174,10 +174,10 @@ F test/reindex.test 3552c6b944a3fab28cfd3049c04c65cb79419757
F test/rollback.test 94cd981ee3a627d9f6466f69dcf1f7dbfe695d7a
F test/rowid.test 040a3bef06f970c45f5fcd14b2355f7f4d62f0cf
F test/safety.test 907b64fee719554a3622853812af3886fddbbb4f
F test/select1.test bb62bfcd4f3cbba385185d0c0929c3408c43b00a
F test/select1.test ad700a2a1c325a23a7206ad4d189e33917de526f
F test/select2.test 91a2225926039b0d1687840735c284dbbf89f0bc
F test/select3.test 9de435aa84fc406708cd8dc1b1d60e7f27cea685
F test/select4.test 1ae6f2bd6177d4428df8644eb95d09f4568fb149
F test/select4.test c239f516aa31f42f2ef7c6d7cd01105f08f934ca
F test/select5.test 94db800bbeff2e426c0175e07f7a71d4617853b5
F test/select6.test ba1b4dd18a85bf9070c6df8d933ac4cfcacea6a6
F test/select7.test 63fb77d50f4dfdac4d4115842f083d2eb33a198c
@ -194,8 +194,8 @@ F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
F test/threadtest2.c 97a830d53c24c42290501fdfba4a6e5bdd34748b
F test/trace.test a54fa8df0d01cf827289a7659d78959e8fd2f955
F test/trans.test 29645b344d2b9b6792793562b12340177ddd8f96
F test/trigger1.test 98239dd6a8baf6817a028aa8d41c7da17c6824b1
F test/trigger2.test 534390be509127859fee7c23018f03b9bf21a88f
F test/trigger1.test 9db1a7c91930baa2dc60ce72c7e969900bf2ae8a
F test/trigger2.test 52ae91097801291771da9db60be60a65e1360a65
F test/trigger3.test 9102fd3933db294dc654b5aee9edfe9e94f2b9e2
F test/trigger4.test e7c0812b14750754602468f15495260e8c6625e0
F test/trigger5.test 619391a3e9fc194081d22cefd830d811e7badf83
@ -207,7 +207,7 @@ F test/update.test 7669ca789d62c258b678e8aa7a22a57eac10f2cf
F test/utf16.test 459c2f5ab80c60092c603630a348c32d6e59c558
F test/vacuum.test f18eccdee5b538d46298c64d6a060cfbf97bbc23
F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102
F test/view.test 3f96df86f1c61ee850b945204683773bbbb8643e
F test/view.test 5aac4c79eb86e297a53c8c4a2543dc193034e66d
F test/where.test ffb790dfda75d977bae7a1f5830351623f76861b
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
F tool/lemon.c eb3b2bbefc0d442fa459f4f1924e598e804eca9c
@ -271,7 +271,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl 3e522a06ad41992023c80ca29a048ae2331ca5bd
P de8ee3a29e1aafcfa05841cb44da0a05f0579596
R 617b6e607d17d790bf84f6e775c7d625
P bb0254ab14417f0ab40f10f37cb63a60507f070a
R 2ca411fe266afa1cd45463edd41babae
U danielk1977
Z 3efedbe6a0ea0314bb3302f4acfcc917
Z f5d13d8f7ccd862886011c686ad3e5a3

View File

@ -1 +1 @@
bb0254ab14417f0ab40f10f37cb63a60507f070a
d4e19efcef68d834c55c7d496cdb3696d63a31a2

View File

@ -12,7 +12,7 @@
# focus of this script is testing the ATTACH and DETACH commands
# and related functionality.
#
# $Id: attach.test,v 1.32 2004/11/23 10:13:03 danielk1977 Exp $
# $Id: attach.test,v 1.33 2005/01/21 04:25:47 danielk1977 Exp $
#
set testdir [file dirname $argv0]
@ -613,48 +613,50 @@ do_test attach-5.4 {
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.5 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT 'no-op' || (SELECT * FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.6 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT 'no-op' FROM t1 WHERE x<(SELECT min(x) FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.7 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT 'no-op' FROM t1 GROUP BY 1 HAVING x<(SELECT min(x) FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.7 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT max(1,x,(SELECT min(x) FROM temp.t6)) FROM t1;
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.8 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
INSERT INTO t1 VALUES((SELECT min(x) FROM temp.t6),5);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.9 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
DELETE FROM t1 WHERE x<(SELECT min(x) FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
ifcapable subquery {
do_test attach-5.5 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT 'no-op' || (SELECT * FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.6 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT 'no-op' FROM t1 WHERE x<(SELECT min(x) FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.7 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT 'no-op' FROM t1 GROUP BY 1 HAVING x<(SELECT min(x) FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.7 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
SELECT max(1,x,(SELECT min(x) FROM temp.t6)) FROM t1;
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.8 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
INSERT INTO t1 VALUES((SELECT min(x) FROM temp.t6),5);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
do_test attach-5.9 {
catchsql {
CREATE TRIGGER r5 AFTER INSERT ON t5 BEGIN
DELETE FROM t1 WHERE x<(SELECT min(x) FROM temp.t6);
END;
} db2
} {1 {trigger r5 cannot reference objects in database temp}}
} ;# endif subquery
} ;# endif trigger
# Check to make sure we get a sensible error if unable to open

View File

@ -14,7 +14,7 @@
# SELECT statements that use user-defined collation sequences. Also
# GROUP BY clauses that use user-defined collation sequences.
#
# $Id: collate5.test,v 1.2 2004/11/22 13:35:42 danielk1977 Exp $
# $Id: collate5.test,v 1.3 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -181,11 +181,10 @@ do_test collate5-2.4.0 {
foreach ii $::lens {
execsql "INSERT INTO collate5t3 VALUES($ii, '[string repeat a $ii]');"
}
execsql {
expr [llength [execsql {
COMMIT;
SELECT count(*) FROM
(SELECT * FROM collate5t3 UNION SELECT * FROM collate5t3);
}
SELECT * FROM collate5t3 UNION SELECT * FROM collate5t3;
}]] / 2
} [llength $::lens]
do_test collate5-2.4.1 {
execsql {DROP TABLE collate5t3;}

View File

@ -13,7 +13,7 @@
# various suported unicode encodings (UTF-8, UTF-16, UTF-16le and
# UTF-16be).
#
# $Id: enc2.test,v 1.19 2004/11/14 04:04:18 drh Exp $
# $Id: enc2.test,v 1.20 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -102,11 +102,13 @@ do_test $t.5 {
SELECT * FROM t1 WHERE a = 'four';
}
} {four IV 4}
do_test $t.6 {
execsql {
SELECT * FROM t1 WHERE a IN ('one', 'two');
}
} {one I 1 two II 2}
ifcapable subquery {
do_test $t.6 {
execsql {
SELECT * FROM t1 WHERE a IN ('one', 'two');
}
} {one I 1 two II 2}
}
# Now check that we can retrieve data in both UTF-16 and UTF-8
do_test $t.7 {

View File

@ -12,7 +12,7 @@
#
# This file implements tests for joins, including outer joins.
#
# $Id: join.test,v 1.16 2005/01/21 03:12:16 danielk1977 Exp $
# $Id: join.test,v 1.17 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -374,12 +374,14 @@ do_test join-8.1 {
SELECT * FROM t9 LEFT JOIN v10_11 ON( a=x );
}
} {1 11 1 111 2 22 {} {}}
do_test join-8.2 {
execsql {
SELECT * FROM t9 LEFT JOIN (SELECT x, q FROM t10, t11 WHERE t10.y=t11.p)
ON( a=x);
}
} {1 11 1 111 2 22 {} {}}
ifcapable subquery {
do_test join-8.2 {
execsql {
SELECT * FROM t9 LEFT JOIN (SELECT x, q FROM t10, t11 WHERE t10.y=t11.p)
ON( a=x);
}
} {1 11 1 111 2 22 {} {}}
}
do_test join-8.3 {
execsql {
SELECT * FROM v10_11 LEFT JOIN t9 ON( a=x );
@ -407,20 +409,25 @@ do_test join-9.1 {
CREATE TABLE t13(b,c);
INSERT INTO t13 VALUES(22,222);
COMMIT;
}
} {}
ifcapable subquery {
do_test join-9.1.1 {
SELECT * FROM t12 NATURAL LEFT JOIN t13
EXCEPT
SELECT * FROM t12 NATURAL LEFT JOIN (SELECT * FROM t13 WHERE b>0);
}
} {}
} {}
}
ifcapable view {
do_test join-9.2 {
execsql {
CREATE VIEW v13 AS SELECT * FROM t13 WHERE b>0;
SELECT * FROM t12 NATURAL LEFT JOIN t13
EXCEPT
SELECT * FROM t12 NATURAL LEFT JOIN v13;
}
} {}
do_test join-9.2 {
execsql {
CREATE VIEW v13 AS SELECT * FROM t13 WHERE b>0;
SELECT * FROM t12 NATURAL LEFT JOIN t13
EXCEPT
SELECT * FROM t12 NATURAL LEFT JOIN v13;
}
} {}
} ;# ifcapable view
} ;# ifcapable compound

View File

@ -12,7 +12,7 @@
# focus of this file is testing the LIMIT ... OFFSET ... clause
# of SELECT statements.
#
# $Id: limit.test,v 1.22 2005/01/21 03:12:16 danielk1977 Exp $
# $Id: limit.test,v 1.23 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -65,13 +65,13 @@ do_test limit-1.7 {
execsql {SELECT * FROM t1 AS a, t1 AS b ORDER BY a.x, b.x LIMIT 5 OFFSET 32}
} {1 5 0 5 1 5 1 5 1 5 2 5 1 5 3 5 1 5 4 5}
ifcapable view {
do_test limit-2.1 {
execsql {
CREATE VIEW v1 AS SELECT * FROM t1 LIMIT 2;
SELECT count(*) FROM (SELECT * FROM v1);
}
} 2
ifcapable {view && subquery} {
do_test limit-2.1 {
execsql {
CREATE VIEW v1 AS SELECT * FROM t1 LIMIT 2;
SELECT count(*) FROM (SELECT * FROM v1);
}
} 2
} ;# ifcapable view
do_test limit-2.2 {
execsql {

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script is in-memory database backend.
#
# $Id: memdb.test,v 1.12 2004/11/22 13:35:42 danielk1977 Exp $
# $Id: memdb.test,v 1.13 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
@ -348,27 +348,29 @@ do_test memdb-6.15 {
}
} {}
do_test memdb-7.1 {
execsql {
CREATE TABLE t6(x);
INSERT INTO t6 VALUES(1);
INSERT INTO t6 SELECT x+1 FROM t6;
INSERT INTO t6 SELECT x+2 FROM t6;
INSERT INTO t6 SELECT x+4 FROM t6;
INSERT INTO t6 SELECT x+8 FROM t6;
INSERT INTO t6 SELECT x+16 FROM t6;
INSERT INTO t6 SELECT x+32 FROM t6;
INSERT INTO t6 SELECT x+64 FROM t6;
INSERT INTO t6 SELECT x+128 FROM t6;
SELECT count(*) FROM (SELECT DISTINCT x FROM t6);
ifcapable subquery {
do_test memdb-7.1 {
execsql {
CREATE TABLE t6(x);
INSERT INTO t6 VALUES(1);
INSERT INTO t6 SELECT x+1 FROM t6;
INSERT INTO t6 SELECT x+2 FROM t6;
INSERT INTO t6 SELECT x+4 FROM t6;
INSERT INTO t6 SELECT x+8 FROM t6;
INSERT INTO t6 SELECT x+16 FROM t6;
INSERT INTO t6 SELECT x+32 FROM t6;
INSERT INTO t6 SELECT x+64 FROM t6;
INSERT INTO t6 SELECT x+128 FROM t6;
SELECT count(*) FROM (SELECT DISTINCT x FROM t6);
}
} {256}
for {set i 1} {$i<=256} {incr i} {
do_test memdb-7.2.$i {
execsql "DELETE FROM t6 WHERE x=\
(SELECT x FROM t6 ORDER BY random() LIMIT 1)"
execsql {SELECT count(*) FROM t6}
} [expr {256-$i}]
}
} {256}
for {set i 1} {$i<=256} {incr i} {
do_test memdb-7.2.$i {
execsql "DELETE FROM t6 WHERE x=\
(SELECT x FROM t6 ORDER BY random() LIMIT 1)"
execsql {SELECT count(*) FROM t6}
} [expr {256-$i}]
}
} ;# ifcapable memorydb

View File

@ -13,7 +13,7 @@
# aggregate min() and max() functions and which are handled as
# as a special case.
#
# $Id: minmax.test,v 1.15 2005/01/21 03:12:16 danielk1977 Exp $
# $Id: minmax.test,v 1.16 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -134,27 +134,27 @@ do_test minmax-3.3 {
set sqlite_search_count
} {0}
ifcapable compound {
do_test minmax-4.1 {
execsql {
SELECT coalesce(min(x+0),-1), coalesce(max(x+0),-1) FROM
(SELECT * FROM t1 UNION SELECT NULL as 'x', NULL as 'y')
}
} {1 20}
do_test minmax-4.2 {
execsql {
SELECT y, sum(x) FROM
(SELECT null, y+1 FROM t1 UNION SELECT * FROM t1)
GROUP BY y ORDER BY y;
}
} {1 1.0 2 5.0 3 22.0 4 92.0 5 90.0 6 0.0}
do_test minmax-4.3 {
execsql {
SELECT y, count(x), count(*) FROM
(SELECT null, y+1 FROM t1 UNION SELECT * FROM t1)
GROUP BY y ORDER BY y;
}
} {1 1 1 2 2 3 3 4 5 4 8 9 5 5 6 6 0 1}
ifcapable {compound && subquery} {
do_test minmax-4.1 {
execsql {
SELECT coalesce(min(x+0),-1), coalesce(max(x+0),-1) FROM
(SELECT * FROM t1 UNION SELECT NULL as 'x', NULL as 'y')
}
} {1 20}
do_test minmax-4.2 {
execsql {
SELECT y, sum(x) FROM
(SELECT null, y+1 FROM t1 UNION SELECT * FROM t1)
GROUP BY y ORDER BY y;
}
} {1 1.0 2 5.0 3 22.0 4 92.0 5 90.0 6 0.0}
do_test minmax-4.3 {
execsql {
SELECT y, count(x), count(*) FROM
(SELECT null, y+1 FROM t1 UNION SELECT * FROM t1)
GROUP BY y ORDER BY y;
}
} {1 1 1 2 2 3 3 4 5 4 8 9 5 5 6 6 0 1}
} ;# ifcapable compound
# Make sure the min(x) and max(x) optimizations work on empty tables
@ -279,22 +279,22 @@ do_test minmax-8.2 {
# Ticket #658: Test the min()/max() optimization when the FROM clause
# is a subquery.
#
ifcapable compound {
do_test minmax-9.1 {
execsql {
SELECT max(rowid) FROM (
SELECT max(rowid) FROM t4 UNION SELECT max(rowid) FROM t5
)
}
} {1}
do_test minmax-9.2 {
execsql {
SELECT max(rowid) FROM (
SELECT max(rowid) FROM t4 EXCEPT SELECT max(rowid) FROM t5
)
}
} {{}}
} ;# ifcapable compound
ifcapable {compound && subquery} {
do_test minmax-9.1 {
execsql {
SELECT max(rowid) FROM (
SELECT max(rowid) FROM t4 UNION SELECT max(rowid) FROM t5
)
}
} {1}
do_test minmax-9.2 {
execsql {
SELECT max(rowid) FROM (
SELECT max(rowid) FROM t4 EXCEPT SELECT max(rowid) FROM t5
)
}
} {{}}
} ;# ifcapable compound&&subquery
# If there is a NULL in an aggregate max() or min(), ignore it. An
# aggregate min() or max() will only return NULL if all values are NULL.

View File

@ -13,7 +13,7 @@
# This file implements tests for miscellanous features that were
# left out of other test files.
#
# $Id: misc1.test,v 1.32 2005/01/21 03:12:16 danielk1977 Exp $
# $Id: misc1.test,v 1.33 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -554,7 +554,7 @@ do_test misc1-17.1 {
END;
INSERT INTO TempTable(TestString) VALUES ('1');
INSERT INTO TempTable(TestString) VALUES ('2');
UPDATE TempTable SET TestString = TestString + 1 WHERE TestID IN (1, 2);
UPDATE TempTable SET TestString = TestString + 1 WHERE TestID=1 OR TestId=2;
COMMIT;
SELECT TestString FROM RealTable ORDER BY 1;
}

View File

@ -13,7 +13,7 @@
# This file implements tests for miscellanous features that were
# left out of other test files.
#
# $Id: misc2.test,v 1.19 2005/01/20 02:17:02 danielk1977 Exp $
# $Id: misc2.test,v 1.20 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -49,17 +49,19 @@ do_test misc2-2.1 {
}
} {}
ifcapable view {
do_test misc2-2.2 {
execsql {
SELECT rowid, * FROM (SELECT * FROM t1, t2);
ifcapable subquery {
do_test misc2-2.2 {
execsql {
SELECT rowid, * FROM (SELECT * FROM t1, t2);
}
} {{} 1 2 3 7 8 9}
}
} {{} 1 2 3 7 8 9}
do_test misc2-2.3 {
execsql {
CREATE VIEW v1 AS SELECT * FROM t1, t2;
SELECT rowid, * FROM v1;
}
} {{} 1 2 3 7 8 9}
do_test misc2-2.3 {
execsql {
CREATE VIEW v1 AS SELECT * FROM t1, t2;
SELECT rowid, * FROM v1;
}
} {{} 1 2 3 7 8 9}
} ;# ifcapable view
# Check name binding precedence. Ticket #387

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing the SELECT statement.
#
# $Id: select1.test,v 1.41 2005/01/21 03:12:16 danielk1977 Exp $
# $Id: select1.test,v 1.42 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -782,21 +782,21 @@ ifcapable subquery {
} {}
}
ifcapable compound {
do_test select1-12.9 {
execsql2 {
SELECT x FROM (
SELECT a,b FROM t3 UNION SELECT a AS 'x', b AS 'y' FROM t4 ORDER BY a,b
) ORDER BY x;
}
} {x 1 x 3}
do_test select1-12.10 {
execsql2 {
SELECT z.x FROM (
SELECT a,b FROM t3 UNION SELECT a AS 'x', b AS 'y' FROM t4 ORDER BY a,b
) AS 'z' ORDER BY x;
}
} {x 1 x 3}
ifcapable {compound && subquery} {
do_test select1-12.9 {
execsql2 {
SELECT x FROM (
SELECT a,b FROM t3 UNION SELECT a AS 'x', b AS 'y' FROM t4 ORDER BY a,b
) ORDER BY x;
}
} {x 1 x 3}
do_test select1-12.10 {
execsql2 {
SELECT z.x FROM (
SELECT a,b FROM t3 UNION SELECT a AS 'x', b AS 'y' FROM t4 ORDER BY a,b
) AS 'z' ORDER BY x;
}
} {x 1 x 3}
} ;# ifcapable compound

View File

@ -12,7 +12,7 @@
# focus of this file is testing UNION, INTERSECT and EXCEPT operators
# in SELECT statements.
#
# $Id: select4.test,v 1.17 2004/11/22 13:35:42 danielk1977 Exp $
# $Id: select4.test,v 1.18 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -95,14 +95,16 @@ do_test select4-1.1g {
}
} {0 1 2 3 4 5 3 4}
execsql {DROP TABLE t2}
do_test select4-1.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 UNION ALL
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {0 1 2 2 3 3 3 3}
ifcapable subquery {
do_test select4-1.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 UNION ALL
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {0 1 2 2 3 3 3 3}
}
do_test select4-1.3 {
set v [catch {execsql {
SELECT DISTINCT log FROM t1 ORDER BY log
@ -123,14 +125,16 @@ do_test select4-2.1 {
ORDER BY log;
}
} {0 1 2 3 4 5 6 7 8}
do_test select4-2.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 UNION
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {0 1 2 2 3 3 3 3}
ifcapable subquery {
do_test select4-2.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 UNION
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {0 1 2 2 3 3 3 3}
}
do_test select4-2.3 {
set v [catch {execsql {
SELECT DISTINCT log FROM t1 ORDER BY log
@ -173,14 +177,16 @@ do_test select4-3.1.3 {
}
} {4 3 2 1 0}
execsql {DROP TABLE t2}
do_test select4-3.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 EXCEPT
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {0 1 2 2}
ifcapable subquery {
do_test select4-3.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 EXCEPT
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {0 1 2 2}
}
do_test select4-3.3 {
set v [catch {execsql {
SELECT DISTINCT log FROM t1 ORDER BY log
@ -232,14 +238,16 @@ do_test select4-4.1.4 {
}
} {6 5}
execsql {DROP TABLE t2}
do_test select4-4.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 INTERSECT
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {3}
ifcapable subquery {
do_test select4-4.2 {
execsql {
SELECT log FROM t1 WHERE n IN
(SELECT DISTINCT log FROM t1 INTERSECT
SELECT n FROM t1 WHERE log=3)
ORDER BY log;
}
} {3}
}
do_test select4-4.3 {
set v [catch {execsql {
SELECT DISTINCT log FROM t1 ORDER BY log
@ -414,27 +422,29 @@ do_test select4-6.3.1 {
# Make sure the DISTINCT keyword treats NULLs as indistinct.
#
do_test select4-6.4 {
execsql {
SELECT * FROM (
SELECT NULL, 1 UNION ALL SELECT NULL, 1
);
}
} {{} 1 {} 1}
do_test select4-6.5 {
execsql {
SELECT DISTINCT * FROM (
SELECT NULL, 1 UNION ALL SELECT NULL, 1
);
}
} {{} 1}
do_test select4-6.6 {
execsql {
SELECT DISTINCT * FROM (
SELECT 1,2 UNION ALL SELECT 1,2
);
}
} {1 2}
ifcapable subquery {
do_test select4-6.4 {
execsql {
SELECT * FROM (
SELECT NULL, 1 UNION ALL SELECT NULL, 1
);
}
} {{} 1 {} 1}
do_test select4-6.5 {
execsql {
SELECT DISTINCT * FROM (
SELECT NULL, 1 UNION ALL SELECT NULL, 1
);
}
} {{} 1}
do_test select4-6.6 {
execsql {
SELECT DISTINCT * FROM (
SELECT 1,2 UNION ALL SELECT 1,2
);
}
} {1 2}
}
# Test distinctness of NULL in other ways.
#
@ -454,24 +464,26 @@ do_test select4-7.1 {
SELECT * FROM t2 ORDER BY x;
}
} {0 1 1 1 2 2 3 4 4 8 5 15}
do_test select4-7.2 {
execsql2 {
SELECT * FROM t1 WHERE n IN (SELECT n FROM t1 INTERSECT SELECT x FROM t2)
ORDER BY n
}
} {n 1 log 0 n 2 log 1 n 3 log 2 n 4 log 2 n 5 log 3}
do_test select4-7.3 {
execsql2 {
SELECT * FROM t1 WHERE n IN (SELECT n FROM t1 EXCEPT SELECT x FROM t2)
ORDER BY n LIMIT 2
}
} {n 6 log 3 n 7 log 3}
do_test select4-7.4 {
execsql2 {
SELECT * FROM t1 WHERE n IN (SELECT n FROM t1 UNION SELECT x FROM t2)
ORDER BY n LIMIT 2
}
} {n 1 log 0 n 2 log 1}
ifcapable subquery {
do_test select4-7.2 {
execsql2 {
SELECT * FROM t1 WHERE n IN (SELECT n FROM t1 INTERSECT SELECT x FROM t2)
ORDER BY n
}
} {n 1 log 0 n 2 log 1 n 3 log 2 n 4 log 2 n 5 log 3}
do_test select4-7.3 {
execsql2 {
SELECT * FROM t1 WHERE n IN (SELECT n FROM t1 EXCEPT SELECT x FROM t2)
ORDER BY n LIMIT 2
}
} {n 6 log 3 n 7 log 3}
do_test select4-7.4 {
execsql2 {
SELECT * FROM t1 WHERE n IN (SELECT n FROM t1 UNION SELECT x FROM t2)
ORDER BY n LIMIT 2
}
} {n 1 log 0 n 2 log 1}
} ;# ifcapable subquery
} ;# ifcapable compound

View File

@ -141,7 +141,7 @@ do_test trigger1-1.10 {
create trigger r1 after delete on t1 for each row begin
delete from t1 WHERE a=old.a+2;
end;
delete from t1 where a in (1,3);
delete from t1 where a=1 OR a=3;
select * from t1;
drop table t1;
}
@ -157,7 +157,7 @@ do_test trigger1-1.11 {
create trigger r1 after update on t1 for each row begin
delete from t1 WHERE a=old.a+2;
end;
update t1 set b='x-' || b where a in (1,3);
update t1 set b='x-' || b where a=1 OR a=3;
select * from t1;
drop table t1;
}

View File

@ -55,151 +55,153 @@ ifcapable {!trigger} {
}
# 1.
set ii 0
foreach tbl_defn {
{CREATE TEMP TABLE tbl (a, b);}
{CREATE TABLE tbl (a, b);}
{CREATE TABLE tbl (a INTEGER PRIMARY KEY, b);}
{CREATE TEMPORARY TABLE tbl (a INTEGER PRIMARY KEY, b);}
{CREATE TABLE tbl (a, b PRIMARY KEY);}
{CREATE TABLE tbl (a, b); CREATE INDEX tbl_idx ON tbl(b);}
{CREATE TEMP TABLE tbl (a, b); CREATE INDEX tbl_idx ON tbl(b);}
} {
incr ii
catchsql { DROP INDEX tbl_idx; }
ifcapable subquery {
set ii 0
foreach tbl_defn {
{CREATE TEMP TABLE tbl (a, b);}
{CREATE TABLE tbl (a, b);}
{CREATE TABLE tbl (a INTEGER PRIMARY KEY, b);}
{CREATE TEMPORARY TABLE tbl (a INTEGER PRIMARY KEY, b);}
{CREATE TABLE tbl (a, b PRIMARY KEY);}
{CREATE TABLE tbl (a, b); CREATE INDEX tbl_idx ON tbl(b);}
{CREATE TEMP TABLE tbl (a, b); CREATE INDEX tbl_idx ON tbl(b);}
} {
incr ii
catchsql { DROP INDEX tbl_idx; }
catchsql {
DROP TABLE rlog;
DROP TABLE clog;
DROP TABLE tbl;
DROP TABLE other_tbl;
}
execsql $tbl_defn
execsql {
INSERT INTO tbl VALUES(1, 2);
INSERT INTO tbl VALUES(3, 4);
CREATE TABLE rlog (idx, old_a, old_b, db_sum_a, db_sum_b, new_a, new_b);
CREATE TABLE clog (idx, old_a, old_b, db_sum_a, db_sum_b, new_a, new_b);
CREATE TRIGGER before_update_row BEFORE UPDATE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
CREATE TRIGGER after_update_row AFTER UPDATE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
CREATE TRIGGER conditional_update_row AFTER UPDATE ON tbl FOR EACH ROW
WHEN old.a = 1
BEGIN
INSERT INTO clog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM clog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
}
do_test trigger2-1.$ii.1 {
set r {}
foreach v [execsql {
UPDATE tbl SET a = a * 10, b = b * 10;
SELECT * FROM rlog ORDER BY idx;
SELECT * FROM clog ORDER BY idx;
}] {
lappend r [expr {int($v)}]
}
set r
} [list 1 1 2 4 6 10 20 \
2 1 2 13 24 10 20 \
3 3 4 13 24 30 40 \
4 3 4 40 60 30 40 \
1 1 2 13 24 10 20 ]
execsql {
DELETE FROM rlog;
DELETE FROM tbl;
INSERT INTO tbl VALUES (100, 100);
INSERT INTO tbl VALUES (300, 200);
CREATE TRIGGER delete_before_row BEFORE DELETE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
0, 0);
END;
CREATE TRIGGER delete_after_row AFTER DELETE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
0, 0);
END;
}
do_test trigger2-1.$ii.2 {
set r {}
foreach v [execsql {
DELETE FROM tbl;
SELECT * FROM rlog;
}] {
lappend r [expr {int($v)}]
}
set r
} [list 1 100 100 400 300 0 0 \
2 100 100 300 200 0 0 \
3 300 200 300 200 0 0 \
4 300 200 0 0 0 0 ]
execsql {
DELETE FROM rlog;
CREATE TRIGGER insert_before_row BEFORE INSERT ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
0, 0,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
CREATE TRIGGER insert_after_row AFTER INSERT ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
0, 0,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
}
do_test trigger2-1.$ii.3 {
execsql {
CREATE TABLE other_tbl(a, b);
INSERT INTO other_tbl VALUES(1, 2);
INSERT INTO other_tbl VALUES(3, 4);
-- INSERT INTO tbl SELECT * FROM other_tbl;
INSERT INTO tbl VALUES(5, 6);
DROP TABLE other_tbl;
SELECT * FROM rlog;
}
} [list 1 0 0 0.0 0.0 5 6 \
2 0 0 5.0 6.0 5 6 ]
integrity_check trigger2-1.$ii.4
}
catchsql {
DROP TABLE rlog;
DROP TABLE clog;
DROP TABLE tbl;
DROP TABLE other_tbl;
}
execsql $tbl_defn
execsql {
INSERT INTO tbl VALUES(1, 2);
INSERT INTO tbl VALUES(3, 4);
CREATE TABLE rlog (idx, old_a, old_b, db_sum_a, db_sum_b, new_a, new_b);
CREATE TABLE clog (idx, old_a, old_b, db_sum_a, db_sum_b, new_a, new_b);
CREATE TRIGGER before_update_row BEFORE UPDATE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
CREATE TRIGGER after_update_row AFTER UPDATE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
CREATE TRIGGER conditional_update_row AFTER UPDATE ON tbl FOR EACH ROW
WHEN old.a = 1
BEGIN
INSERT INTO clog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM clog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
}
do_test trigger2-1.$ii.1 {
set r {}
foreach v [execsql {
UPDATE tbl SET a = a * 10, b = b * 10;
SELECT * FROM rlog ORDER BY idx;
SELECT * FROM clog ORDER BY idx;
}] {
lappend r [expr {int($v)}]
}
set r
} [list 1 1 2 4 6 10 20 \
2 1 2 13 24 10 20 \
3 3 4 13 24 30 40 \
4 3 4 40 60 30 40 \
1 1 2 13 24 10 20 ]
execsql {
DELETE FROM rlog;
DELETE FROM tbl;
INSERT INTO tbl VALUES (100, 100);
INSERT INTO tbl VALUES (300, 200);
CREATE TRIGGER delete_before_row BEFORE DELETE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
0, 0);
END;
CREATE TRIGGER delete_after_row AFTER DELETE ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
old.a, old.b,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
0, 0);
END;
}
do_test trigger2-1.$ii.2 {
set r {}
foreach v [execsql {
DELETE FROM tbl;
SELECT * FROM rlog;
}] {
lappend r [expr {int($v)}]
}
set r
} [list 1 100 100 400 300 0 0 \
2 100 100 300 200 0 0 \
3 300 200 300 200 0 0 \
4 300 200 0 0 0 0 ]
execsql {
DELETE FROM rlog;
CREATE TRIGGER insert_before_row BEFORE INSERT ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
0, 0,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
CREATE TRIGGER insert_after_row AFTER INSERT ON tbl FOR EACH ROW
BEGIN
INSERT INTO rlog VALUES ( (SELECT coalesce(max(idx),0) + 1 FROM rlog),
0, 0,
(SELECT sum(a) FROM tbl), (SELECT sum(b) FROM tbl),
new.a, new.b);
END;
}
do_test trigger2-1.$ii.3 {
execsql {
CREATE TABLE other_tbl(a, b);
INSERT INTO other_tbl VALUES(1, 2);
INSERT INTO other_tbl VALUES(3, 4);
-- INSERT INTO tbl SELECT * FROM other_tbl;
INSERT INTO tbl VALUES(5, 6);
DROP TABLE other_tbl;
SELECT * FROM rlog;
}
} [list 1 0 0 0.0 0.0 5 6 \
2 0 0 5.0 6.0 5 6 ]
integrity_check trigger2-1.$ii.4
}
catchsql {
DROP TABLE rlog;
DROP TABLE clog;
DROP TABLE tbl;
DROP TABLE other_tbl;
}
# 2.
@ -348,9 +350,11 @@ execsql {
}
# trigger2-3.2: WHEN clause
set when_triggers [ list \
{t1 BEFORE INSERT ON tbl WHEN new.a > 20} \
{t2 BEFORE INSERT ON tbl WHEN (SELECT count(*) FROM tbl) = 0} ]
set when_triggers [list {t1 BEFORE INSERT ON tbl WHEN new.a > 20}]
ifcapable subquery {
lappend when_triggers \
{t2 BEFORE INSERT ON tbl WHEN (SELECT count(*) FROM tbl) = 0} ]
}
execsql {
CREATE TABLE tbl (a, b, c, d);
@ -362,10 +366,15 @@ foreach trig $when_triggers {
execsql "CREATE TRIGGER $trig BEGIN UPDATE log set a = a + 1; END;"
}
ifcapable subquery {
set t232 {1 0 1}
} else {
set t232 {0 0 1}
}
do_test trigger2-3.2 {
execsql {
INSERT INTO tbl VALUES(0, 0, 0, 0); -- 1
INSERT INTO tbl VALUES(0, 0, 0, 0); -- 1 (ifcapable subquery)
SELECT * FROM log;
UPDATE log SET a = 0;
@ -377,7 +386,7 @@ do_test trigger2-3.2 {
SELECT * FROM log;
UPDATE log SET a = 0;
}
} {1 0 1}
} $t232
execsql {
DROP TABLE tbl;
DROP TABLE log;

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing VIEW statements.
#
# $Id: view.test,v 1.21 2004/11/22 13:35:42 danielk1977 Exp $
# $Id: view.test,v 1.22 2005/01/21 04:25:47 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -335,28 +335,31 @@ do_test view-8.3 {
SELECT * FROM v7 ORDER BY a;
}
} {9 18 27 39}
do_test view-8.4 {
execsql {
CREATE VIEW v8 AS SELECT max(cnt) AS mx FROM
(SELECT a%2 AS eo, count(*) AS cnt FROM t1 GROUP BY eo);
SELECT * FROM v8;
}
} 3
do_test view-8.5 {
execsql {
SELECT mx+10, mx*2 FROM v8;
}
} {13 6}
do_test view-8.6 {
execsql {
SELECT mx+10, pqr FROM v6, v8 WHERE xyz=2;
}
} {13 7}
do_test view-8.7 {
execsql {
SELECT mx+10, pqr FROM v6, v8 WHERE xyz>2;
}
} {13 13 13 19 13 27}
ifcapable subquery {
do_test view-8.4 {
execsql {
CREATE VIEW v8 AS SELECT max(cnt) AS mx FROM
(SELECT a%2 AS eo, count(*) AS cnt FROM t1 GROUP BY eo);
SELECT * FROM v8;
}
} 3
do_test view-8.5 {
execsql {
SELECT mx+10, mx*2 FROM v8;
}
} {13 6}
do_test view-8.6 {
execsql {
SELECT mx+10, pqr FROM v6, v8 WHERE xyz=2;
}
} {13 7}
do_test view-8.7 {
execsql {
SELECT mx+10, pqr FROM v6, v8 WHERE xyz>2;
}
} {13 13 13 19 13 27}
} ;# ifcapable subquery
# Tests for a bug found by Michiel de Wit involving ORDER BY in a VIEW.
#