From d4603a2cab868156f99f4016401bed8d027196d6 Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 19 Jul 2017 11:52:25 +0000 Subject: [PATCH] Add further tests to unionvtab.test. FossilOrigin-Name: c93284cd65b6471bffc38696e14dc24a2170698faf566cf91b727ba272f88c25 --- manifest | 12 +++---- manifest.uuid | 2 +- test/unionvtab.test | 77 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index aed1eb2c5a..bab5aa84fe 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 516ce5aff9..78e4bc46fe 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -255d6b99de2bb210c09ebee9f9481ba3d1130fda47e6e01b4cc8411d00679d09 \ No newline at end of file +c93284cd65b6471bffc38696e14dc24a2170698faf566cf91b727ba272f88c25 \ No newline at end of file diff --git a/test/unionvtab.test b/test/unionvtab.test index b13424b55c..9145c072f6 100644 --- a/test/unionvtab.test +++ b/test/unionvtab.test @@ -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