From 0168a3f32b41cbe0e08f145c0b52882aa7666c6c Mon Sep 17 00:00:00 2001 From: drh <> Date: Wed, 21 Oct 2026 17:36:54 +0000 Subject: [PATCH] Mark the AND optimization as "not-a-real-0-or-1" so as not to confuse ORDER BY and GROUP BY clauses. [bugs:/info/2026-10-21T15:33:18Z|Bug 2026-10-21T15:33:18Z] FossilOrigin-Name: 16cf625360a1448741dafa3d67263b5dda112648a05a0df6a766fae95b529f45 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/expr.c | 5 ++++- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 9f2a97287e..c208cb1351 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Do\snot\ssynthesize\sposition-lists\sfor\sUNINDEXED\sfts5\scolumns\sin\sdetail=none\smode.\sReport\s[bugs:/info/2026-10-20T20:40:52Z\s|\s2026-10-20T20:40:52Z]. -D 2026-10-21T17:23:01.623 +C Mark\sthe\sAND\soptimization\sas\s"not-a-real-0-or-1"\sso\sas\snot\sto\sconfuse\nORDER\sBY\sand\sGROUP\sBY\sclauses.\n[bugs:/info/2026-10-21T15:33:18Z|Bug\s2026-10-21T15:33:18Z] +D 2026-10-21T17:36:54.712 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -758,7 +758,7 @@ F src/date.c a55811d8e799ef76f3da9abf5a976dbe799208113f1da94ee25ae0aec2a14707 F src/dbpage.c ec8590c5e7a564cef28ca3c6156521316a4d26cb572a34841b0bcb26b67b3f97 F src/dbstat.c 34d4e825fbf763640ce3dbc56910ab080495ef4a6efb48b2b1852a43d43763fc F src/delete.c f3f07c1fb6ac87fac2425d48fd40ecb2f24a4495a9966f5a939668d3576916c8 -F src/expr.c 7ff00869afa1d3f11ea5f232c78e7b73a1a33bc1cb29c0af063b768658495234 +F src/expr.c e7dd44a69f47f0b462a1bbd4180f059db0e554ca48d5c360a5ffba450a2c1d9c F src/fault.c 460f3e55994363812d9d60844b2a6de88826e007 F src/fkey.c b5dd0cb20393ccac7bed59e7a52f40f50ff37e68f4e27dd1eaac8b5f171ab317 F src/func.c 8c500a079a52d789613b173ba1894b143f8e38009bab224179bc89d3493201a0 @@ -2297,8 +2297,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P fa0247a431bd99a9442c61028dc85ad1ffd2c5ea5b76ab68c394eaeda9af9409 -R affd33c9d8876bfd93e51fb81f3ecf9e -U dan -Z f4fc6c28f8cfa703fef426b85c759779 +P 64e37575ca1531ebea52402e6fa9ee1de399f1767f5baedc12ffde03a995b477 +R 9034197ee85f21356fb0b0e26aaeee87 +U drh +Z be309a30daef5854e1f55ae57558f4e0 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index c11f2134b1..cc5a4b3362 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -64e37575ca1531ebea52402e6fa9ee1de399f1767f5baedc12ffde03a995b477 +16cf625360a1448741dafa3d67263b5dda112648a05a0df6a766fae95b529f45 diff --git a/src/expr.c b/src/expr.c index 794470f749..56da9fc9e6 100644 --- a/src/expr.c +++ b/src/expr.c @@ -1171,9 +1171,12 @@ Expr *sqlite3ExprAnd(Parse *pParse, Expr *pLeft, Expr *pRight){ if( (f&(EP_OuterON|EP_InnerON|EP_IsFalse|EP_HasFunc))==EP_IsFalse && !IN_RENAME_OBJECT ){ + Expr *p; sqlite3ExprDeferredDelete(pParse, pLeft); sqlite3ExprDeferredDelete(pParse, pRight); - return sqlite3ExprInt32(db, 0); + p = sqlite3ExprInt32(db, 0); + if( p ) p->op2 = 1; + return p; }else{ return sqlite3PExpr(pParse, TK_AND, pLeft, pRight); }