Test enhancements, especially to the new compound-SELECT merge logic. (CVS 5305)

FossilOrigin-Name: edf7f518361902924105142a8c67b898ba7d532f
This commit is contained in:
drh 2008-06-25 14:31:53 +00:00
parent c66c0e14a6
commit 3f994d06ff
5 changed files with 406 additions and 14 deletions

View File

@ -1,5 +1,5 @@
C Fix\sthe\sallocator\sin\smem5.c\sso\sthat\sit\scan\sbe\senabled\sat\srun\stime\susing\sthe\ssqlite3_config()\sfunction.\s(CVS\s5304)
D 2008-06-25T14:26:08
C Test\senhancements,\sespecially\sto\sthe\snew\scompound-SELECT\smerge\slogic.\s(CVS\s5305)
D 2008-06-25T14:31:53
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
F Makefile.in ff6f90048555a0088f6a4b7406bed5e55a7c4eff
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -339,8 +339,8 @@ F test/in.test ca4ea8ac1077f5221055fcb66969892612632ef7
F test/in2.test b1f447f4f0f67e9f83ff931e7e2e30873f9ea055
F test/in3.test dc62b080ed79898121c61c91118b4d1e111f1438
F test/incrblob.test 4455fffd08b2f9418a9257e18b135d72273eff3e
F test/incrblob2.test 4dc86910dea806f75c941e91785cb1da69c14a6f
F test/incrblob_err.test 00a8bcb25cb493d53f4efed0f5cf09c386534940
F test/incrblob2.test a1db17c1f70bdbf9cae8415fb500df511569306a
F test/incrblob_err.test a3e3d9442d2993e8a449e791db4001d11a2f683f
F test/incrvacuum.test 1a2b0bddc76629afeb41e3d8ea3e4563982d16b9
F test/incrvacuum2.test 46ef65f377e3937cfd1ba66e818309dab46f590d
F test/incrvacuum_ioerr.test ebc94092ac1545d9ce518a673988aef88197ca4e
@ -447,7 +447,7 @@ F test/select6.test 399f14b9ba37b768afe5d2cd8c12e4f340a69db8
F test/select7.test 7906735805cfbee4dddc0bed4c14e68d7f5f9c5f
F test/select8.test 391de11bdd52339c30580dabbbbe97e3e9a3c79d
F test/select9.test 0e1a5470bac7e6daa757d8df3fbfaee6730c544e
F test/selectA.test 45263e0936f654ddbd0c451b49790d9956f3b921
F test/selectA.test e4501789a1d0fe9d00db15187623fb5b7031357b
F test/server1.test f5b790d4c0498179151ca8a7715a65a7802c859c
F test/shared.test c6769531e0cb751d46a9838c0532d3786606c0f6
F test/shared2.test 0ee9de8964d70e451936a48c41cb161d9134ccf4
@ -594,7 +594,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P 9c6c8e01b31abfe2bc8e650bbfdb504021dc7e59
R 8f7483e2fdaf9f81d7806dda44fbca72
U danielk1977
Z b5c0c1b2ba1d5eb688c90f849be1cc0e
P 30ff6bb0b2d1068d28e86ac90bb9f454e4537a2d
R c93b123df0b25165ffd3a040169a5b55
U drh
Z 0b17565ed474d5b4889c83b3477691a8

View File

@ -1 +1 @@
30ff6bb0b2d1068d28e86ac90bb9f454e4537a2d
edf7f518361902924105142a8c67b898ba7d532f

View File

@ -12,7 +12,7 @@
# Test that it is possible to have two open blob handles on a single
# blob object.
#
# $Id: incrblob2.test,v 1.5 2008/06/16 14:36:01 danielk1977 Exp $
# $Id: incrblob2.test,v 1.6 2008/06/25 14:31:53 drh Exp $
#
set testdir [file dirname $argv0]
@ -132,6 +132,7 @@ do_test incrblob2-3.4 {
# invalidated at the correct times.
#
do_test incrblob2-4.1 {
unset -nocomplain data
db eval BEGIN
db eval { CREATE TABLE t1(id INTEGER PRIMARY KEY, data BLOB); }
for {set ii 1} {$ii < 100} {incr ii} {
@ -353,4 +354,3 @@ do_test incrblob2-7.5 {
} {}
finish_test

View File

@ -9,7 +9,7 @@
#
#***********************************************************************
#
# $Id: incrblob_err.test,v 1.9 2008/05/12 07:42:20 danielk1977 Exp $
# $Id: incrblob_err.test,v 1.10 2008/06/25 14:31:53 drh Exp $
#
set testdir [file dirname $argv0]
@ -22,6 +22,7 @@ ifcapable {!incrblob || !memdebug || !tclvar} {
source $testdir/malloc_common.tcl
unset -nocomplain ::fd ::data
set ::fd [open [info script]]
set ::data [read $::fd]
close $::fd

View File

@ -17,7 +17,7 @@
# explicit sort order and explicit collating secquites) and
# with and without optional LIMIT and OFFSET clauses.
#
# $Id: selectA.test,v 1.2 2008/06/25 02:47:57 drh Exp $
# $Id: selectA.test,v 1.3 2008/06/25 14:31:53 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -44,6 +44,18 @@ do_test selectA-1.1 {
SELECT * FROM t2;
}
} {{} U u mad Z z hare m M 5200000.0 X x -23 Y y}
do_test selectA-1.2 {
execsql {
CREATE TABLE t3(a,b,c COLLATE NOCASE);
INSERT INTO t3 SELECT * FROM t1;
INSERT INTO t3 SELECT * FROM t2;
INSERT INTO t3 SELECT * FROM t1;
INSERT INTO t3 SELECT * FROM t2;
INSERT INTO t3 SELECT * FROM t1;
INSERT INTO t3 SELECT * FROM t2;
SELECT count(*) FROM t3;
}
} {30}
do_test selectA-2.1 {
execsql {
@ -429,6 +441,196 @@ do_test selectA-2.64 {
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-2.65 {
execsql {
SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
ORDER BY c COLLATE NOCASE
}
} {1 a a 9.9 b B {} C c}
do_test selectA-2.66 {
execsql {
SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-2.67 {
execsql {
SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
ORDER BY c DESC, a
}
} {abc e e hello d D}
do_test selectA-2.68 {
execsql {
SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
ORDER BY c DESC, a
}
} {abc e e hello d D}
do_test selectA-2.69 {
execsql {
SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
ORDER BY c COLLATE NOCASE
}
} {1 a a 9.9 b B {} C c}
do_test selectA-2.70 {
execsql {
SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-2.71 {
execsql {
SELECT a,b,c FROM t1 WHERE b<'d'
INTERSECT SELECT a,b,c FROM t1
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
INTERSECT SELECT a,b,c FROM t1
EXCEPT SELECT x,y,z FROM t2
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT y,x,z FROM t2
INTERSECT SELECT a,b,c FROM t1
EXCEPT SELECT c,b,a FROM t3
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-2.72 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY a,b,c
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-2.73 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY a DESC,b,c
}
} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
do_test selectA-2.74 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY a,c,b
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-2.75 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY b,a,c
}
} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
do_test selectA-2.76 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY b COLLATE NOCASE,a,c
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-2.77 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY b COLLATE NOCASE DESC,a,c
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-2.78 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c,b,a
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-2.79 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c,a,b
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-2.80 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-2.81 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c COLLATE BINARY DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
do_test selectA-2.82 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY a,b,c
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-2.83 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY a DESC,b,c
}
} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
do_test selectA-2.84 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY a,c,b
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-2.85 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY b,a,c
}
} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
do_test selectA-2.86 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY b COLLATE NOCASE,a,c
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-2.87 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY y COLLATE NOCASE DESC,x,z
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-2.88 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c,b,a
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-2.89 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c,a,b
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-2.90 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-2.91 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c COLLATE BINARY DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
do_test selectA-2.92 {
execsql {
SELECT x,y,z FROM t2
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT c,b,a FROM t1
UNION SELECT a,b,c FROM t3
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT c,b,a FROM t1
UNION SELECT a,b,c FROM t3
ORDER BY y COLLATE NOCASE DESC,x,z
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-3.0 {
execsql {
@ -825,6 +1027,195 @@ do_test selectA-3.64 {
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-3.65 {
execsql {
SELECT a,b,c FROM t3 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
ORDER BY c COLLATE NOCASE
}
} {1 a a 9.9 b B {} C c}
do_test selectA-3.66 {
execsql {
SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t3
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-3.67 {
execsql {
SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t3 WHERE b<'d'
ORDER BY c DESC, a
}
} {abc e e hello d D}
do_test selectA-3.68 {
execsql {
SELECT a,b,c FROM t1 EXCEPT SELECT a,b,c FROM t1 WHERE b<'d'
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
ORDER BY c DESC, a
}
} {abc e e hello d D}
do_test selectA-3.69 {
execsql {
SELECT a,b,c FROM t1 INTERSECT SELECT a,b,c FROM t1 WHERE b<'d'
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
ORDER BY c COLLATE NOCASE
}
} {1 a a 9.9 b B {} C c}
do_test selectA-3.70 {
execsql {
SELECT a,b,c FROM t1 WHERE b<'d' INTERSECT SELECT a,b,c FROM t1
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-3.71 {
execsql {
SELECT a,b,c FROM t1 WHERE b<'d'
INTERSECT SELECT a,b,c FROM t1
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT b,c,a FROM t3
INTERSECT SELECT a,b,c FROM t1
EXCEPT SELECT x,y,z FROM t2
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT y,x,z FROM t2
INTERSECT SELECT a,b,c FROM t1
EXCEPT SELECT c,b,a FROM t3
ORDER BY c
}
} {1 a a 9.9 b B {} C c}
do_test selectA-3.72 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY a,b,c
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-3.73 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY a DESC,b,c
}
} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
do_test selectA-3.74 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY a,c,b
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-3.75 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY b,a,c
}
} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
do_test selectA-3.76 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY b COLLATE NOCASE,a,c
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-3.77 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY b COLLATE NOCASE DESC,a,c
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-3.78 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c,b,a
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-3.79 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c,a,b
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-3.80 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-3.81 {
execsql {
SELECT a,b,c FROM t3 UNION SELECT x,y,z FROM t2
ORDER BY c COLLATE BINARY DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
do_test selectA-3.82 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY a,b,c
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-3.83 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY a DESC,b,c
}
} {hare m M abc e e mad Z z hello d D 5200000.0 X x 9.9 b B 1 a a -23 Y y {} C c {} U u}
do_test selectA-3.84 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY a,c,b
}
} {{} C c {} U u -23 Y y 1 a a 9.9 b B 5200000.0 X x hello d D mad Z z abc e e hare m M}
do_test selectA-3.85 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY b,a,c
}
} {{} C c {} U u 5200000.0 X x -23 Y y mad Z z 1 a a 9.9 b B hello d D abc e e hare m M}
do_test selectA-3.86 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY b COLLATE NOCASE,a,c
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-3.87 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY y COLLATE NOCASE DESC,x,z
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-3.88 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c,b,a
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-3.89 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c,a,b
}
} {1 a a 9.9 b B {} C c hello d D abc e e hare m M {} U u 5200000.0 X x -23 Y y mad Z z}
do_test selectA-3.90 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
do_test selectA-3.91 {
execsql {
SELECT x,y,z FROM t2 UNION SELECT a,b,c FROM t3
ORDER BY c COLLATE BINARY DESC,a,b
}
} {mad Z z -23 Y y 5200000.0 X x {} U u abc e e {} C c 1 a a hare m M hello d D 9.9 b B}
do_test selectA-3.92 {
execsql {
SELECT x,y,z FROM t2
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT c,b,a FROM t1
UNION SELECT a,b,c FROM t3
INTERSECT SELECT a,b,c FROM t3
EXCEPT SELECT c,b,a FROM t1
UNION SELECT a,b,c FROM t3
ORDER BY y COLLATE NOCASE DESC,x,z
}
} {mad Z z -23 Y y 5200000.0 X x {} U u hare m M abc e e hello d D {} C c 9.9 b B 1 a a}
finish_test