Ensure tests pass when SQLITE_OMIT_COMPOUND_SELECT is defined. (CVS 2138)

FossilOrigin-Name: 007be591b7829f9ff38e4b14ba5a5043796c2ff3
This commit is contained in:
danielk1977 2004-11-22 13:35:41 +00:00
parent 81650dc6c8
commit 27c774388a
24 changed files with 262 additions and 129 deletions

View File

@ -1,5 +1,5 @@
C Ensure\stests\spass\swhen\sSQLITE_OMIT_TRIGGER\sis\sdefined.\s(CVS\s2137)
D 2004-11-22T11:51:13
C Ensure\stests\spass\swhen\sSQLITE_OMIT_COMPOUND_SELECT\sis\sdefined.\s(CVS\s2138)
D 2004-11-22T13:35:41
F Makefile.in 8291610f5839939a5fbff4dbbf85adb0fe1ac37f
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
@ -74,7 +74,7 @@ F src/trigger.c 0c91b56182560263733e4b035acdb939bd1cf0e2
F src/update.c 24a605a4250fe4a0b173bedd7132d1892ad27090
F src/utf.c e45ce11be6922408cd381561721f6cca7d3b992a
F src/util.c 4a8db4e97a3cfda12ad8dda3e77dd2d00ad1de5e
F src/vacuum.c d061dd908a9e809c54e40e24a551b1d64abd3d16
F src/vacuum.c 705256e1111521fa04f0029de7f1667bc131d015
F src/vdbe.c ba3a920731d43bcf2497d558238400369008531a
F src/vdbe.h 067ca8d6750ba4f69a50284765e5883dee860181
F src/vdbeInt.h 6017100adff362b8dfa37a69e3f1431f084bfa5b
@ -83,12 +83,12 @@ F src/vdbeaux.c dc06bbb8511d07f8d45ed2ea760f35f0736a690c
F src/vdbemem.c 5876c8abf4374fef671f4fd8dc333ef3fc95a2f0
F src/where.c f8a9e0bca6cb0a6fc4c189ed9fa771e75ad68bc8
F test/all.test 929bfa932b55e75c96fe2203f7650ba451c1862c
F test/alter.test 2b4478c4906e4d1504b1a121b4ffbc8d11043b53
F test/attach.test bb0ff048b0a65ca2bd5f186eee05d2ec084f3972
F test/alter.test 2f0355d92bc360f897c0893f24cf4024e2719e56
F test/attach.test a71117bab079c8a3a955e2d0270a76f9cb445935
F test/attach2.test 399128a7b3b209a339a8dbf53ca2ed42eb982d1a
F test/attach3.test c05c70b933afbde0901dab9da3e66ee842c09f38
F test/auth.test 050fe904ab1b2654b0dbb776035833d64bcde3da
F test/autoinc.test 11330758197e0301d3600a071230d45b2f6a65b7
F test/autoinc.test c071e51ff167b8e889212273588d9cca71845b70
F test/autovacuum.test a4e8da39a6268378c4f9fc17fe2df1d5be16d631
F test/autovacuum_crash.test 2dca85cbcc497098e45e8847c86407eb3554f3d4
F test/bigfile.test d3744a8821ce9abb8697f2826a3e3d22b719e89f
@ -106,9 +106,9 @@ F test/capi3.test 3b33bf7c8836028835354c055989314e9c969c5c
F test/capi3b.test 5b6a66f9f295f79f443b5d3f33187fa5ef6cf336
F test/collate1.test f79736d2ebf5492167ee4d1f4ab4c09dda776b03
F test/collate2.test 12fd658d8f5106a8a5c8a77d66919d8c89394036
F test/collate3.test cf747926374285c1690e3294a1abcb83d6f15529
F test/collate3.test 5fe8077bd82c53112974f56f51f06cbd06d71374
F test/collate4.test c29c8d4b66cf45b36fa112c28493cdb451a8409b
F test/collate5.test 1dd5f0f508c46667f9d4606c7950c414b0bdc0d5
F test/collate5.test 7999fb3122386bae38acd8ccd61e0b7c5a30e289
F test/collate6.test 6c9470d1606ee3e564675b229653e320c49ec638
F test/conflict.test c5b849b01cfbe0a4f63a90cba6f68e2fe3a75f87
F test/corrupt.test 0080ddcece23e8ba47c44608c4fb73fd4d1d8ce2
@ -128,32 +128,32 @@ F test/hook.test f8605cde4c77b2c6a4a73723bf6c507796a64dda
F test/in.test b92a2df9162e1cbd33c6449a29a05e6955b1741a
F test/index.test 1294997b4743007af57f8148c63ba14f07ad31ab
F test/insert.test 56f9c20c9adc8d707490c4ffa5d4daa94826ea03
F test/insert2.test 614a29d3ed7dd0d8644a059c6d8ce742c63a734a
F test/insert2.test 0bb50ff999e35a21549d8ee5dc44db8ac24d31a7
F test/interrupt.test 0aa230f8aedec0ad7caaf5edaced337e4cfb3820
F test/intpkey.test b57cf5236fde1bd8cbc1388fa0c91908f6fd9194
F test/ioerr.test 3ce897ee998ee874073f3b23b0396d9ff804759c
F test/join.test 4bee854ef752619df9db2184eafe2f3a1561f74c
F test/join.test ea8c77b9fbc377fe553cdb5ce5f1bd72021dca5d
F test/join2.test c97e4c5aa65dea462145529e58212a709b4722b8
F test/join3.test 67dc0d7c8dab3fff25796d0f3c3fd9c999aeded3
F test/join4.test 8dec387d06b3a4685e1104048065cf5236b99b93
F test/lastinsert.test b6a1db3e1ce2d3f0d6afe99d445084f543b6feaa
F test/laststmtchanges.test 07cbdabc52407c29e40abc25050f2434f044a6b1
F test/limit.test 4798e0196186e4c9b0f3ce90c1efd196877a1d17
F test/limit.test c7bddad249631ad068fbbd0ab926e04ba7e3b9a2
F test/lock.test 32fe28e5030f25f23bcf6beef440675b0d848413
F test/lock2.test 59c3dd7d9b24d1bf7ec91b2d1541c37e97939d5f
F test/lock3.test 615111293cf32aa2ed16d01c6611737651c96fb9
F test/main.test 5f9deae11b93336da1ccc5f91cf8be075c91ddf1
F test/malloc.test b4674cbb5a72b113eedaaf64fcd5c062e9957ded
F test/memdb.test c9ccd02cd9ce9d2cdcd5a712efecf24e7b93b7fa
F test/memdb.test 532aac7128a3da494cddc4461d76c6e3988f771b
F test/memleak.test f1fa233f8295dd1d955a00d5e5ee857850f27f29
F test/minmax.test c0f92d3f7b11656221735385f2c8b1878bbbdaf6
F test/minmax.test e7048476940df0af11d0f2cf687572f557cd0b29
F test/misc1.test 744f60d1025fa978708b96cb222a07a1feb1524a
F test/misc2.test d3bea4b809efaa4319299e55c50ee987b4f6470c
F test/misc2.test a655f2453d8b96fedca93b70fab6719cb4e99faa
F test/misc3.test 928a2f1e1189924ed14e1ae074e34f40688bdf94
F test/misc4.test d005a75f095bb04db09a5d096144405ae566b622
F test/misc4.test c683ab8182172474c804b346f8a39ca786322250
F test/misuse.test 2d7c46160f7c214f761fc5d030684a37ae8832a6
F test/notnull.test 7a08117a71e74b0321aaa937dbeb41a09d6eb1d0
F test/null.test 642428b6a5408cc5b954b49e1b6e5025e4458b2b
F test/null.test 5a945790ef21b24fd602fe2c7a23847b903f8687
F test/pager.test 394455707a079804e8a4e431d12edce831a065f0
F test/pager2.test 49c0f57c7da0b060f0486b85fdd074025caa694e
F test/pager3.test 647f696a9cf7409df00a1e0047c2eb55585a1b85
@ -166,15 +166,15 @@ F test/quote.test 6d75cf635d93ba2484dc9cb378d88cbae9dc2c62
F test/reindex.test 3552c6b944a3fab28cfd3049c04c65cb79419757
F test/rollback.test 4097328d44510277244ef4fa51b22b2f11d7ef4c
F test/rowid.test 1ce3f1520d2082b0363e7d9bdef904cb72b9efe8
F test/select1.test 0e459a8066259445d707cc4f64ea00459441e29f
F test/select1.test 524d4323f3921db16138f8b1765f1cc44e030bf4
F test/select2.test 91a2225926039b0d1687840735c284dbbf89f0bc
F test/select3.test 9de435aa84fc406708cd8dc1b1d60e7f27cea685
F test/select4.test 86e72fc3b07de4fe11439aa419e37db3c49467e2
F test/select4.test 1ae6f2bd6177d4428df8644eb95d09f4568fb149
F test/select5.test 94db800bbeff2e426c0175e07f7a71d4617853b5
F test/select6.test 4ce9fa563662d5b2f5a8ff57e4d8b2f5cd186d38
F test/select7.test 9dc9aaa403b14689e2cb9912c8f15e5ae8d104f7
F test/sort.test 03e16f0c4d7fe7b7d87893db0cab3b399b8f2cb1
F test/subselect.test 50f98723f00e97b1839d36410ee63597ca82d775
F test/select6.test fe1c2bfb6921f26468424709bd1427122fb4d494
F test/select7.test b952604c22a5644a065e9e99dc904b5a65565f07
F test/sort.test 87882e6c72a75d45e98a1c802c1ded0eac557d85
F test/subselect.test ff3850d0aab1443dafa4ecbdab1d01e58e7b366d
F test/table.test 87a6219c784722249a2f604b6495ce171ca2588a
F test/tableapi.test b21ab097e87a5484bb61029e69e1a4e5c5e65ede
F test/tclsqlite.test 5e262df81a638a058536fb6d6666f316843ac7b2
@ -185,7 +185,7 @@ F test/threadtest1.c 6029d9c5567db28e6dc908a0c63099c3ba6c383b
F test/threadtest2.c 97a830d53c24c42290501fdfba4a6e5bdd34748b
F test/trace.test a54fa8df0d01cf827289a7659d78959e8fd2f955
F test/trans.test 29645b344d2b9b6792793562b12340177ddd8f96
F test/trigger1.test 65ee61f6a0f9e61badbd620ec17979ceb391efa1
F test/trigger1.test 0c60435fb26db41bb2feb9549119e80857decdf1
F test/trigger2.test 534390be509127859fee7c23018f03b9bf21a88f
F test/trigger3.test 9102fd3933db294dc654b5aee9edfe9e94f2b9e2
F test/trigger4.test e7c0812b14750754602468f15495260e8c6625e0
@ -197,7 +197,7 @@ F test/update.test b29bd9061a1150426dab6959806fcc73a41b1217
F test/utf16.test 459c2f5ab80c60092c603630a348c32d6e59c558
F test/vacuum.test f18eccdee5b538d46298c64d6a060cfbf97bbc23
F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102
F test/view.test a68bee7f5b4e33656667cbf4748dcfc5ebe1828b
F test/view.test 3f96df86f1c61ee850b945204683773bbbb8643e
F test/where.test 8a016d444252553a0c7c3a4c806d3f782f7337eb
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
F tool/lemon.c 250b30bcf3f1f422a2cad24b1597314777058a4b
@ -259,7 +259,7 @@ F www/tclsqlite.tcl 560ecd6a916b320e59f2917317398f3d59b7cc25
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl fdacb0ba2d39831e8a6240d05a490026ad4c4e4c
P 48c7eb7fb9fbc2166aaa7dbdb7c7e92c68f8eff3
R 6dd508c54c10bef1b7e595fe1d4a4547
P 53894988ac1ad44ec65a1e1c420e2a26eb4c2efd
R ae883046a665a42e48d31753b3268782
U danielk1977
Z 55588ca2d1f74953c8ec1f40672d9644
Z a08446cec18a32e6982c35ed9dfce9a2

View File

@ -1 +1 @@
53894988ac1ad44ec65a1e1c420e2a26eb4c2efd
007be591b7829f9ff38e4b14ba5a5043796c2ff3

View File

@ -14,7 +14,7 @@
** Most of the code in this file may be omitted by defining the
** SQLITE_OMIT_VACUUM macro.
**
** $Id: vacuum.c,v 1.34 2004/11/20 19:18:56 drh Exp $
** $Id: vacuum.c,v 1.35 2004/11/22 13:35:41 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include "os.h"
@ -175,14 +175,17 @@ int sqlite3RunVacuum(char **pzErrMsg, sqlite3 *db){
*/
rc = execExecSql(db,
"SELECT 'CREATE TABLE vacuum_db.' || substr(sql,14,100000000) "
" FROM sqlite_master WHERE type='table' "
"UNION ALL "
"SELECT 'CREATE INDEX vacuum_db.' || substr(sql,14,100000000) "
" FROM sqlite_master WHERE sql LIKE 'CREATE INDEX %' "
"UNION ALL "
" FROM sqlite_master WHERE type='table'");
if( rc!=SQLITE_OK ) goto end_of_vacuum;
rc = execExecSql(db,
"SELECT 'CREATE INDEX vacuum_db.' || substr(sql,14,100000000)"
" FROM sqlite_master WHERE sql LIKE 'CREATE INDEX %' ");
if( rc!=SQLITE_OK ) goto end_of_vacuum;
rc = execExecSql(db,
"SELECT 'CREATE UNIQUE INDEX vacuum_db.' || substr(sql,21,100000000) "
" FROM sqlite_master WHERE sql LIKE 'CREATE UNIQUE INDEX %'"
"UNION ALL "
" FROM sqlite_master WHERE sql LIKE 'CREATE UNIQUE INDEX %'");
if( rc!=SQLITE_OK ) goto end_of_vacuum;
rc = execExecSql(db,
"SELECT 'CREATE VIEW vacuum_db.' || substr(sql,13,100000000) "
" FROM sqlite_master WHERE type='view'"
);

View File

@ -8,7 +8,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script is testing the ALTER TABLE statement.
#
# $Id: alter.test,v 1.6 2004/11/19 08:41:34 danielk1977 Exp $
# $Id: alter.test,v 1.7 2004/11/22 13:35:42 danielk1977 Exp $
#
set testdir [file dirname $argv0]
@ -53,19 +53,18 @@ do_test alter-1.1 {
INSERT INTO [temp table] VALUES(5,6,7);
}
execsql {
SELECT 't1', * FROM t1
UNION ALL
SELECT 't1''x1', * FROM "t1'x1"
UNION ALL
SELECT * FROM [temp table]
SELECT 't1', * FROM t1;
SELECT 't1''x1', * FROM "t1'x1";
SELECT * FROM [temp table];
}
} {t1 1 2 t1'x1 3 4 5 6 7}
do_test alter-1.2 {
execsql {
SELECT type, name, tbl_name FROM sqlite_master
UNION ALL
SELECT type, name, tbl_name FROM sqlite_temp_master
ORDER BY tbl_name, type desc, name
CREATE TEMP TABLE objlist(type, name, tbl_name);
INSERT INTO objlist SELECT type, name, tbl_name FROM sqlite_master;
INSERT INTO objlist
SELECT type, name, tbl_name FROM sqlite_temp_master WHERE NAME!='objlist';
SELECT type, name, tbl_name FROM objlist ORDER BY tbl_name, type desc, name;
}
} [list \
table t1 t1 \
@ -92,19 +91,18 @@ do_test alter-1.3 {
integrity_check alter-1.3.1
do_test alter-1.4 {
execsql {
SELECT 't1', * FROM [-t1-]
UNION ALL
SELECT 't2', * FROM t2
UNION ALL
SELECT * FROM temptab
SELECT 't1', * FROM [-t1-];
SELECT 't2', * FROM t2;
SELECT * FROM temptab;
}
} {t1 1 2 t2 3 4 5 6 7}
do_test alter-1.5 {
execsql {
SELECT type, name, tbl_name FROM sqlite_master
UNION ALL
SELECT type, name, tbl_name FROM sqlite_temp_master
ORDER BY tbl_name, type desc, name
DELETE FROM objlist;
INSERT INTO objlist SELECT type, name, tbl_name FROM sqlite_master;
INSERT INTO objlist
SELECT type, name, tbl_name FROM sqlite_temp_master WHERE NAME!='objlist';
SELECT type, name, tbl_name FROM objlist ORDER BY tbl_name, type desc, name;
}
} [list \
table -t1- -t1- \
@ -126,10 +124,13 @@ do_test alter-1.6 {
db close
set DB [sqlite3 db test.db]
execsql {
SELECT type, name, tbl_name FROM sqlite_master
UNION ALL
SELECT type, name, tbl_name FROM sqlite_temp_master
ORDER BY tbl_name, type desc, name
CREATE TEMP TABLE objlist(type, name, tbl_name);
INSERT INTO objlist SELECT type, name, tbl_name FROM sqlite_master;
INSERT INTO objlist
SELECT type, name, tbl_name FROM sqlite_temp_master
WHERE NAME!='objlist';
SELECT type, name, tbl_name FROM objlist
ORDER BY tbl_name, type desc, name;
}
} [list \
table -t1- -t1- \
@ -150,10 +151,13 @@ do_test alter-1.7 {
ALTER TABLE T2 RENAME TO [<t2>];
}
execsql {
SELECT type, name, tbl_name FROM sqlite_master
UNION ALL
SELECT type, name, tbl_name FROM sqlite_temp_master
ORDER BY tbl_name, type desc, name
DELETE FROM objlist;
INSERT INTO objlist SELECT type, name, tbl_name FROM sqlite_master;
INSERT INTO objlist
SELECT type, name, tbl_name FROM sqlite_temp_master
WHERE NAME!='objlist';
SELECT type, name, tbl_name FROM objlist
ORDER BY tbl_name, type desc, name;
}
} [list \
table *t1* *t1* \

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.30 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: attach.test,v 1.31 2004/11/22 13:35:42 danielk1977 Exp $
#
set testdir [file dirname $argv0]
@ -505,6 +505,7 @@ ifcapable {!trigger} {
# fail and the query will abort but we will have already output some
# results. When the query is retried, the results will be repeated.
#
ifcapable compound {
do_test attach-4.8 {
execsql {
ATTACH DATABASE 'test2.db' AS db2;
@ -520,6 +521,16 @@ do_test attach-4.9 {
SELECT * FROM db2.t4 UNION ALL SELECT * FROM main.t4;
}
} {db2.6 db2.13 main.11 main.15}
} ;# ifcapable compound
ifcapable !compound {
ifcapable {!trigger} {execsql {INSERT INTO main.t4 VALUES('main.15')}}
execsql {
ATTACH DATABASE 'test2.db' AS db2;
INSERT INTO db2.t3 VALUES(13,14);
INSERT INTO main.t3 VALUES(15,16);
}
} ;# ifcapable !compound
ifcapable view {
do_test attach-4.10 {

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script is testing the AUTOINCREMENT features.
#
# $Id: autoinc.test,v 1.1 2004/11/13 03:48:07 drh Exp $
# $Id: autoinc.test,v 1.2 2004/11/22 13:35:42 danielk1977 Exp $
#
set testdir [file dirname $argv0]
@ -328,25 +328,22 @@ do_test autoinc-3.4 {
#
do_test autoinc-4.1 {
execsql {
SELECT 1, name FROM sqlite_master WHERE type='table'
UNION ALL
SELECT 2, name FROM sqlite_temp_master WHERE type='table'
SELECT 1, name FROM sqlite_master WHERE type='table';
SELECT 2, name FROM sqlite_temp_master WHERE type='table';
}
} {1 sqlite_sequence}
do_test autoinc-4.2 {
execsql {
CREATE TABLE t1(x INTEGER PRIMARY KEY AUTOINCREMENT, y);
CREATE TEMP TABLE t3(a INTEGER PRIMARY KEY AUTOINCREMENT, b);
SELECT 1, name FROM sqlite_master WHERE type='table'
UNION ALL
SELECT 2, name FROM sqlite_temp_master WHERE type='table'
SELECT 1, name FROM sqlite_master WHERE type='table';
SELECT 2, name FROM sqlite_temp_master WHERE type='table';
}
} {1 sqlite_sequence 1 t1 2 t3 2 sqlite_sequence}
do_test autoinc-4.3 {
execsql {
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {}
do_test autoinc-4.4 {
@ -355,38 +352,42 @@ do_test autoinc-4.4 {
INSERT INTO t3 VALUES(20,2);
INSERT INTO t1 VALUES(NULL,3);
INSERT INTO t3 VALUES(NULL,4);
}
} {}
ifcapable compound {
do_test autoinc-4.4.1 {
execsql {
SELECT * FROM t1 UNION ALL SELECT * FROM t3;
}
} {10 1 11 3 20 2 21 4}
} ;# ifcapable compound
do_test autoinc-4.5 {
execsql {
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {1 t1 11 2 t3 21}
do_test autoinc-4.6 {
execsql {
INSERT INTO t1 SELECT * FROM t3;
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {1 t1 21 2 t3 21}
do_test autoinc-4.7 {
execsql {
INSERT INTO t3 SELECT x+100, y FROM t1;
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {1 t1 21 2 t3 121}
do_test autoinc-4.8 {
execsql {
DROP TABLE t3;
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {1 t1 21}
do_test autoinc-4.9 {
@ -394,17 +395,15 @@ do_test autoinc-4.9 {
CREATE TEMP TABLE t2(p INTEGER PRIMARY KEY AUTOINCREMENT, q);
INSERT INTO t2 SELECT * FROM t1;
DROP TABLE t1;
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {2 t2 21}
do_test autoinc-4.10 {
execsql {
DROP TABLE t2;
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
}
} {}
@ -420,21 +419,17 @@ do_test autoinc-5.1 {
} db2;
execsql {
ATTACH 'test2.db' as aux;
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
UNION ALL
SELECT 3, * FROM aux.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
SELECT 3, * FROM aux.sqlite_sequence;
}
} {}
do_test autoinc-5.2 {
execsql {
INSERT INTO t4 VALUES(NULL,1);
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
UNION ALL
SELECT 3, * FROM aux.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
SELECT 3, * FROM aux.sqlite_sequence;
}
} {3 t4 1}
do_test autoinc-5.3 {
@ -445,11 +440,9 @@ do_test autoinc-5.3 {
} {t4 1 t5 200}
do_test autoinc-5.4 {
execsql {
SELECT 1, * FROM main.sqlite_sequence
UNION ALL
SELECT 2, * FROM temp.sqlite_sequence
UNION ALL
SELECT 3, * FROM aux.sqlite_sequence
SELECT 1, * FROM main.sqlite_sequence;
SELECT 2, * FROM temp.sqlite_sequence;
SELECT 3, * FROM aux.sqlite_sequence;
}
} {3 t4 1 3 t5 200}

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this script is page cache subsystem.
#
# $Id: collate3.test,v 1.5 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: collate3.test,v 1.6 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -120,6 +120,7 @@ do_test collate3-2.8 {
}
} {1 {no such collation sequence: string_compare}}
ifcapable compound {
do_test collate3-2.9 {
catchsql {
SELECT c1 FROM collate3t1 UNION SELECT c1 FROM collate3t1;
@ -165,6 +166,7 @@ do_test collate3-2.17 {
SELECT c1 FROM collate3t1 UNION ALL SELECT c1 FROM collate3t1 ORDER BY 1;
}
} {1 {no such collation sequence: string_compare}}
} ;# ifcapable compound
#
# Create an index that uses a collation sequence then close and

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.1 2004/06/11 10:51:41 danielk1977 Exp $
# $Id: collate5.test,v 1.2 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -69,6 +69,13 @@ do_test collate5-1.3 {
}
} {a apple A Apple b banana n {}}
# The remainder of this file tests compound SELECT statements.
# Omit it if the library is compiled such that they are omitted.
#
ifcapable !compound {
finish_test
return
}
#
# Tests named collate5-2.* focus on UNION, EXCEPT and INTERSECT

View File

@ -12,7 +12,7 @@
# focus of this file is testing the INSERT statement that takes is
# result from a SELECT.
#
# $Id: insert2.test,v 1.12 2004/09/17 17:23:15 drh Exp $
# $Id: insert2.test,v 1.13 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -44,6 +44,7 @@ do_test insert2-1.1.3 {
execsql {SELECT * FROM t1 ORDER BY log}
} {0 1 1 1 2 2 3 4 4 8 5 4}
ifcapable compound {
do_test insert2-1.2.1 {
catch {execsql {DROP TABLE t1}}
execsql {
@ -73,6 +74,9 @@ do_test insert2-1.3.2 {
SELECT * FROM t1 ORDER BY log;
}
} {1 1 2 2}
} ;# ifcapable compound
execsql {PRAGMA count_changes=off;}
do_test insert2-1.4 {
catch {execsql {DROP TABLE t1}}
set r [execsql {

View File

@ -12,7 +12,7 @@
#
# This file implements tests for joins, including outer joins.
#
# $Id: join.test,v 1.12 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: join.test,v 1.13 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -369,6 +369,7 @@ do_test join-8.3 {
# Both queries should generate the same results so the answer should
# be an empty set.
#
ifcapable compound {
do_test join-9.1 {
execsql {
BEGIN;
@ -393,5 +394,6 @@ do_test join-9.2 {
}
} {}
} ;# ifcapable view
} ;# ifcapable compound
finish_test

View File

@ -12,7 +12,7 @@
# focus of this file is testing the LIMIT ... OFFSET ... clause
# of SELECT statements.
#
# $Id: limit.test,v 1.17 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: limit.test,v 1.18 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -219,6 +219,7 @@ do_test limit-6.8 {
# Make sure LIMIT works well with compound SELECT statements.
# Ticket #393
#
ifcapable compound {
do_test limit-7.1.1 {
catchsql {
SELECT x FROM t2 LIMIT 5 UNION ALL SELECT a FROM t6;
@ -295,6 +296,7 @@ do_test limit-7.12 {
ORDER BY 1 DESC LIMIT 1 OFFSET 1;
}
} {30}
} ;# ifcapable compound
# Tests for limit in conjunction with distinct. The distinct should
# occur before both the limit and the offset. Ticket #749.

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.11 2004/11/22 05:26:28 danielk1977 Exp $
# $Id: memdb.test,v 1.12 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
@ -273,11 +273,13 @@ do_test memdb-6.4 {
SELECT * FROM t2;
}
} {1 2 1 2 3 2 3 4 1 4 5 4}
ifcapable compound {
do_test memdb-6.5 {
execsql {
SELECT a FROM t2 UNION SELECT b FROM t2 ORDER BY 1;
}
} {1 2 3 4 5}
} ;# ifcapable compound
do_test memdb-6.6 {
execsql {
CREATE INDEX i2 ON t2(c);

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.13 2004/08/20 18:34:20 drh Exp $
# $Id: minmax.test,v 1.14 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -122,6 +122,7 @@ 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
@ -142,6 +143,7 @@ do_test minmax-4.3 {
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
# including empty tables with indices. Ticket #296.
@ -261,6 +263,7 @@ 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 (
@ -275,6 +278,7 @@ do_test minmax-9.2 {
)
}
} {{}}
} ;# ifcapable compound
# 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: misc2.test,v 1.16 2004/11/22 10:02:23 danielk1977 Exp $
# $Id: misc2.test,v 1.17 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -40,6 +40,7 @@ do_test misc2-1.2 {
# Make sure ROWID works on a view and a subquery. Ticket #364
#
ifcapable view {
do_test misc2-2.1 {
execsql {
CREATE TABLE t1(a,b,c);
@ -49,7 +50,6 @@ do_test misc2-2.1 {
SELECT rowid, * FROM (SELECT * FROM t1, t2);
}
} {{} 1 2 3 7 8 9}
ifcapable view {
do_test misc2-2.2 {
execsql {
CREATE VIEW v1 AS SELECT * FROM t1, t2;

View File

@ -13,7 +13,7 @@
# This file implements tests for miscellanous features that were
# left out of other test files.
#
# $Id: misc4.test,v 1.7 2004/10/19 16:40:59 drh Exp $
# $Id: misc4.test,v 1.8 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -84,6 +84,7 @@ do_test misc4-2.4 {
# Ticket #966
#
ifcapable compound {
do_test misc4-3.1 {
execsql {
CREATE TABLE Table1(ID integer primary key, Value TEXT);
@ -96,6 +97,7 @@ do_test misc4-3.1 {
ORDER BY 1, 2;
}
} {{} {} 1 x 1 z}
} ;# ifcapable compound
finish_test

View File

@ -144,11 +144,13 @@ do_test null-5.1 {
# A UNION to two queries should treat NULL values
# as distinct
#
ifcapable compound {
do_test null-6.1 {
execsql {
select b from t1 union select c from t1 order by c;
}
} {{} 0 1}
} ;# ifcapable compound
# The UNIQUE constraint only applies to non-null values
#

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.36 2004/08/20 18:34:20 drh Exp $
# $Id: select1.test,v 1.37 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -434,6 +434,8 @@ do_test select1-6.9 {
ORDER BY A.f1, B.f1}} msg]
lappend v $msg
} {0 {A.f1 11 B.f1 11 A.f1 11 B.f1 33 A.f1 33 B.f1 11 A.f1 33 B.f1 33}}
ifcapable compound {
do_test select1-6.10 {
set v [catch {execsql2 {
SELECT f1 FROM test1 UNION SELECT f2 FROM test1
@ -448,6 +450,7 @@ do_test select1-6.11 {
}} msg]
lappend v $msg
} {0 {f2+100 11 f2+100 33 f2+100 122 f2+100 144}}
} ;#ifcapable compound
do_test select1-7.1 {
set v [catch {execsql {
@ -455,12 +458,14 @@ do_test select1-7.1 {
}} msg]
lappend v $msg
} {1 {near ";": syntax error}}
ifcapable compound {
do_test select1-7.2 {
set v [catch {execsql {
SELECT f1 FROM test1 UNION SELECT WHERE;
}} msg]
lappend v $msg
} {1 {near "WHERE": syntax error}}
} ;# ifcapable compound
do_test select1-7.3 {
set v [catch {execsql {SELECT f1 FROM test1 as 'hi', test2 as}} msg]
lappend v $msg
@ -713,38 +718,50 @@ do_test select1-12.4 {
execsql {
DELETE FROM t3;
INSERT INTO t3 VALUES(1,2);
}
} {}
ifcapable compound {
do_test select1-12.5 {
execsql {
SELECT * FROM t3 UNION SELECT 3 AS 'a', 4 ORDER BY a;
}
} {1 2 3 4}
do_test select1-12.5 {
do_test select1-12.6 {
execsql {
SELECT 3, 4 UNION SELECT * FROM t3;
}
} {1 2 3 4}
do_test select1-12.6 {
} ;# ifcapable compound
do_test select1-12.7 {
execsql {
SELECT * FROM t3 WHERE a=(SELECT 1);
}
} {1 2}
do_test select1-12.7 {
do_test select1-12.8 {
execsql {
SELECT * FROM t3 WHERE a=(SELECT 2);
}
} {}
do_test select1-12.8 {
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.9 {
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;
}
} {z.x 1 z.x 3}
} ;# ifcapable compound
finish_test

View File

@ -12,11 +12,16 @@
# focus of this file is testing UNION, INTERSECT and EXCEPT operators
# in SELECT statements.
#
# $Id: select4.test,v 1.16 2004/05/27 17:22:56 drh Exp $
# $Id: select4.test,v 1.17 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# Most tests in this file depend on compound-select. But there are a couple
# right at the end that test DISTINCT, so we cannot omit the entire file.
#
ifcapable compound {
# Build some test data
#
execsql {
@ -468,6 +473,8 @@ do_test select4-7.4 {
}
} {n 1 log 0 n 2 log 1}
} ;# ifcapable compound
# Make sure DISTINCT works appropriately on TEXT and NUMERIC columns.
do_test select4-8.1 {
execsql {

View File

@ -12,7 +12,7 @@
# focus of this file is testing SELECT statements that contain
# subqueries in their FROM clause.
#
# $Id: select6.test,v 1.13 2004/11/03 16:27:02 drh Exp $
# $Id: select6.test,v 1.14 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -294,6 +294,7 @@ do_test select6-5.2 {
# Tests of compound sub-selects
#
ifcapable compound {
do_test select5-6.1 {
execsql {
DELETE FROM t1 WHERE x>4;
@ -335,6 +336,7 @@ do_test select6-6.6 {
) ORDER BY a;
}
} {1 3}
} ;# ifcapable compound
# Subselects with no FROM clause
#

View File

@ -10,12 +10,14 @@
# focus of this file is testing compute SELECT statements and nested
# views.
#
# $Id: select7.test,v 1.2 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: select7.test,v 1.3 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
ifcapable compound {
# A 3-way INTERSECT. Ticket #875
do_test select7-1.1 {
execsql {
@ -48,5 +50,7 @@ do_test select7-2.1 {
} {1 1}
} ;# ifcapable view
} ;# ifcapable compound
finish_test

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The
# focus of this file is testing the CREATE TABLE statement.
#
# $Id: sort.test,v 1.17 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: sort.test,v 1.18 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -296,6 +296,8 @@ do_test sort-7.4 {
SELECT b FROM v4 ORDER BY 1;
}
} {1 11 12 2}
ifcapable compound {
do_test sort-7.5 {
execsql {
SELECT a FROM t4 UNION SELECT a FROM v4 ORDER BY 1;
@ -316,6 +318,7 @@ do_test sort-7.8 {
SELECT b FROM t4 UNION SELECT b FROM v4 ORDER BY 1;
}
} {1 11 12 2}
} ;# ifcapable compound
} ;# ifcapable view
#### Version 3 works differently here:

View File

@ -12,7 +12,7 @@
# focus of this file is testing SELECT statements that are part of
# expressions.
#
# $Id: subselect.test,v 1.10 2004/08/20 18:34:20 drh Exp $
# $Id: subselect.test,v 1.11 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -102,6 +102,7 @@ do_test subselect-2.3 {
# Verify that the ORDER BY clause is honored in a subquery.
#
ifcapable compound {
do_test subselect-3.1 {
execsql {
CREATE TABLE t3(x int);
@ -109,6 +110,18 @@ do_test subselect-3.1 {
SELECT * FROM t3 ORDER BY x;
}
} {1 2 3 4 5 6}
} ;# ifcapable compound
ifcapable !compound {
do_test subselect-3.1 {
execsql {
CREATE TABLE t3(x int);
INSERT INTO t3 SELECT a FROM t1;
INSERT INTO t3 SELECT b FROM t1;
SELECT * FROM t3 ORDER BY x;
}
} {1 2 3 4 5 6}
} ;# ifcapable !compound
do_test subselect-3.2 {
execsql {
SELECT sum(x) FROM (SELECT x FROM t3 ORDER BY x LIMIT 2);

View File

@ -266,6 +266,10 @@ do_test trigger-3.7 {
SELECT * FROM t2;
}
} {}
# There are two versions of trigger-3.8 and trigger-3.9. One that uses
# compound SELECT statements, and another that does not.
ifcapable compound {
do_test trigger-3.8 {
execsql {
INSERT INTO t1 VALUES(3,4);
@ -280,6 +284,25 @@ do_test trigger-3.9 {
SELECT * FROM t1 UNION ALL SELECT * FROM t2;
}
} {1 2 3 4 5 6 3 4}
} ;# ifcapable compound
ifcapable !compound {
do_test trigger-3.8 {
execsql {
INSERT INTO t1 VALUES(3,4);
SELECT * FROM t1;
SELECT * FROM t2;
}
} {1 2 3 4 3 4}
do_test trigger-3.9 {
db close
sqlite3 db test.db
execsql {
INSERT INTO t1 VALUES(5,6);
SELECT * FROM t1;
SELECT * FROM t2;
}
} {1 2 3 4 5 6 3 4}
} ;# ifcapable !compound
do_test trigger-4.1 {
execsql {
@ -405,6 +428,9 @@ do_test trigger-8.6 {
# Make sure REPLACE works inside of triggers.
#
# There are two versions of trigger-9.1 and trigger-9.2. One that uses
# compound SELECT statements, and another that does not.
ifcapable compound {
do_test trigger-9.1 {
execsql {
CREATE TABLE t3(a,b);
@ -422,6 +448,26 @@ do_test trigger-9.2 {
SELECT * FROM t3 UNION ALL SELECT 99, 99 UNION ALL SELECT * FROM t4;
}
} {1 2 1 3 99 99 1 3}
}
ifcapable !compound {
do_test trigger-9.1 {
execsql {
CREATE TABLE t3(a,b);
CREATE TABLE t4(x UNIQUE, b);
CREATE TRIGGER r34 AFTER INSERT ON t3 BEGIN
REPLACE INTO t4 VALUES(new.a,new.b);
END;
INSERT INTO t3 VALUES(1,2);
SELECT * FROM t3; SELECT 99, 99; SELECT * FROM t4;
}
} {1 2 99 99 1 2}
do_test trigger-9.2 {
execsql {
INSERT INTO t3 VALUES(1,3);
SELECT * FROM t3; SELECT 99, 99; SELECT * FROM t4;
}
} {1 2 1 3 99 99 1 3}
}
execsql {
DROP TABLE t2;

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.20 2004/11/22 08:43:32 danielk1977 Exp $
# $Id: view.test,v 1.21 2004/11/22 13:35:42 danielk1977 Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
@ -146,6 +146,8 @@ do_test view-3.3 {
SELECT * FROM v1 LIMIT 1
}
} {xyz 2 pqr 7 c-b 1}
ifcapable compound {
do_test view-3.4 {
execsql2 {
CREATE VIEW v3 AS SELECT a FROM t1 UNION SELECT b FROM t1 ORDER BY b;
@ -162,6 +164,7 @@ do_test view-3.5 {
SELECT y FROM v4 ORDER BY y LIMIT 4;
}
} {y 2 y 3 y 5 y 6}
} ;# ifcapable compound
do_test view-4.1 {