| | @@ -16,11 +16,11 @@ |
| 16 | 16 | ** if you want a wrapper to interface SQLite with your choice of programming |
| 17 | 17 | ** language. The code for the "sqlite3" command-line shell is also in a |
| 18 | 18 | ** separate file. This file contains only code for the core SQLite library. |
| 19 | 19 | ** |
| 20 | 20 | ** The content in this amalgamation comes from Fossil check-in |
| 21 | | -** 7168988acbec2d8d51106a263e553f8942b8 with changes in files: |
| 21 | +** 557aeb43869d3585137b17690cb3b64f7de6 with changes in files: |
| 22 | 22 | ** |
| 23 | 23 | ** |
| 24 | 24 | */ |
| 25 | 25 | #ifndef SQLITE_AMALGAMATION |
| 26 | 26 | #define SQLITE_CORE 1 |
| | @@ -467,14 +467,14 @@ |
| 467 | 467 | ** [sqlite3_libversion_number()], [sqlite3_sourceid()], |
| 468 | 468 | ** [sqlite_version()] and [sqlite_source_id()]. |
| 469 | 469 | */ |
| 470 | 470 | #define SQLITE_VERSION "3.52.0" |
| 471 | 471 | #define SQLITE_VERSION_NUMBER 3052000 |
| 472 | | -#define SQLITE_SOURCE_ID "2026-03-03 19:43:19 7168988acbec2d8d51106a263e553f8942b8b23d983dbbe5028e0f9be68cbb83" |
| 472 | +#define SQLITE_SOURCE_ID "2026-03-06 16:01:44 557aeb43869d3585137b17690cb3b64f7de6921774daae9e56403c3717dceab6" |
| 473 | 473 | #define SQLITE_SCM_BRANCH "trunk" |
| 474 | | -#define SQLITE_SCM_TAGS "" |
| 475 | | -#define SQLITE_SCM_DATETIME "2026-03-03T19:43:19.771Z" |
| 474 | +#define SQLITE_SCM_TAGS "release major-release version-3.52.0" |
| 475 | +#define SQLITE_SCM_DATETIME "2026-03-06T16:01:44.367Z" |
| 476 | 476 | |
| 477 | 477 | /* |
| 478 | 478 | ** CAPI3REF: Run-Time Library Version Numbers |
| 479 | 479 | ** KEYWORDS: sqlite3_version sqlite3_sourceid |
| 480 | 480 | ** |
| | @@ -15446,10 +15446,11 @@ |
| 15446 | 15446 | #ifdef SQLITE_OMIT_FLOATING_POINT |
| 15447 | 15447 | # define double sqlite_int64 |
| 15448 | 15448 | # define float sqlite_int64 |
| 15449 | 15449 | # define fabs(X) ((X)<0?-(X):(X)) |
| 15450 | 15450 | # define sqlite3IsOverflow(X) 0 |
| 15451 | +# define INFINITY (9223372036854775807LL) |
| 15451 | 15452 | # ifndef SQLITE_BIG_DBL |
| 15452 | 15453 | # define SQLITE_BIG_DBL (((sqlite3_int64)1)<<50) |
| 15453 | 15454 | # endif |
| 15454 | 15455 | # define SQLITE_OMIT_DATETIME_FUNCS 1 |
| 15455 | 15456 | # define SQLITE_OMIT_TRACE 1 |
| | @@ -29801,15 +29802,16 @@ |
| 29801 | 29802 | /* |
| 29802 | 29803 | ** Initialize and deinitialize the mutex subsystem. |
| 29803 | 29804 | */ |
| 29804 | 29805 | static int checkMutexInit(void){ |
| 29805 | 29806 | pGlobalMutexMethods = sqlite3DefaultMutex(); |
| 29806 | | - return SQLITE_OK; |
| 29807 | + return pGlobalMutexMethods->xMutexInit(); |
| 29807 | 29808 | } |
| 29808 | 29809 | static int checkMutexEnd(void){ |
| 29810 | + int rc = pGlobalMutexMethods->xMutexEnd(); |
| 29809 | 29811 | pGlobalMutexMethods = 0; |
| 29810 | | - return SQLITE_OK; |
| 29812 | + return rc; |
| 29811 | 29813 | } |
| 29812 | 29814 | |
| 29813 | 29815 | /* |
| 29814 | 29816 | ** Allocate a mutex. |
| 29815 | 29817 | */ |
| | @@ -151151,40 +151153,22 @@ |
| 151151 | 151153 | nKey = pSO->nExpr; |
| 151152 | 151154 | r1 = sqlite3GetTempReg(pParse); |
| 151153 | 151155 | r2 = sqlite3GetTempRange(pParse, nKey+2); |
| 151154 | 151156 | r3 = r2+nKey+1; |
| 151155 | 151157 | |
| 151156 | | -#if 0 /* <-- Why the next block of code is commented out: (tag-20260125-a) |
| 151157 | | - ** |
| 151158 | | - ** If the destination is DistQueue, then cursor (iParm+1) is open |
| 151159 | | - ** on a second ephemeral index that holds all values previously |
| 151160 | | - ** added to the queue. This code only runs during the setup phase |
| 151161 | | - ** using the merge algorithm, and so the values here are already |
| 151162 | | - ** guaranteed to be unique. |
| 151163 | | - */ |
| 151164 | | - if( pDest->eDest==SRT_DistQueue ){ |
| 151165 | | - addrTest = sqlite3VdbeAddOp4Int(v, OP_Found, iParm+1, 0, |
| 151166 | | - pIn->iSdst, pIn->nSdst); |
| 151167 | | - VdbeCoverage(v); |
| 151168 | | - } |
| 151169 | | -#endif |
| 151170 | 151158 | sqlite3VdbeAddOp3(v, OP_MakeRecord, pIn->iSdst, pIn->nSdst, r3); |
| 151171 | 151159 | if( pDest->eDest==SRT_DistQueue ){ |
| 151172 | 151160 | sqlite3VdbeAddOp2(v, OP_IdxInsert, iParm+1, r3); |
| 151173 | | - sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT); |
| 151174 | 151161 | } |
| 151175 | 151162 | for(ii=0; ii<nKey; ii++){ |
| 151176 | 151163 | sqlite3VdbeAddOp2(v, OP_SCopy, |
| 151177 | 151164 | pIn->iSdst + pSO->a[ii].u.x.iOrderByCol - 1, |
| 151178 | 151165 | r2+ii); |
| 151179 | 151166 | } |
| 151180 | 151167 | sqlite3VdbeAddOp2(v, OP_Sequence, iParm, r2+nKey); |
| 151181 | 151168 | sqlite3VdbeAddOp3(v, OP_MakeRecord, r2, nKey+2, r1); |
| 151182 | 151169 | sqlite3VdbeAddOp4Int(v, OP_IdxInsert, iParm, r1, r2, nKey+2); |
| 151183 | | -#if 0 /* tag-20260125-a */ |
| 151184 | | - if( addrTest ) sqlite3VdbeJumpHere(v, addrTest); |
| 151185 | | -#endif |
| 151186 | 151170 | sqlite3ReleaseTempReg(pParse, r1); |
| 151187 | 151171 | sqlite3ReleaseTempRange(pParse, r2, nKey+2); |
| 151188 | 151172 | break; |
| 151189 | 151173 | } |
| 151190 | 151174 | #endif /* SQLITE_OMIT_CTE */ |
| | @@ -261871,11 +261855,11 @@ |
| 261871 | 261855 | int nArg, /* Number of args */ |
| 261872 | 261856 | sqlite3_value **apUnused /* Function arguments */ |
| 261873 | 261857 | ){ |
| 261874 | 261858 | assert( nArg==0 ); |
| 261875 | 261859 | UNUSED_PARAM2(nArg, apUnused); |
| 261876 | | - sqlite3_result_text(pCtx, "fts5: 2026-03-03 19:43:19 7168988acbec2d8d51106a263e553f8942b8b23d983dbbe5028e0f9be68cbb83", -1, SQLITE_TRANSIENT); |
| 261860 | + sqlite3_result_text(pCtx, "fts5: 2026-03-06 16:01:44 557aeb43869d3585137b17690cb3b64f7de6921774daae9e56403c3717dceab6", -1, SQLITE_TRANSIENT); |
| 261877 | 261861 | } |
| 261878 | 261862 | |
| 261879 | 261863 | /* |
| 261880 | 261864 | ** Implementation of fts5_locale(LOCALE, TEXT) function. |
| 261881 | 261865 | ** |
| 261882 | 261866 | |