Add a NEVER() to an unreachable branch in the new indexed-subtype logic.

Mark the pi() function as deterministic.

FossilOrigin-Name: 50be8f5091b2202b67a80f826feee2c378f001745ad5acb7c4374423bbf6ff22
This commit is contained in:
drh 2024-10-07 21:04:57 +00:00
parent f7f78a624d
commit ddc764b274
4 changed files with 10 additions and 10 deletions

View File

@ -1,5 +1,5 @@
C The\s(undocumented)\ssubtype()\sSQL\sfunction\sshould\shave\sthe\sSQLITE_SUBTYPE\sflag.
D 2024-10-07T18:06:17.888
C Add\sa\sNEVER()\sto\san\sunreachable\sbranch\sin\sthe\snew\sindexed-subtype\slogic.\nMark\sthe\spi()\sfunction\sas\sdeterministic.
D 2024-10-07T21:04:57.392
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -719,10 +719,10 @@ F src/date.c 89ce1ff20512a7fa5070ba6e7dd5c171148ca7d580955795bf97c79c2456144a
F src/dbpage.c db1be8adaf1f839ad733c08baeac5c22aa912f7b535865c0c061382602081360
F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42
F src/expr.c 0aafe1b0d3893e9f568f30efa2e7b96a6e6bcc072e481ae68c5abe3f01d81367
F src/expr.c 6800ecb6c48d9ab0b73e5b25dd1f6176fe4ffae89de2edfb9604e290ae5c7be4
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 928ed2517e8732113d2b9821aa37af639688d752f4ea9ac6e0e393d713eeb76f
F src/func.c 281b373af97eba0a014aed754da952001fbf2899af362a268cdf59061eb749ad
F src/func.c 1d093b93b8f097665721e59a1c404d7db4dc591e1a777a7a1022dfbda21e108b
F src/global.c a19e4b1ca1335f560e9560e590fc13081e21f670643367f99cb9e8f9dc7d615b
F src/hash.c 9ee4269fb1d6632a6fecfb9479c93a1f29271bddbbaf215dd60420bcb80c7220
F src/hash.h 3340ab6e1d13e725571d7cee6d3e3135f0779a7d8e76a9ce0a85971fa3953c51
@ -2216,8 +2216,8 @@ F vsixtest/vsixtest.tcl 6195aba1f12a5e10efc2b8c0009532167be5e301abe5b31385638080
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 2fe2f374584b025676684ebe4ef29304883a3b0b125b62abc1dbf74815eecdfb
R a94f143c3aa0e261df71b070177a6103
P c361dd91841da64fdd009e6eab389ccd81266a24d1070e5313fe1d22e6cef65a
R 4fa3cedbad7dc576720ba11e0ac36827
U drh
Z daf7125707a76e5c147ce1091b351dd3
Z ff784421601a4233097df0f7c86caf61
# Remove this line to create a well-formed Fossil manifest.

View File

@ -1 +1 @@
c361dd91841da64fdd009e6eab389ccd81266a24d1070e5313fe1d22e6cef65a
50be8f5091b2202b67a80f826feee2c378f001745ad5acb7c4374423bbf6ff22

View File

@ -4582,7 +4582,7 @@ static int exprNodeCanReturnSubtype(Walker *pWalker, Expr *pExpr){
db = pWalker->pParse->db;
n = pExpr->x.pList ? pExpr->x.pList->nExpr : 0;
pDef = sqlite3FindFunction(db, pExpr->u.zToken, n, ENC(db), 0);
if( pDef==0 || (pDef->funcFlags & SQLITE_RESULT_SUBTYPE)!=0 ){
if( NEVER(pDef==0) || (pDef->funcFlags & SQLITE_RESULT_SUBTYPE)!=0 ){
pWalker->eCode = 1;
return WRC_Prune;
}

View File

@ -2813,7 +2813,7 @@ void sqlite3RegisterBuiltinFunctions(void){
MFUNCTION(sqrt, 1, sqrt, math1Func ),
MFUNCTION(radians, 1, degToRad, math1Func ),
MFUNCTION(degrees, 1, radToDeg, math1Func ),
FUNCTION(pi, 0, 0, 0, piFunc ),
MFUNCTION(pi, 0, 0, piFunc ),
#endif /* SQLITE_ENABLE_MATH_FUNCTIONS */
FUNCTION(sign, 1, 0, 0, signFunc ),
INLINE_FUNC(coalesce, -1, INLINEFUNC_coalesce, 0 ),