-C On\sx64\shardware,\sround-trip\suint64_t→double→uint64_t\sconversions\nfail\sfor\svalues\sgreater\sthan\sUINT64_MAX-2047.\s\sThis\scaused\sthe\sSQLite\ntext-to-float\sconverter\sroutine\sto\sgive\sincorrect\sresults\sfor\svalues\nbetween\s'1.8446744073709550592eNNN'\sand\s'1.8446744073709551609eNNN'\sfor\sany\nexponent\sNNN.\s\sThis\sproblem\swas\sintroduced\sby\scheck-in\s[761d8fd18b0ee868]\nand\sfirst\sappeared\sin\sversion\s3.47.0\sand\swas\sreported\sby\n[forum:/forumpost/569a7209179a7f5e|forum\spost\s569a7209179a7f5e].\s\sFixed\nby\sthis\scheck-in.
-D 2024-12-07T14:48:55.778
+C Fix\san\sobscure\sproblem\swith\smultiple\souter\sjoins,\sON\sclauses\sand\squery\sflattening.\sForum\s[forum:5c8a069d23|thread\s5c8a069d23].
+D 2024-12-09T11:12:12.968
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
F src/resolve.c c8a5372b97b2a2e972a280676f06ddb5b74e885d3b1f5ce383f839907b57ef68
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
-F src/select.c 1334b0606dbdc753c8333f41bff441c97f77ef8ad9e33f3701e8adfe3b587c28
+F src/select.c 1c2b2321e1658e02f96da96d3071abcaa6839a1d75edd960a75a0ab11b6041bb
F src/shell.c.in 660da73720fc0783a00317568aa098ff1887a0a5cbc0c49138d348d9fc890961
F src/sqlite.h.in 6afbcaae44140216704a6c82e4c4ea4118c46d5f6573d6c5fa4fc901ed9d369e
F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8
F test/select3.test 180223af31e1ca5537dd395ef9708ae18e651a233777fd366fd0d75469fc19c6
F test/select4.test f0684d3da3bccacbe2a1ebadf6fb49d9df6f53acb4c6ebc228a88d0d6054cc7b
F test/select5.test 8afc5e5dcdebc2be54472e73ebd9cd1adef1225fd15d37a1c62f969159f390ae
-F test/select6.test 9b2fb4ffedf52e1b5703cfcae1212e7a4a063f014c0458d78d29aca3db766d1f
+F test/select6.test d455cc36cb5658ba7002ccbf23d3d392801403e64ac6516190266a8ce167ad39
F test/select7.test b825420da8a0b5722fdb77f3369f6396a3d198c46e8787eb26ff9425d4ac9d27
F test/select8.test 8c8f5ae43894c891efc5755ed905467d1d67ad5d
F test/select9.test f7586b207ce2304ab80dc93d3146469a28fd4403621dd3a82d06644563d3c812
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 870403425493866232cf9e8fa62288861b7d0a4091b15d75727f8bb31da46f94
-R 2d1ae3d1053fb61b1868786464dea794
-U drh
-Z 8f0bbc8ae68469d8947e1d3fa193444c
+P 81342fa6dd03fffbe7d4d699ff049dcef4d30344578bb6f91cb58a4e5a4f6036
+R 3188b2c87a9e8a8a9fb6e913f7cbbec8
+T *branch * forum-5c8a069d23-fix
+T *sym-forum-5c8a069d23-fix *
+T -sym-trunk *
+U dan
+Z 0a776cf65bcb8516c8a437501b7f2ac9
# Remove this line to create a well-formed Fossil manifest.
/* Transfer the FROM clause terms from the subquery into the
** outer query.
*/
+ iNewParent = pSubSrc->a[0].iCursor;
for(i=0; i<nSubSrc; i++){
SrcItem *pItem = &pSrc->a[i+iFrom];
assert( pItem->fg.isTabFunc==0 );
if( pItem->fg.isUsing ) sqlite3IdListDelete(db, pItem->u3.pUsing);
*pItem = pSubSrc->a[i];
pItem->fg.jointype |= ltorj;
- iNewParent = pSubSrc->a[i].iCursor;
memset(&pSubSrc->a[i], 0, sizeof(pSubSrc->a[i]));
}
pSrc->a[iFrom].fg.jointype &= JT_LTORJ;
pWhere = pSub->pWhere;
pSub->pWhere = 0;
if( isOuterJoin>0 ){
+ assert( pSubSrc->nSrc==1 );
sqlite3SetJoinExpr(pWhere, iNewParent, EP_OuterON);
}
if( pWhere ){
SELECT * from t2);
} {1 3}
+#-------------------------------------------------------------------------
+reset_db
+do_execsql_test 13.100 {
+
+ CREATE TABLE t1(y INT);
+ INSERT INTO t1 (y) VALUES (1);
+
+ CREATE TABLE t2(x INTEGER);
+ INSERT INTO t2 VALUES(0);
+
+ CREATE TABLE empty1(z);
+}
+
+do_execsql_test 13.110 {
+ SELECT t1.y
+ FROM ( SELECT 'AAA' )
+ INNER JOIN (
+ SELECT 1 AS abc FROM (
+ SELECT 1 FROM t2 LEFT JOIN empty1
+ )
+ ) AS sub0 ON sub0.abc
+ , t1
+ RIGHT JOIN (SELECT 'BBB' FROM ( SELECT 'CCC' ))
+} {1}
+
+do_execsql_test 13.120 {
+ SELECT t1.y
+ FROM ( SELECT 'AAA' )
+ INNER JOIN (
+ SELECT 1 AS abc FROM (
+ SELECT 1 FROM t2 LEFT JOIN empty1
+ )
+ ) AS sub0 ON sub0.abc
+ , t1
+ RIGHT JOIN (SELECT 'BBB' FROM ( SELECT 'CCC' ))
+ WHERE t1.y
+} {1}
+
+
finish_test