-C In\stest_syscall.c,\sassume\sSQLite\salways\scalls\sthe\s4\s(not\s5)\sargument\sform\sof\smremap().\sThis\sfixes\sa\sproblem\swith\sFil-C\sand\smmap2.test.
-D 2026-07-24T10:38:27.958
+C Fix\sto\sthe\sinteraction\sbetween\sindexes-on-expressions,\ssubtypes,\sand\nthe\sunary\s"+"\soperator.\s\sThis\sis\sa\scontinuation\sof\sthe\sprior\sfix\sfrom\ncheck-in\s[d75c08c8416bde3f].\s\sThis\senhanced\sfix\sis\sprompted\sby\n[bugs:/info/2026-07-24T08:42:47Z|Bug\s2026-07-24T08:42:47Z].
+D 2026-07-24T13:36:44.121
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F src/prepare.c 8954bb69defe377cd6a926f8c61d8215ea4f1974838d3ec6f22681a2c0a2939f
F src/printf.c b480176bd0aaed9d64e804cfa3ca27fc585f65a73e7c7ca2fe9b9016db2cf6d5
F src/random.c 606b00941a1d7dd09c381d3279a058d771f406c5213c9932bbd93d5587be4b9c
-F src/resolve.c 54395ee97eb710e695202d4112cf2b1c1c7767a57afcea745df71abb1c917768
+F src/resolve.c 6bfd1a821e88106b2ef811acc9b7d8f3d7a4524cafe08a4189a8be4d79f2a30a
F src/rowset.c 8432130e6c344b3401a8874c3cb49fefe6873fec593294de077afea2dce5ec97
F src/select.c d2ad83d49c41c30d213873bac8481c6bf099438c61dcb597de52ddb55a6324fb
F src/shell.c.in 0df571dd1eae1a15577361902eb5487a072d3290ea94e1e72e757050b641f870
F test/index9.test 2ac891806a4136ef3e91280477e23114e67575207dc331e6797fa0ed9379f997
F test/indexA.test 11d84f6995e6e5b9d8315953fb1b6d29772ee7c7803ee9112715e7e4dd3e4974
F test/indexedby.test 444fb04ce0b21a3daf79f84e6735b49e5a5b3396623b37df5431eb09c8b8f557
-F test/indexexpr1.test e1e6a851d1054fa4fa43b60ad51f350519fabe756e313bc687af430a1efbff6e
+F test/indexexpr1.test 5666c888682790e9ea932c134a519b842b2ef0a36b7bd7de51378ffb69f56863
F test/indexexpr2.test 60b364492af311e931615fbece279fc463b281fc1ecfced762b0d33053c82f3f
F test/indexexpr3.test 47b91bc7999805c9a34d356f672259bc49295ecc797448511cae554a309b47cd
F test/indexfault.test 98d78a8ff1f5335628b62f886a1cb7c7dac1ef6d48fa39c51ec871c87dce9811
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
-P d2d6363f31ecbae353a1e80810f42d9e2f0f8db0fe6294c7deadf0c58669b9d0
-R 28a9b7364f9b60c2ea806c4d63f7b987
-U dan
-Z 51a343c0ae8825047216d933eea79aac
+P 4d60798b20a560beb945afe7e2998714aa7e5a83a9db078d4431040f0b6e7350
+R bcb7fb7bd55d0c0545755c97da1a6ef8
+U drh
+Z c6eb01888af81cac226065cb0f4ef157
# Remove this line to create a well-formed Fossil manifest.
-4d60798b20a560beb945afe7e2998714aa7e5a83a9db078d4431040f0b6e7350
+5398c6a2b6b218461ce1f6437791c62c1ee125fba195660e0d6d1ad97ed6d14c
nn = pList ? pList->nExpr : 0;
for(ii=0; ii<nn; ii++){
Expr *pExpr = pList->a[ii].pExpr;
- ExprSetProperty(pExpr, EP_SubtArg);
- if( pExpr->op==TK_SELECT ){
- assert( ExprUseXSelect(pExpr) );
- assert( pExpr->x.pSelect!=0 );
- resolveSetExprSubtypeArg(pExpr->x.pSelect->pEList);
+ while( 1 /*exit-by-break*/ ){
+ ExprSetProperty(pExpr, EP_SubtArg);
+ if( pExpr->op==TK_SELECT ){
+ assert( ExprUseXSelect(pExpr) );
+ assert( pExpr->x.pSelect!=0 );
+ resolveSetExprSubtypeArg(pExpr->x.pSelect->pEList);
+ break;
+ }
+ if( pExpr->op==TK_UPLUS ){
+ pExpr = pExpr->pLeft;
+ assert( pExpr!=0 );
+ }else{
+ break;
+ }
}
}
}
CREATE INDEX i2 ON t1( ~(addone(DISTINCT x)) );
} {1 {non-deterministic functions prohibited in index expressions}}
+# Bug 2026-07-24T08:42:47Z
+# Indexes-on-expression interacting with subtypes and the unary "+" operator
+#
+do_execsql_test indexexpr1-2500 {
+ DROP TABLE IF EXISTS t1;
+ CREATE TABLE t1(a INT, j TEXT);
+ INSERT INTO t1 VALUES(1,'{"x":[1,2]}');
+ SELECT json_array(json_extract(j,'$.x')) FROM t1 WHERE a=1;
+} {[[1,2]]}
+do_execsql_test indexexpr1-2501 {
+ SELECT json_array(+json_extract(j,'$.x')) FROM t1 WHERE a=1;
+} {[[1,2]]}
+do_execsql_test indexexpr1-2502 {
+ SELECT json_array(++json_extract(j,'$.x')) FROM t1 WHERE a=1;
+} {[[1,2]]}
+do_execsql_test indexexpr1-2503 {
+ CREATE INDEX ix ON t1(a, json_extract(j,'$.x'));
+ SELECT json_array(json_extract(j,'$.x')) FROM t1 WHERE a=1;
+} {[[1,2]]}
+do_execsql_test indexexpr1-2504 {
+ SELECT json_array(+json_extract(j,'$.x')) FROM t1 WHERE a=1;
+} {[[1,2]]}
+do_execsql_test indexexpr1-2505 {
+ SELECT json_array(++json_extract(j,'$.x')) FROM t1 WHERE a=1;
+} {[[1,2]]}
+
finish_test