]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
New test cases for cursor renumbering in the UNION ALL query flattener.
authordrh <drh@noemail.net>
Wed, 30 Dec 2020 13:10:57 +0000 (13:10 +0000)
committerdrh <drh@noemail.net>
Wed, 30 Dec 2020 13:10:57 +0000 (13:10 +0000)
FossilOrigin-Name: 270babf259750f3d6c490a08df608a101b24b3c06b9e8a938a0e09a854af6a20

manifest
manifest.uuid
test/unionall.test

index 8a1fc0f31ff325bd2c362a2b505ec5f45ad4960a..14cf559ebcd800f60c0c2ce7a7ff755c46ef88e0 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Do\snot\sset\sthe\sP3\sparameter\son\sOP_RowCell\swhen\scopying\san\sindex\sbtree,\sas\nP3\sis\snot\sused\sin\sthat\scase.
-D 2020-12-29T15:06:26.440
+C New\stest\scases\sfor\scursor\srenumbering\sin\sthe\sUNION\sALL\squery\sflattener.
+D 2020-12-30T13:10:57.397
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -1627,7 +1627,7 @@ F test/tt3_vacuum.c 1753f45917699c9c1f66b64c717a717c9379f776
 F test/types.test bf816ce73c7dfcfe26b700c19f97ef4050d194ff
 F test/types2.test 1aeb81976841a91eef292723649b5c4fe3bc3cac
 F test/types3.test 99e009491a54f4dc02c06bdbc0c5eea56ae3e25a
-F test/unionall.test 25fe866e51b6b590f59117d713ee5e88f5ad8d1fea136a0c4b0c597904e07887
+F test/unionall.test ca6f612930c79e30f41f804dff4cce949b61347930847642e333ecd5d79f5964
 F test/unionall2.test c9a62db63350bcbce3a7bec50dd8c5410f08be33f8af435473756286d4657215
 F test/unionallfault.test 652bfbb630e6c43135965dc1e8f0a9a791da83aec885d626a632fe1909c56f73
 F test/unionvtab.test e1704ab1b4c1bb3ffc9da4681f8e85a0b909fd80b937984fc94b27415ac8e5a4
@@ -1894,7 +1894,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 328bc4a01dd67096be49c8b5a656109ad2839a7959d1b00c02a96bfbcb44ec18
-R 781b48b7ecdc86b8a50d5d0b6180469c
+P eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03
+R 9df7a36b340e01b8e6a68b556d08634a
 U drh
-Z 7a280581b61c05a6f5da0fb16cf85e09
+Z 1966d3d59e34224433c9949aacd8ed2d
index 7aff062ebd308e4a9c963121e7119e55da42cbbc..edc513b42100fff37f2632c29903de0b8ea3bbe4 100644 (file)
@@ -1 +1 @@
-eef070a4aadf02a845d0ed00767be049d3b76e811e24797a116776fa836d1b03
\ No newline at end of file
+270babf259750f3d6c490a08df608a101b24b3c06b9e8a938a0e09a854af6a20
\ No newline at end of file
index 5dfac42e13ad05ce385b983b2bea48224971db28..5cefa64a82bf23f7d3db2dee4c650ebb6980a46b 100644 (file)
@@ -283,4 +283,47 @@ do_execsql_test 4.3 {
   123 t1_a 456 t3_a 123 t1_a {} {}
 }
 
+# 2020-12-30: dbsqlfuzz find
+reset_db
+do_execsql_test 5.1 {
+  CREATE TABLE t1_a(a INTEGER PRIMARY KEY, b TEXT);
+  INSERT INTO t1_a VALUES(1,'one');
+  INSERT INTO t1_a VALUES(0,NULL);
+  CREATE TABLE t1_b(c INTEGER PRIMARY KEY, d TEXT);
+  INSERT INTO t1_b VALUES(2,'two');
+  INSERT INTO t1_b VALUES(5,'five');
+  CREATE TABLE t1_c(e INTEGER PRIMARY KEY, f TEXT);
+  INSERT INTO t1_c VALUES(3,'three');
+  INSERT INTO t1_c VALUES(6,'six');
+  CREATE TABLE t2(k,v);
+  INSERT INTO t2 VALUES(5,'v');
+  INSERT INTO t2 VALUES(4,'iv');
+  INSERT INTO t2 VALUES(3,'iii');
+  INSERT INTO t2 VALUES(2,'ii');
+  CREATE TABLE t3_a(k INTEGER PRIMARY KEY, v TEXT);
+  INSERT INTO t3_a VALUES(2,'ii');
+  INSERT INTO t3_a VALUES(4,'iv');
+  CREATE TABLE t3_b(k INTEG5R PRIMARY KEY, v TEXT);
+  INSERT INTO t3_b VALUES(NULL,'iii');
+  INSERT INTO t3_b VALUES(NULL,'v');
+  CREATE VIEW t1 AS 
+    SELECT a, b FROM t1_a   UNION ALL
+    SELECT c, d FROM t1_b   UNION ALL
+    SELECT e, f FROM t1_c;
+  CREATE VIEW t3 AS 
+      SELECT * FROM t3_a 
+      UNION ALL 
+      SELECT * FROM t3_b;
+  CREATE TRIGGER t3_insert INSTEAD OF INSERT ON t3 BEGIN
+      INSERT INTO t3_a SELECT new.k, new.v WHERE (new.k%2)==0;
+      INSERT INTO t3_b SELECT new.k, new.v WHERE (new.k%2)==1;
+  END;
+} {}
+do_execsql_test 5.10 {
+  SELECT *, '+' FROM t1 LEFT JOIN t2 ON (a NOT IN(SELECT v FROM t1, t3 WHERE a=k)=NOT EXISTS(SELECT 1 FROM t1 LEFT JOIN t3 ON (a=k)));
+} {0 {} {} {} + 1 one {} {} + 2 two {} {} + 5 five {} {} + 3 three {} {} + 6 six {} {} +}
+do_execsql_test 5.20 {
+  SELECT *, '+' FROM t1 LEFT JOIN t3 ON (a NOT IN(SELECT v FROM t1 LEFT JOIN t2 ON (a=k))=k);
+} {0 {} {} {} + 1 one {} {} + 2 two {} {} + 5 five {} {} + 3 three {} {} + 6 six {} {} +}
+
 finish_test