]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add further tests to unionvtab.test.
authordan <dan@noemail.net>
Wed, 19 Jul 2017 11:52:25 +0000 (11:52 +0000)
committerdan <dan@noemail.net>
Wed, 19 Jul 2017 11:52:25 +0000 (11:52 +0000)
FossilOrigin-Name: c93284cd65b6471bffc38696e14dc24a2170698faf566cf91b727ba272f88c25

manifest
manifest.uuid
test/unionvtab.test

index aed1eb2c5a99cfbcf1e32e92868fdb6f25707004..bab5aa84fe577f9ad7c17c896f6705d2e74812a4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\scrash\sin\sunionvtab\scaused\sby\sa\smisconfiguration.\sAdd\sother\stest\scases\nfor\sthe\ssame.
-D 2017-07-18T21:19:17.472
+C Add\sfurther\stests\sto\sunionvtab.test.
+D 2017-07-19T11:52:25.505
 F Makefile.in d9873c9925917cca9990ee24be17eb9613a668012c85a343aef7e5536ae266e8
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 02b469e9dcd5b7ee63fc1fb05babc174260ee4cfa4e0ef2e48c3c6801567a016
@@ -1432,7 +1432,7 @@ F test/tt3_vacuum.c 1753f45917699c9c1f66b64c717a717c9379f776
 F test/types.test bf816ce73c7dfcfe26b700c19f97ef4050d194ff
 F test/types2.test 1aeb81976841a91eef292723649b5c4fe3bc3cac
 F test/types3.test 99e009491a54f4dc02c06bdbc0c5eea56ae3e25a
-F test/unionvtab.test a5b6a8118de8673aec45cdf8f4aa0bcd05b859e448424558fcbd9ee0f1cc41c2
+F test/unionvtab.test 3cb7463d8c6a34ae7c043e53103d63d19465a1488f4587a981ae05e978cc6d26
 F test/unionvtabfault.test ccb87c510efd0da88d90d813cfaeebe69f2be78cdfbdc3343b04fd9fc507d887
 F test/unique.test 93f8b2ef5ea51b9495f8d6493429b1fd0f465264
 F test/unique2.test 3674e9f2a3f1fbbfd4772ac74b7a97090d0f77d2
@@ -1636,7 +1636,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 505fdc8ff5150276d3c6ab6135a542b791e9e79e2f76323e592b73b3fdc9bc2a
-R 8a8c551ade3a7904ad53bd61f1cbe08d
+P 255d6b99de2bb210c09ebee9f9481ba3d1130fda47e6e01b4cc8411d00679d09
+R 95d6426702858750789f88d482aacd89
 U dan
-Z 3243e7bcd67f989b9bcab9c5c686c467
+Z 0400e0363a16f21362bc55d50dbde94c
index 516ce5aff949b8bb72cbe72b0d7be912f1b11ff0..78e4bc46fe8a7b5f3b1a82c39b1897ed16efb87b 100644 (file)
@@ -1 +1 @@
-255d6b99de2bb210c09ebee9f9481ba3d1130fda47e6e01b4cc8411d00679d09
\ No newline at end of file
+c93284cd65b6471bffc38696e14dc24a2170698faf566cf91b727ba272f88c25
\ No newline at end of file
index b13424b55cc89e010464b74da9f3acd7cfd8bb35..9145c072f6cd97342febc4e54fe3310fec121b64 100644 (file)
@@ -91,6 +91,16 @@ do_execsql_test 1.8 {
   20 twenty 21 twenty-one 22 twenty-two
 }
 
+do_execsql_test 1.9 {
+  CREATE VIRTUAL TABLE temp.qll USING unionvtab(
+    'SELECT * FROM src WHERE db!=''xyz'''
+  );
+  SELECT * FROM qll WHERE rowid BETWEEN 10 AND 21;
+} {
+  10 ten 11 eleven 12 twelve
+  20 twenty 21 twenty-one
+}
+
 #-------------------------------------------------------------------------
 # Error conditions.
 #
@@ -124,6 +134,9 @@ do_execsql_test 2.3.0 {
   CREATE TABLE wr1(a, b, c PRIMARY KEY) WITHOUT ROWID;
   CREATE VIEW v1 AS SELECT * FROM t1;
   CREATE VIEW v2 AS SELECT _rowid_, * FROM t1;
+
+  CREATE TABLE wr2(a, _rowid_ INTEGER, c PRIMARY KEY) WITHOUT ROWID;
+  CREATE TABLE wr3(a, b, _rowid_ PRIMARY KEY) WITHOUT ROWID;
 }
 do_catchsql_test 2.3.1 {
   CREATE VIRTUAL TABLE temp.u1 USING unionvtab("VALUES('main', 'wr1', 1, 2)");
@@ -134,6 +147,12 @@ do_catchsql_test 2.3.2 {
 do_catchsql_test 2.3.3 {
   CREATE VIRTUAL TABLE temp.u1 USING unionvtab("VALUES(NULL, 'v2', 1, 2)");
 } {1 {no such rowid table: v2}}
+do_catchsql_test 2.3.4 {
+  CREATE VIRTUAL TABLE temp.u1 USING unionvtab("VALUES(NULL, 'wr2', 1, 2)");
+} {1 {no such rowid table: wr2}}
+do_catchsql_test 2.3.5 {
+  CREATE VIRTUAL TABLE temp.u1 USING unionvtab("VALUES(NULL, 'wr3', 1, 2)");
+} {1 {no such rowid table: wr3}}
 
 do_execsql_test 2.4.0 {
   CREATE TABLE x1(a BLOB, b);
@@ -372,5 +391,63 @@ do_execsql_test 4.4.4 {
   SELECT * FROM sl WHERE rowid>9223372036854775807
 } { }
 
+#-------------------------------------------------------------------------
+# More than 8 source tables.
+#
+do_execsql_test 5.0 {
+  CREATE TABLE c0(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c1(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c2(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c3(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c4(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c5(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c6(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c7(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c8(one, two INTEGER PRIMARY KEY);
+  CREATE TABLE c9(one, two INTEGER PRIMARY KEY);
+
+  INSERT INTO c0 VALUES('zero', 0);
+  INSERT INTO c1 VALUES('one', 1);
+  INSERT INTO c2 VALUES('two', 2);
+  INSERT INTO c3 VALUES('three', 3);
+  INSERT INTO c4 VALUES('four', 4);
+  INSERT INTO c5 VALUES('five', 5);
+  INSERT INTO c6 VALUES('six', 6);
+  INSERT INTO c7 VALUES('seven', 7);
+  INSERT INTO c8 VALUES('eight', 8);
+  INSERT INTO c9 VALUES('nine', 9);
+
+  CREATE VIRTUAL TABLE temp.cc USING unionvtab([
+    SELECT 'main', 'c9', 9, 9 UNION ALL
+    SELECT 'main', 'c8', 8, 8 UNION ALL
+    SELECT 'main', 'c7', 7, 7 UNION ALL
+    SELECT 'main', 'c6', 6, 6 UNION ALL
+    SELECT 'main', 'c5', 5, 5 UNION ALL
+    SELECT 'main', 'c4', 4, 4 UNION ALL
+    SELECT 'main', 'c3', 3, 3 UNION ALL
+    SELECT 'main', 'c2', 2, 2 UNION ALL
+    SELECT 'main', 'c1', 1, 1 UNION ALL
+    SELECT 'main', 'c0', 0, 0
+  ]);
+
+  SELECT sum(two) FROM cc;
+} {45}
+
+do_execsql_test 5.1 {
+  SELECT one FROM cc WHERE one>='seven'
+} {zero two three six seven}
+
+do_execsql_test 5.2 {
+  SELECT y.one FROM cc AS x, cc AS y WHERE x.one=y.one AND x.rowid>5
+} {six seven eight nine}
+
+do_execsql_test 5.3 {
+  SELECT cc.one FROM c4, cc WHERE cc.rowid>c4.rowid
+} {five six seven eight nine}
+
+do_execsql_test 5.4 {
+  SELECT * FROM cc WHERE two LIKE '6'
+} {six 6}
+
 finish_test