diff --git a/manifest b/manifest index c77a3ad9e8..f034199d31 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Update\sEXPLAIN\soutput\sto\sinclude\sP4_SUBRTNSIG. -D 2024-07-04T17:49:34.845 +C Disable\sthe\sreuse\sof\sIN-clause\ssubqueries\sif\sthe\ssubquery\sis\san\sexplicit\n"SELECT\sALL".\s\sThe\sALL\skeyword\sis\salmost\snever\sused\sin\sactual\spractice\s(most\ndevelopers\sdon't\seven\sknow\sit\scan\sbe\sused)\sso\sthis\sshould\snot\sinterfere\swith\nthe\soptimization,\sbut\sit\sdoes\sgive\sus\sa\sconvenient\sway\sto\sturn\sit\soff\sfor\ntesting\spurposes. +D 2024-07-04T18:26:41.697 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -705,7 +705,7 @@ F src/date.c 13dd752847afb32ed70510ad7345a5b9c841f51ad904dba5d010f1fa3a6a324e F src/dbpage.c 80e46e1df623ec40486da7a5086cb723b0275a6e2a7b01d9f9b5da0f04ba2782 F src/dbstat.c 3b677254d512fcafd4d0b341bf267b38b235ccfddbef24f9154e19360fa22e43 F src/delete.c cb766727c78e715f9fb7ec8a7d03658ed2a3016343ca687acfcec9083cdca500 -F src/expr.c 06c1d1a0f8b5025f001bc8219ac63fded7c33494a1863afdc78032ed1085ffef +F src/expr.c dd797fc96a5be012283ea1a42d8444dd97e12300769007c242fb5ed48f90d7e3 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c 852f93c0ef995e0c2b8983059a2b97151c194cc8259e21f5bc2b7ac508348c2a F src/func.c 1f61e32e7a357e615b5d2e774bee563761fce4f2fd97ecb0f72c33e62a2ada5f @@ -2195,8 +2195,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 2accf32b6e45a396503c29eecc14a103bcc7b4c313cde921b26b489704060177 -R cc0b42021fc412ee4ab07a9997d10b3f -U dan -Z 6dc43e94d75155dfb066f57a2c862429 +P 61e56923c80d72d6467ec703b4946b251abf591649fa9e8e579667d7cbd25682 +R 038e67018e45d309cbfa350b0e65e1eb +U drh +Z 639a0b5da2cedf3c0b33a56e08aa9e79 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 99fd14fa87..bc7e68b109 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -61e56923c80d72d6467ec703b4946b251abf591649fa9e8e579667d7cbd25682 +a81299be2ce203dcc28e7d0ba24791cbfba80e1ee3e1564469a226cac8adb17d diff --git a/src/expr.c b/src/expr.c index 9ab1905050..636cbd0fed 100644 --- a/src/expr.c +++ b/src/expr.c @@ -3439,6 +3439,8 @@ static int findCompatibleInRhsSubrtn( assert( pExpr->op==TK_IN ); assert( !ExprUseYSub(pExpr) ); assert( ExprUseXSelect(pExpr) ); + assert( pExpr->x.pSelect!=0 ); + assert( (pExpr->x.pSelect->selFlags & SF_All)==0 ); v = pParse->pVdbe; assert( v!=0 ); pOp = sqlite3VdbeGetOp(v, 1); @@ -3514,11 +3516,9 @@ void sqlite3CodeRhsOfIN( ** Compute a signature for the RHS of the IN operator to facility ** finding and reusing prior instances of the same IN operator. */ - SubrtnSig *pSig; - if( !ExprUseXSelect(pExpr) ){ - pSig = 0; - }else{ - assert( pExpr->x.pSelect!=0 ); + SubrtnSig *pSig = 0; + assert( !ExprUseXSelect(pExpr) || pExpr->x.pSelect!=0 ); + if( ExprUseXSelect(pExpr) && (pExpr->x.pSelect->selFlags & SF_All)==0 ){ pSig = sqlite3DbMallocRawNN(pParse->db, sizeof(pSig[0])); if( pSig ){ pSig->selId = pExpr->x.pSelect->selId;