CREATE VIRTUAL TABLE onetwothree USING zonefile_files;
} {1 {do not create zonefile_files tables directly!}}
+#-------------------------------------------------------------------------
+# A zone file containing zero keys.
+#
+reset_db
+load_static_extension db zonefile
+do_execsql_test 9.0 {
+ CREATE TABLE s(k INTEGER PRIMARY KEY,frame INTEGER,idx INTEGER,v BLOB);
+ SELECT zonefile_write('test.zonefile', 's');
+} {{}}
+do_execsql_test 9.1 {
+ CREATE VIRTUAL TABLE ss USING zonefile;
+ INSERT INTO ss_files(filename) VALUES('test.zonefile');
+ SELECT * FROM ss;
+} {}
+
+#-------------------------------------------------------------------------
+# Test UPDATE and DELETE statements on the %_files virtual table.
+#
+reset_db
+load_static_extension db zonefile
+do_execsql_test 10.0 {
+ CREATE TABLE data(k INTEGER PRIMARY KEY, v BLOB);
+ INSERT INTO data(k, v) VALUES(1, randomblob(100));
+ INSERT INTO data(k, v) VALUES(2, randomblob(100));
+ INSERT INTO data(k, v) VALUES(3, randomblob(100));
+ INSERT INTO data(k, v) VALUES(4, randomblob(100));
+ INSERT INTO data(k, v) VALUES(5, randomblob(100));
+ INSERT INTO data(k, v) VALUES(6, randomblob(100));
+ INSERT INTO data(k, v) VALUES(7, randomblob(100));
+ INSERT INTO data(k, v) VALUES(8, randomblob(100));
+ INSERT INTO data(k, v) VALUES(9, randomblob(100));
+
+ CREATE VIEW v1 AS
+ SELECT k, -1 AS frame, -1 AS idx, v
+ FROM data WHERE k IN (1,2,3);
+ SELECT zonefile_write('test1.zonefile', 'v1');
+
+ CREATE VIEW v2 AS
+ SELECT k, -1 AS frame, -1 AS idx, v
+ FROM data WHERE k IN (4,5,6);
+ SELECT zonefile_write('test2.zonefile', 'v2');
+
+ CREATE VIEW v3 AS
+ SELECT k, -1 AS frame, -1 AS idx, v
+ FROM data WHERE k IN (7,8,9);
+ SELECT zonefile_write('test3.zonefile', 'v3');
+} {{} {} {}}
+
+do_execsql_test 10.1 {
+ CREATE VIRTUAL TABLE "a b" USING zonefile;
+ INSERT INTO "a b_files"(filename) VALUES('test1.zonefile');
+ SELECT k FROM "a b"
+} {1 2 3}
+
+do_execsql_test 10.2 {
+ UPDATE "a b_files" SET filename = 'test2.zonefile';
+ SELECT k FROM "a b"
+} {4 5 6}
+
+do_execsql_test 10.3 {
+ INSERT INTO "a b_files"(filename) VALUES('test1.zonefile');
+ INSERT INTO "a b_files"(filename) VALUES('test3.zonefile');
+ SELECT k FROM "a b"
+} {1 2 3 4 5 6 7 8 9}
+
+do_execsql_test 10.4 {
+ DELETE FROM "a b_files" WHERE filename = 'test2.zonefile';
+ SELECT k FROM "a b"
+} {1 2 3 7 8 9}
+
+do_execsql_test 10.5 {
+ DELETE FROM "a b_files" WHERE filename = 'test1.zonefile';
+ SELECT k FROM "a b"
+} {7 8 9}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+load_static_extension db zonefile
+do_execsql_test 11.0 {
+ CREATE TABLE data(k INTEGER PRIMARY KEY, v BLOB);
+ INSERT INTO data(k, v) VALUES(-1, randomblob(100));
+ INSERT INTO data(k, v) VALUES(1000, randomblob(100));
+ INSERT INTO data(k, v) VALUES(-1000, randomblob(100));
+ INSERT INTO data(k, v) VALUES(9223372036854775807, randomblob(100));
+ INSERT INTO data(k, v) VALUES(-9223372036854775807, randomblob(100));
+ INSERT INTO data(k, v) VALUES(-9223372036854775808, randomblob(100));
+
+ CREATE VIEW v1 AS SELECT k, -1 AS frame, -1 AS idx, v FROM data;
+ SELECT zonefile_write('test1.zonefile', 'v1');
+} {{}}
+
+do_execsql_test 11.1 {
+ CREATE VIRTUAL TABLE one USING zonefile;
+ INSERT INTO "one_files"(filename) VALUES('test1.zonefile');
+ SELECT k FROM one
+} {-9223372036854775808 -9223372036854775807 -1000 -1 1000 9223372036854775807}
+
+do_execsql_test 11.2 {
+ SELECT count(*) FROM data JOIN one USING (k) WHERE one.v==data.v
+} 6
+
+#-------------------------------------------------------------------------
+#
+do_catchsql_test 12.1 {
+ CREATE VIRTUAL TABLE nm USING zonefile(abcd)
+} {1 {parse error in option: abcd}}
+do_catchsql_test 12.2 {
+ CREATE VIRTUAL TABLE nm USING zonefile(a=b)
+} {1 {parse error in option: a=b}}
+do_catchsql_test 12.3 {
+ CREATE VIRTUAL TABLE nm USING zonefile(cachesiza=b)
+} {1 {parse error in option: cachesiza=b}}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+load_static_extension db zonefile
+do_execsql_test 11.0 {
+ CREATE TABLE data(k INTEGER PRIMARY KEY, v BLOB);
+ WITH s(i) AS (
+ SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<250
+ )
+ INSERT INTO data SELECT i, randomblob(100) FROM s;
+ CREATE VIEW v1 AS SELECT k, -1 AS frame, -1 AS idx, v FROM data;
+ SELECT zonefile_write('test1.zonefile', 'v1');
+
+ CREATE VIRTUAL TABLE nm USING zonefile;
+ INSERT INTO nm_files(filename) VALUES('test1.zonefile');
+} {{}}
+
+foreach {tn cond} {
+ 1 "k > 30"
+ 2 "k >= 100"
+ 3 "k <= 100"
+ 4 "k < 55"
+ 5 "k LIKE '1%'"
+ 6 "k BETWEEN 10 AND 20"
+ 7 "k > 100 AND k < 200"
+} {
+ do_execsql_test 11.$tn.1 [subst {
+ SELECT count(*) FROM nm WHERE $cond
+ }] [db one "SELECT count(*) FROM data WHERE $cond"]
+
+ do_execsql_test 11.$tn.2 [subst {
+ SELECT count(*) FROM nm WHERE $cond AND
+ v!=(SELECT v FROM data WHERE k=nm.k);
+ }] 0
+}
finish_test
-C Add\stest\scases\sand\sminor\sfixes\sfor\sthe\szonefile\smodule.
-D 2018-02-23T19:21:19.664
+C Fix\sa\sproblem\swith\shandling\s"k\s>=\s?"\sconstraints\sin\sthe\szonefile\smodule.
+D 2018-02-23T21:01:15.048
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F Makefile.in a2d2fb8d17c39ab5ec52beb27850b903949080848236923f436156b72a958737
F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
F ext/userauth/userauth.c 3410be31283abba70255d71fd24734e017a4497f
F ext/zonefile/README.md df86ef5b4f9aa8b07e1c8124b3f2dcea616927385aad59d525b784f0a06d446c
-F ext/zonefile/zonefile.c d14151c34fd9e5c73a4f345a1a2065d80dbf1596d06bf8a6547a12d18c44395d
-F ext/zonefile/zonefile1.test d1b2dcb7c0b8bba1f1fcb735fe1e6335670a23ee78e5ff0cc850e68b5540eb86
+F ext/zonefile/zonefile.c 886dc98b402cbfce902327725bcdb7e209e4ac4d41270be312f966023ca77b9b
+F ext/zonefile/zonefile1.test f9d80a9138b34953d25387b094b886a3c66ddfb3ce07cd6e11bae20ef0bc5b02
F ext/zonefile/zonefileenc.test 10e770105edeff6a05df6be8db5481eaa8fcda2422ec5446ad21b34ed70d02d7
-F ext/zonefile/zonefilefault.test 4a454959db6568053a6ecfa3c523661476a922d417391f788e9ff2f5987dbfa8
+F ext/zonefile/zonefilefault.test 319dc0df65ee9dd89da5c7a9b72b88decfafbe627ab29ca11d93678732cca35e
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 994aa77d7826ab220727595a6a21f1f95a8f7590798879706016665ca1934dd1
-R da6c768beabe7f2a81e16e844ff466e6
+P dbbcbf0066ef82c789981feff78d95861a836e6e23a22ad3bb698dd257062f75
+R a381dedf59b4651a47fa5bb736b93522
U dan
-Z de8917d47be58461bbb77ef08b41c047
+Z e0cceed6c3e6fbf110dfbc3e5d5a0f09