1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-10 01:02:56 +03:00

Fix a NEVER() in the iif() logic that can be true if compiled with

SQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS.  Problem introduced by [eb5ac9e5b9a4f9c8].

FossilOrigin-Name: 3ec2df5a6c731b59b0ab132ee59c74d107f9c4bd32cf47d9776887858b9c0dea
This commit is contained in:
drh
2024-11-29 11:49:05 +00:00
parent 2aac896611
commit 5c208f36a4
3 changed files with 12 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
C Remove\ssome\soutdated\sdocs\sfrom\sMakefile.in. C Fix\sa\sNEVER()\sin\sthe\siif()\slogic\sthat\scan\sbe\strue\sif\scompiled\swith\nSQLITE_ENABLE_UNKNOWN_SQL_FUNCTIONS.\s\sProblem\sintroduced\sby\s[eb5ac9e5b9a4f9c8].
D 2024-11-28T23:55:35.415 D 2024-11-29T11:49:05.152
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
@@ -726,7 +726,7 @@ F src/date.c 89ce1ff20512a7fa5070ba6e7dd5c171148ca7d580955795bf97c79c2456144a
F src/dbpage.c db1be8adaf1f839ad733c08baeac5c22aa912f7b535865c0c061382602081360 F src/dbpage.c db1be8adaf1f839ad733c08baeac5c22aa912f7b535865c0c061382602081360
F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42 F src/delete.c 03a77ba20e54f0f42ebd8eddf15411ed6bdb06a2c472ac4b6b336521bf7cea42
F src/expr.c b838969c58a38dfedabec18c432204895c7333d7a509a20fa63c39bf92001f0e F src/expr.c 954fe794e30c5b692c7c32da2b6df6ee57259c0220da571fc79922c8d07ad41f
F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
F src/fkey.c 928ed2517e8732113d2b9821aa37af639688d752f4ea9ac6e0e393d713eeb76f F src/fkey.c 928ed2517e8732113d2b9821aa37af639688d752f4ea9ac6e0e393d713eeb76f
F src/func.c 49489dcce46d2d491cedb451e974264150c473e5f5bba448498a9aa4c1993537 F src/func.c 49489dcce46d2d491cedb451e974264150c473e5f5bba448498a9aa4c1993537
@@ -2201,8 +2201,8 @@ F tool/version-info.c 3b36468a90faf1bbd59c65fd0eb66522d9f941eedd364fabccd7227350
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139 F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 7f366565f41fa4eb532cfaf83074106e235436bfc377116e3bf823ac08fd01a5 P cc2c5fc98b2d1957bd26f41f0b646921ecabe2ffe544b3c3565965ba8850b2ff
R d7c111a7470180e499663f2f26933967 R e3074278b35f54a5f11f21d9d8c2e74e
U stephan U drh
Z f66a560c68c0b33c3bb1d4fe2506daed Z 8d6d5519eaac914fe913f5864cf877bd
# Remove this line to create a well-formed Fossil manifest. # Remove this line to create a well-formed Fossil manifest.

View File

@@ -1 +1 @@
cc2c5fc98b2d1957bd26f41f0b646921ecabe2ffe544b3c3565965ba8850b2ff 3ec2df5a6c731b59b0ab132ee59c74d107f9c4bd32cf47d9776887858b9c0dea

View File

@@ -6478,7 +6478,11 @@ static int sqlite3ExprIsIIF(sqlite3 *db, const Expr *pExpr){
if( (z[0]!='i' && z[0]!='I') ) return 0; if( (z[0]!='i' && z[0]!='I') ) return 0;
if( pExpr->x.pList==0 ) return 0; if( pExpr->x.pList==0 ) return 0;
pDef = sqlite3FindFunction(db, z, pExpr->x.pList->nExpr, ENC(db), 0); pDef = sqlite3FindFunction(db, z, pExpr->x.pList->nExpr, ENC(db), 0);
#ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION
if( pDef==0 ) return 0;
#else
if( NEVER(pDef==0) ) return 0; if( NEVER(pDef==0) ) return 0;
#endif
if( (pDef->funcFlags & SQLITE_FUNC_INLINE)==0 ) return 0; if( (pDef->funcFlags & SQLITE_FUNC_INLINE)==0 ) return 0;
if( NEVER(SQLITE_PTR_TO_INT(pDef->pUserData)!=INLINEFUNC_iif) ) return 0; if( NEVER(SQLITE_PTR_TO_INT(pDef->pUserData)!=INLINEFUNC_iif) ) return 0;
}else if( pExpr->op==TK_CASE ){ }else if( pExpr->op==TK_CASE ){