From d99abf5cedf72b27b7d0e7bd3d502912fca96db7 Mon Sep 17 00:00:00 2001 From: drh <> Date: Thu, 20 Aug 2026 09:41:13 +0000 Subject: [PATCH] Add a comment on the OP_ColumnsUsed operator. FossilOrigin-Name: 8b3a5599940fe92e632a482275f8ee9ade48defc7f0d3cafc8d47035ed75d443 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/vdbe.c | 1 + src/vdbeaux.c | 10 ++++++++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/manifest b/manifest index 4a8cfdee27..923b2ce8e8 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\sthe\sorder\sof\s32-bit\sworks\son\san\sOP_ColumnsUsed\soperator. -D 2026-08-20T09:26:01.251 +C Add\sa\scomment\son\sthe\sOP_ColumnsUsed\soperator. +D 2026-08-20T09:41:13.858 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -810,11 +810,11 @@ F src/upsert.c dd9f0fcccbfb4f20e1026a21a7254ba3f2c08e9cfa92affaff5b5ec3b00ea549 F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165 F src/util.c cfdf9c6e5323af886d5ce766709da607ba1d14193ad3a15f4f462a45420e8211 F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82 -F src/vdbe.c a95e92b692ff57fbd2921cae59e03bf20051c33cc03941933ecbc5d558637751 +F src/vdbe.c 9cd0c3e570bab8c4aa006c8d6e089780527b3ae68eb560a387b8a6a7c96b2312 F src/vdbe.h ec2d5613f403a29934652276172b030887a7e6c109e0679dff636ab02df19a60 F src/vdbeInt.h 39f4c8eb1e4ac0593037d5268a54a691c72d34896db9973a9d39f2a5dea14163 F src/vdbeapi.c 6ad0c841b6cb87de068f71787f385149d794e8830176bf72d09a36b9f655ac5b -F src/vdbeaux.c 7513b24f5d3958be94cb28c581cd93dc364fd920c42c0a74a437d87faca76fda +F src/vdbeaux.c f9257a3eb0a6233d8841e094bde1771d5b466c053ac859629f592c4550c69bf8 F src/vdbeblob.c b3f0640db9642fbdc88bd6ebcc83d6009514cafc98f062f675f2c8d505d82692 F src/vdbemem.c 6e7ad67507c9a8e625b46256a9c003929331d6a27b99bbe139b8f0dab636e1f2 F src/vdbesort.c a72ad2a629df2901fde4aa588e38590d0aa27b7d5bc3b2a416e5f295de839cc1 @@ -2219,8 +2219,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c -P c13b4c2c41e19fc47925dfb75e5f48d9972ef9ffb68c2d3c57e71a23e75717f9 -R 4e82f33b0040b0773923870928cddab5 +P 0433f33e02e181fecfaff043f72c24118303d767aa9768ed118f48e548f61db3 +R 4352a0c44e02d21ca53a448c1435ec0a U drh -Z e40a15b0b2488d34dd2c572e778e5103 +Z 1c3c55df851e419fc6fdb13173b11ae6 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index e96e9c02e0..e5fef820e0 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -0433f33e02e181fecfaff043f72c24118303d767aa9768ed118f48e548f61db3 +8b3a5599940fe92e632a482275f8ee9ade48defc7f0d3cafc8d47035ed75d443 diff --git a/src/vdbe.c b/src/vdbe.c index bff3b60149..9577671436 100644 --- a/src/vdbe.c +++ b/src/vdbe.c @@ -4855,6 +4855,7 @@ case OP_Close: { /* ncycle */ #ifdef SQLITE_ENABLE_COLUMN_USED_MASK /* Opcode: ColumnsUsed P1 P2 P3 * * +** Synopsis: Cursor P1 uses columns PHEX23 ** ** This opcode (which only exists if SQLite was compiled with ** SQLITE_ENABLE_COLUMN_USED_MASK) identifies which columns of the diff --git a/src/vdbeaux.c b/src/vdbeaux.c index c6411ae9ba..93843f54b9 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -1738,8 +1738,9 @@ static int translateP(char c, const Op *pOp){ ** "PX@PY" -> "r[X..X+Y-1]" or "r[x]" if y is 0 or 1 ** "PX@PY+1" -> "r[X..X+Y]" or "r[x]" if y is 0 ** "PY..PY" -> "r[X..Y]" or "r[x]" if y<=x -** "PINT13" -> int(P1<<32|P3) -** "PDLB13" -> real(P1<<32|P3) +** "PINT13" -> int(P1|P3<<32) +** "PDLB13" -> real(P1|P3<<32) +** "PHEX23" -> hex(P2|P3<<32) */ char *sqlite3VdbeDisplayComment( sqlite3 *db, /* Optional - Oom error reporting only */ @@ -1778,6 +1779,11 @@ char *sqlite3VdbeDisplayComment( }else if( strncmp(&zSynopsis[ii],"INT13",5)==0 ){ sqlite3_str_appendf(&x,"%lld",INT32_TO_64(pOp->p1,pOp->p3)); ii += 4; +#ifdef SQLITE_ENABLE_COLUMN_USED_MASK + }else if( strncmp(&zSynopsis[ii],"HEX23",5)==0 ){ + sqlite3_str_appendf(&x,"0x%llx",INT32_TO_64(pOp->p2,pOp->p3)); + ii += 4; +#endif }else if( strncmp(&zSynopsis[ii],"DBL13",5)==0 ){ i64 iVal = INT32_TO_64(pOp->p1,pOp->p3); double r;