]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Simplify a branch in the "*" expansion logic. New test case for an
authordrh <>
Mon, 9 May 2022 12:59:16 +0000 (12:59 +0000)
committerdrh <>
Mon, 9 May 2022 12:59:16 +0000 (12:59 +0000)
INSTEAD OF trigger on a RIGHT and FULL outer join.

FossilOrigin-Name: d2717348f43b571c7bb58498e0c723331abf85de174189e66aca2c438ca26d5f

manifest
manifest.uuid
src/select.c
test/joinD.test

index 7cf52986c133d85a3016ba1cec092569fb9ee4ab..d7e3c3c8440e905ff71efa96ff6dd2c94a9ea870 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Perserve\sthe\srequested\sreserved-bytes\ssize\sfor\sthe\sdatabase\sfile\swhen\ndoing\sa\sVACUUM.
-D 2022-05-06T22:29:45.170
+C Simplify\sa\sbranch\sin\sthe\s"*"\sexpansion\slogic.\s\sNew\stest\scase\sfor\san\nINSTEAD\sOF\strigger\son\sa\sRIGHT\sand\sFULL\souter\sjoin.
+D 2022-05-09T12:59:16.562
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -553,7 +553,7 @@ F src/printf.c 512574910a45341c8ad244bd3d4939968ebdfde215645b676fff01cc46e90757
 F src/random.c 097dc8b31b8fba5a9aca1697aeb9fd82078ec91be734c16bffda620ced7ab83c
 F src/resolve.c e9ee235c4151d2b7fa47435a219bfd30bf516a804d2f004639858087ebf3137b
 F src/rowset.c ba9515a922af32abe1f7d39406b9d35730ed65efab9443dc5702693b60854c92
-F src/select.c 151adca2c9ea6f51215e4351bb8eb4f0012bf98c3d5a5c991d4a019c7cbb143e
+F src/select.c 625865ad9f8efec6bd3176461c5eeb36c8003f7a5366438d86e3f89f45df1f01
 F src/shell.c.in ae0a6fae983caac6f8c824733f0599dfdf7b3a7e8efdef3cb5e3ab2e457ffc35
 F src/sqlite.h.in 2a35f62185eb5e7ecc64a2f68442b538ce9be74f80f28a00abc24837edcf1c17
 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
@@ -1153,7 +1153,7 @@ F test/join9.test 9056ddd3b0c0f4f9d658f4521038d9a37dc23ead8ca9a505d0b0db2b6a471e
 F test/joinA.test 7eab225dc1c1ab258a5e62513a4ed7cabbd3db971d59d5d92f4fb6fa14c12f6a
 F test/joinB.test 1b2ba3fc8568b49411787fccbf540570c148e9b6a53a30f80691cb6268098ded
 F test/joinC.test 1f1a602c2127f55f136e2cbd3bf2d26546614bf8cffe5902ec1ac9c07f87f207
-F test/joinD.test 58fb0aae651798a2264128f3f6f6ee3c9b5d5548071a1044365511b10de4edd3
+F test/joinD.test 7f0f4dd1f2767330bf1fda5c9cc8a437015a54bcd2355036b4d04ddfc1519d76
 F test/journal1.test c7b768041b7f494471531e17abc2f4f5ebf9e5096984f43ed17c4eb80ba34497
 F test/journal2.test 9dac6b4ba0ca79c3b21446bbae993a462c2397c4
 F test/journal3.test 7c3cf23ffc77db06601c1fcfc9743de8441cb77db9d1aa931863d94f5ffa140e
@@ -1953,8 +1953,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 217b33234dc3dc36b5b6add50c170869421057a56a7576d1a61767956248d5c9
-R fb5b71dd78e91f00920386e6c95ee22a
+P dac6d87c71606f3ec7ce601be6d17357d323476ecb60dbb167030146783b62b2
+R d81ef2c896b333ba6ad03fd21ef90d06
 U drh
-Z 5c19e3fe26f9144dbbad9274556b129a
+Z 1c1d5a324638d0fbf012275c6ac59a4c
 # Remove this line to create a well-formed Fossil manifest.
index 80d0655a95e35b2bf2576807984e2a3ebf647bf9..a2209b5b33d5273b0ad26d9a621643c674980621 100644 (file)
@@ -1 +1 @@
-dac6d87c71606f3ec7ce601be6d17357d323476ecb60dbb167030146783b62b2
\ No newline at end of file
+d2717348f43b571c7bb58498e0c723331abf85de174189e66aca2c438ca26d5f
\ No newline at end of file
index 4ae8f16d1e81d391f98059baf79355c8863af5c3..232554a914537fe1287cd12662ab0990c1ac38c7 100644 (file)
@@ -5884,7 +5884,7 @@ static int selectExpander(Walker *pWalker, Select *p){
             */
             if( pTab->aCol[j].colFlags & (COLFLAG_HIDDEN|COLFLAG_NOEXPAND) ){
               if( IsHiddenColumn(&pTab->aCol[j])
-               && (selFlags & (SF_IncludeHidden|SF_NestedFrom))==0
+               && (selFlags & SF_IncludeHidden)==0
               ){
                 continue;
               }
index 9ac813ffabdb509d95ba35fbf6d715bb741a0ecd..aba1d62800d53230a0213dff2e6e06c005303eb3 100644 (file)
@@ -11,8 +11,8 @@
 #
 # This file implements tests for JOINs that use Bloom filters.
 #
-# The test case output is all generated by PostgreSQL 14.  This test module
-# was created as follows:
+# The test case output is (mostly) all generated by PostgreSQL 14.  This
+# test module was created as follows:
 #
 #   1.   Run a TCL script (included at the bottom of this file) that
 #        generates an input script for "psql" that will run man
@@ -26,6 +26,9 @@
 #
 #   4.   Add this header, and the script content at the footer.
 #
+# A few extra tests that were not generated from postgresql output are
+# added at the end.
+#
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
 db nullvalue -
@@ -2897,7 +2900,41 @@ do_execsql_test joinD-64 {
    -   -   -   -   -  - 200  0   -  -
    -   -   -   -   -  -   -  - 300  0
 }
+
+#############################################################################
+# The following are extra tests added manually
+
+do_execsql_test joinD-1000 {
+  CREATE VIEW v1 AS
+    SELECT *
+    FROM t1 INNER JOIN t2 ON t1.b=t2.b AND t2.x>0
+    RIGHT JOIN t3 ON t1.c=t3.c AND t3.y>0
+    LEFT JOIN t4 ON t1.d=t4.d AND t4.z>0;
+  CREATE TRIGGER v1r1 INSTEAD OF UPDATE OF c ON v1 BEGIN
+    UPDATE t1 SET c=new.c WHERE (a,b,c,d) IS (old.a,old.b,old.c,old.d);
+    UPDATE t3 SET c=new.c WHERE (c,y) IS (old.c,old.y);
+  END;
+  SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y;
+} {
+  30 130 230 330 130 30 230 30 330 30
+   -   -   -   -   -  - 233 33   -  -
+  36 136 236 336 136 36 236 36   -  -
+   -   -   -   -   -  - 239 39   -  -
+}
+do_execsql_test joinD-1010 {
+  BEGIN;
+  UPDATE v1 SET c=c+1000 WHERE y BETWEEN 30 and 40;
+  SELECT * FROM v1 WHERE y BETWEEN 30 AND 40 ORDER BY y;
+  ROLLBACK;
+} {
+  30 130 1230 330 130 30 1230 30 330 30
+   -   -    -   -   -  -  233 33   -  -
+  36 136 1236 336 136 36 1236 36   -  -
+   -   -    -   -   -  -  239 39   -  -
+}
+
 finish_test
+
 #############################################################################
 # This is the TCL script used to generate the psql script that generated
 # the data above.