]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When two tables are joined by USING, the affinity of the join column can
authordrh <>
Sat, 16 May 2026 19:40:55 +0000 (19:40 +0000)
committerdrh <>
Sat, 16 May 2026 19:40:55 +0000 (19:40 +0000)
be the affinity of the corresponding column in either table.  But it must
be one or the other.

FossilOrigin-Name: 8cc0b52cca2d6b155b4b169e6f9de9e7d2dc61c40f89920c2b6bf86e549ab6f7

manifest
manifest.uuid
src/resolve.c
test/joinI.test

index 6c4cdeeffa7aa9375d4c38c52520317379661071..79c04c9634a54a3afd6e191f844b6be840d1f31c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sfalse-negatives\sin\sthe\ssqlite3ExprCanReturnSubtype()\sroutine\shaving\nto\sdo\swith\sCASE,\sCAST,\sand\sCOLLATE\sexpressions\sand\sthe\s"+"\sno-op\soperator.\n[forum:/forumpost/1f0168a120:Forum\spost\s1f0168a120].
-D 2026-05-16T17:28:56.739
+C When\stwo\stables\sare\sjoined\sby\sUSING,\sthe\saffinity\sof\sthe\sjoin\scolumn\scan\nbe\sthe\saffinity\sof\sthe\scorresponding\scolumn\sin\seither\stable.\s\sBut\sit\smust\nbe\sone\sor\sthe\sother.
+D 2026-05-16T19:40:55.080
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -734,7 +734,7 @@ F src/pragma.c 789ef67117b74b5be0a2db6681f7f0c55e6913791b9da309aefd280de2c8a74d
 F src/prepare.c 084a037fd3810cb7ffbfc001cd58c0ffac68ba36598a5084b55ea2a090014ebd
 F src/printf.c 7085e8504f519cf6cb23a84572f785b259769907fef94bbf90ef0a5a533ab89f
 F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
-F src/resolve.c c6a140e57b2453f010a7e9c4ae8c739d521a6da246542aa21a62624cc966db64
+F src/resolve.c 3383354aa86f2bfcc867da24efb0e3865cad436bded234c25a5e25183c45cb76
 F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
 F src/select.c 4c05cde130f26991b7411d8c6809e0630625e18078742c963a047b4b9cc01d49
 F src/shell.c.in 9827c3a059dc5ffe17770e7f80d92988462f80a35486b84197cb4372dd9fd8c6
@@ -1348,7 +1348,7 @@ F test/joinD.test 2ce62e7353a0702ca5e70008faf319c1d4686aa19fba34275c6d1da0e960be
 F test/joinE.test d5d182f3812771e2c0d97c9dcf5dbe4c41c8e21c82560e59358731c4a3981d6b
 F test/joinF.test 53dd66158806823ea680dd7543b5406af151b5aafa5cd06a7f3231cd94938127
 F test/joinH.test 1d2fc3190be68525fd9ce749b9468c40ba2930181e52fb5ee6f836051b38effb
-F test/joinI.test a4d37143fcc39e915d9feb08e614a13f88dfe332d77152a3c526a2370ddb9a70
+F test/joinI.test dd429893102187e8df0bb30ad1e9f85732158055d96eee8a12587988417d3fe4
 F test/journal1.test bc61a4228db11bffca118bd358ba4b868524bf080f3532749de6c539656e20fa
 F test/journal2.test 9dac6b4ba0ca79c3b21446bbae993a462c2397c4
 F test/journal3.test e5aeff93a7776cf644dbc48dec277655cff80a1cd24689036abc87869b120ea6
@@ -2205,9 +2205,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 614f8cbc374c7a2d39826706f16ab1c17e75abb420a70be356c7eefa95b271a5 b57d6b76b0f9f4f154997af83f14d545bf2b6b8f7194746835e4c34885db227a
-R 2a2f348cdea2758e17a1878550fc52a0
-T +closed b57d6b76b0f9f4f154997af83f14d545bf2b6b8f7194746835e4c34885db227a
+P 9be94e961457967408cbd0acf11877fbb323a48eee405fff53755770f1b3261a
+R f4a5ff99991f6d9cbeccb11fa4c77652
 U drh
-Z 553bd5602d0d8a7a6c58fe9827c438c2
+Z 1ea79e268f102209d2e3b093c77b1a9e
 # Remove this line to create a well-formed Fossil manifest.
index 7d64f9b5357db6649e9bd2f8b9c865004a10e108..64152e32602ea874ff3641c2d8edba96f4f0ec76 100644 (file)
@@ -1 +1 @@
-9be94e961457967408cbd0acf11877fbb323a48eee405fff53755770f1b3261a
+8cc0b52cca2d6b155b4b169e6f9de9e7d2dc61c40f89920c2b6bf86e549ab6f7
index b76bf38c007c5f92382cd0e0230b5ef0cac2bd37..dce1744fa098401c66bf78222a13b44cce029712 100644 (file)
@@ -774,6 +774,7 @@ static int lookupName(
         pExpr->op = TK_FUNCTION;
         pExpr->u.zToken = "coalesce";
         pExpr->x.pList = pFJMatch;
+        pExpr->affExpr = sqlite3ExprAffinity(pFJMatch->a[0].pExpr);
         cnt = 1;
         goto lookupname_end;
       }else{
index d0194579d834462bef7965f0a98400c676027584..8a5572caaac25ce8ae25e9fe785fb2625ec1d1f0 100644 (file)
@@ -211,5 +211,15 @@ do_execsql_test 7.3 {
   );
 } {1}
 
-finish_test
+#--------------------------------------------------------------------------
+# Forum post 2026-05-15T11:23:01Z
+#
+reset_db
+do_execsql_test 8.0 {
+  CREATE TABLE t1(x REAL);
+  CREATE TABLE t2(x REAL);
+  INSERT INTO t1 VALUES(1.0);
+  SELECT count(*) FROM t1 FULL JOIN t2 USING(x) WHERE x='1';
+} 1
 
+finish_test