]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Remove an incorrect ALWAYS() macro from the implementation of the
authordrh <>
Mon, 20 Jul 2026 19:17:30 +0000 (19:17 +0000)
committerdrh <>
Mon, 20 Jul 2026 19:17:30 +0000 (19:17 +0000)
internal exprNodeCanReturnSubtype() routine so that it works with
zero-argument deterministic functions like pi().

FossilOrigin-Name: a2511c6223a08033a2c5c66faee3afa50b992dc18de7a8498c8e3d24ce1376cc

manifest
manifest.uuid
src/expr.c
test/func7.test

index 6c041784a730b80ccb2736c07062de5979124f3d..c0733f28fec079bd626e47747eb8db6540bb74f8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Ensure\sthat\sa\swrite\swith\sREPLACE\sconflict\sresolution\son\san\sinteger\sprimary\skey\scolumn\sis\shandled\safter\sany\sIGNORE\sor\sFAIL\sconflicts,\seven\sif\sthere\sis\salso\san\sexplicit\s"ON\sCONFLICT"\sclause\sunrelated\sto\sthe\sIPK.\sForum\spost\s[forum:info/2026-07-17T09:30:42Z\s|\s2026-07--17T09:30:42Z].\sAlso\sfix\sa\sproblem\swhereby\sa\strigger\sfired\sby\sREPLACE\sconflict\sresolution\smight\scause\sa\sUNIQUE\sconflict\sviolation\sto\sbe\scommitted\sto\sthe\sdatabase.\sForum\spost\s[forum:/info/2026-07-18T09:45:24Z\s|\s2026-07-18T09:45:24Z].
-D 2026-07-20T17:53:36.913
+C Remove\san\sincorrect\sALWAYS()\smacro\sfrom\sthe\simplementation\sof\sthe\ninternal\sexprNodeCanReturnSubtype()\sroutine\sso\sthat\sit\sworks\swith\nzero-argument\sdeterministic\sfunctions\slike\spi().
+D 2026-07-20T19:17:30.846
 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -693,7 +693,7 @@ F src/date.c e1a002a4199bfa85e8778c0f72182c679580b131147d8e46d9221cfceffb8500
 F src/dbpage.c c6a9de13b0a01f0bc94a41e16213ab1ecd15ccfe86df7255ced40fda9446257d
 F src/dbstat.c 73362c0df0f40ad5523a6f5501224959d0976757b511299bf892313e79d14f5c
 F src/delete.c 59eeca3fb88c29329afc41bb803ee568b120d9dd7470b5f38ab55cc38390b451
-F src/expr.c db0f3e084f4bb2b249a5890dc9a0d3614d503cda009357bfdeb040f96322ccfe
+F src/expr.c 15033331b4a3d90c9dedd97706e70224fbf8f6f6f9150265362e82ceb4dc84be
 F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007
 F src/fkey.c 931f74cec1dc8038a0217ef340c91ce147dd1bbed08dc40c47ee0ec6edfffb08
 F src/func.c 208b4d073a1e823df8d0e19d0529093c09a9984851dcfda9808445541cefe6d0
@@ -1250,7 +1250,7 @@ F test/func3.test 6b22dfada95b778d01dba75aa00fa8e6a1fb90d30b859241638e7540edcfb3
 F test/func4.test a02e695f62beb31cb092dccf6873ff97543407fff97a5f3ec4da70b5b337bc84
 F test/func5.test 863e6d1bd0013d09c17236f8a13ea34008dd857d87d85a13a673960e4c25d82a
 F test/func6.test 3bc89ec0f2605736d3a118f43d25ef58115a7db4dba8ae939a363917d815c0bb
-F test/func7.test 7e009275f52c52954c8c028fdb62f8bc16cc47276fcc8753c1d2b22c6e074598
+F test/func7.test c7a866fba2f7c0a49b25b783d36c1e47cd606981c1f016d2cbb9d4d8a99fc533
 F test/func8.test c4e2ecacf9f16e47a245e7a25fbabcc7e78f9c7c41a80f158527cdfdc6dd299d
 F test/func9.test 32c7d53b9bc99ddd45fad29457add438f2aca43d24920793773a96b13610f552
 F test/fuzz-oss1.test 514dcabb24687818ea949fa6760229eaacad74ca70157743ef36d35bbe01ffb0
@@ -2216,9 +2216,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
 F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
 F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P 4ad701b085ce1b9ada41441f560e55580f0dd33e8145857afce6c665aa974ad0 3ae4f953de5349c7e90ad245a0c21e513d4ef23d636fd786842619aff12c2d27
-R 97577b931e28fb4c4ab0611531033643
-T +closed 3ae4f953de5349c7e90ad245a0c21e513d4ef23d636fd786842619aff12c2d27
-U dan
-Z 60f1f493e6cd861986e8b37e4f51bc19
+P 8f0ad8f33f5e040eb70b0b77d730c2e785827621bb0ad21afd9ce2efe4dad921
+R af279e7d50cb31f2ea35455a662fcf66
+U drh
+Z 3128c0a312fc4ccc65b7c5dc80669919
 # Remove this line to create a well-formed Fossil manifest.
index a505b938da6411bb4d5f2f59f7a7683d6bb6daed..cf9739ffe5d9a8b2863798dd7867201d4ca059e1 100644 (file)
@@ -1 +1 @@
-8f0ad8f33f5e040eb70b0b77d730c2e785827621bb0ad21afd9ce2efe4dad921
+a2511c6223a08033a2c5c66faee3afa50b992dc18de7a8498c8e3d24ce1376cc
index 3b9a0170c8db84568f5b43be054f278690539081..c9402081c42b8eb2d85b0bcdb16a2dbf8c73d01e 100644 (file)
@@ -4735,7 +4735,7 @@ static int exprNodeCanReturnSubtype(Walker *pWalker, Expr *pExpr){
   }
   assert( ExprUseXList(pExpr) );
   db = pWalker->pParse->db;
-  n = ALWAYS(pExpr->x.pList) ? pExpr->x.pList->nExpr : 0;
+  n = pExpr->x.pList ? pExpr->x.pList->nExpr : 0;
   pDef = sqlite3FindFunction(db, pExpr->u.zToken, n, ENC(db), 0);
   if( NEVER(pDef==0) || (pDef->funcFlags & SQLITE_RESULT_SUBTYPE)!=0 ){
     pWalker->eCode = 1;
index 6026b557f5b64381d0fb9755d762fa308b6449a0..7d06a87440909108648d4bc15337c0084f79ac2b 100644 (file)
@@ -247,5 +247,12 @@ do_execsql_test func7-mysql-331 {
    SELECT round(tan(pi()+1),7);
 } {1.5574077}
 
+do_execsql_test func7-400 {
+  DROP TABLE IF EXISTS t1;
+  CREATE TABLE t1(x);
+  INSERT INTO t1 VALUES(NULL);
+  CREATE INDEX t1x ON t1(coalesce(x,pi()));
+  SELECT json_quote(coalesce(x,pi())) FROM t1 INDEXED BY t1x;
+} 3.1415926535897931
 
 finish_test