better-sqlite3-multiple-ciphers 8.2.1-beta.0 → 8.2.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,10 +23,10 @@ The fastest and simplest library for SQLite3 in Node.js. This particular fork su
23
23
  - **SQLite3 Multiple Ciphers** - [`1.6.0`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.6.0)
24
24
 
25
25
  - ### Beta
26
- - **better-sqlite3-multiple-ciphers** - [`8.2.1-beta.0`](https://github.com/m4heshd/better-sqlite3-multiple-ciphers/releases/tag/v8.2.1-beta.0)
26
+ - **better-sqlite3-multiple-ciphers** - [`8.2.1-beta.1`](https://github.com/m4heshd/better-sqlite3-multiple-ciphers/releases/tag/v8.2.1-beta.1)
27
27
  - **better-sqlite3** - [`8.2.0`](https://github.com/JoshuaWise/better-sqlite3/releases/tag/v8.2.0)
28
- - **SQLite** - [`3.41.1`](https://www.sqlite.org/releaselog/3_41_1.html)
29
- - **SQLite3 Multiple Ciphers** - [`1.6.1`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.6.1)
28
+ - **SQLite** - [`3.41.2`](https://www.sqlite.org/releaselog/3_41_2.html)
29
+ - **SQLite3 Multiple Ciphers** - [`1.6.2`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.6.2)
30
30
 
31
31
  ## Help this project stay strong! 💪
32
32
 
package/deps/setup.ps1 CHANGED
@@ -2,7 +2,7 @@
2
2
  $ErrorActionPreference = "Stop"
3
3
 
4
4
  # SQLite Info
5
- $SQLITEMC_VER = "v1.6.1"
5
+ $SQLITEMC_VER = "v1.6.2"
6
6
  $API_URL = "https://api.github.com/repos/utelle/SQLite3MultipleCiphers/releases/tags/" + $SQLITEMC_VER
7
7
 
8
8
  # Paths
@@ -92,7 +92,7 @@ extern SQLITE_API LPWSTR sqlite3_win32_utf8_to_unicode(const char*);
92
92
  /*** Begin of #include "sqlite3patched.c" ***/
93
93
  /******************************************************************************
94
94
  ** This file is an amalgamation of many separate C source files from SQLite
95
- ** version 3.41.1. By combining all the individual C code files into this
95
+ ** version 3.41.2. By combining all the individual C code files into this
96
96
  ** single large file, the entire code can be compiled as a single translation
97
97
  ** unit. This allows many compilers to do optimizations that would not be
98
98
  ** possible if the files were compiled separately. Performance improvements
@@ -544,9 +544,9 @@ extern "C" {
544
544
  ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
545
545
  ** [sqlite_version()] and [sqlite_source_id()].
546
546
  */
547
- #define SQLITE_VERSION "3.41.1"
548
- #define SQLITE_VERSION_NUMBER 3041001
549
- #define SQLITE_SOURCE_ID "2023-03-10 12:13:52 20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff"
547
+ #define SQLITE_VERSION "3.41.2"
548
+ #define SQLITE_VERSION_NUMBER 3041002
549
+ #define SQLITE_SOURCE_ID "2023-03-22 11:56:21 0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da"
550
550
 
551
551
  /*
552
552
  ** CAPI3REF: Run-Time Library Version Numbers
@@ -16692,7 +16692,7 @@ struct PgHdr {
16692
16692
  ** private to pcache.c and should not be accessed by other modules.
16693
16693
  ** pCache is grouped with the public elements for efficiency.
16694
16694
  */
16695
- i16 nRef; /* Number of users of this page */
16695
+ i64 nRef; /* Number of users of this page */
16696
16696
  PgHdr *pDirtyNext; /* Next element in list of dirty pages */
16697
16697
  PgHdr *pDirtyPrev; /* Previous element in list of dirty pages */
16698
16698
  /* NB: pDirtyNext and pDirtyPrev are undefined if the
@@ -16773,12 +16773,12 @@ SQLITE_PRIVATE void sqlite3PcacheClearSyncFlags(PCache *);
16773
16773
  SQLITE_PRIVATE void sqlite3PcacheClear(PCache*);
16774
16774
 
16775
16775
  /* Return the total number of outstanding page references */
16776
- SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache*);
16776
+ SQLITE_PRIVATE i64 sqlite3PcacheRefCount(PCache*);
16777
16777
 
16778
16778
  /* Increment the reference count of an existing page */
16779
16779
  SQLITE_PRIVATE void sqlite3PcacheRef(PgHdr*);
16780
16780
 
16781
- SQLITE_PRIVATE int sqlite3PcachePageRefcount(PgHdr*);
16781
+ SQLITE_PRIVATE i64 sqlite3PcachePageRefcount(PgHdr*);
16782
16782
 
16783
16783
  /* Return the total number of pages stored in the cache */
16784
16784
  SQLITE_PRIVATE int sqlite3PcachePagecount(PCache*);
@@ -18937,7 +18937,7 @@ struct NameContext {
18937
18937
  #define NC_HasAgg 0x000010 /* One or more aggregate functions seen */
18938
18938
  #define NC_IdxExpr 0x000020 /* True if resolving columns of CREATE INDEX */
18939
18939
  #define NC_SelfRef 0x00002e /* Combo: PartIdx, isCheck, GenCol, and IdxExpr */
18940
- #define NC_VarSelect 0x000040 /* A correlated subquery has been seen */
18940
+ #define NC_Subquery 0x000040 /* A subquery has been seen */
18941
18941
  #define NC_UEList 0x000080 /* True if uNC.pEList is used */
18942
18942
  #define NC_UAggInfo 0x000100 /* True if uNC.pAggInfo is used */
18943
18943
  #define NC_UUpsert 0x000200 /* True if uNC.pUpsert is used */
@@ -19308,6 +19308,9 @@ struct Parse {
19308
19308
  u8 withinRJSubrtn; /* Nesting level for RIGHT JOIN body subroutines */
19309
19309
  #if defined(SQLITE_DEBUG) || defined(SQLITE_COVERAGE_TEST)
19310
19310
  u8 earlyCleanup; /* OOM inside sqlite3ParserAddCleanup() */
19311
+ #endif
19312
+ #ifdef SQLITE_DEBUG
19313
+ u8 ifNotExists; /* Might be true if IF NOT EXISTS. Assert()s only */
19311
19314
  #endif
19312
19315
  int nRangeReg; /* Size of the temporary register block */
19313
19316
  int iRangeReg; /* First register in temporary register block */
@@ -52758,7 +52761,7 @@ bitvec_end:
52758
52761
  struct PCache {
52759
52762
  PgHdr *pDirty, *pDirtyTail; /* List of dirty pages in LRU order */
52760
52763
  PgHdr *pSynced; /* Last synced page in dirty page list */
52761
- int nRefSum; /* Sum of ref counts over all pages */
52764
+ i64 nRefSum; /* Sum of ref counts over all pages */
52762
52765
  int szCache; /* Configured cache size */
52763
52766
  int szSpill; /* Size before spilling occurs */
52764
52767
  int szPage; /* Size of every page in this cache */
@@ -52788,7 +52791,7 @@ struct PCache {
52788
52791
  unsigned char *a;
52789
52792
  int j;
52790
52793
  pPg = (PgHdr*)pLower->pExtra;
52791
- printf("%3d: nRef %2d flgs %02x data ", i, pPg->nRef, pPg->flags);
52794
+ printf("%3lld: nRef %2d flgs %02x data ", i, pPg->nRef, pPg->flags);
52792
52795
  a = (unsigned char *)pLower->pBuf;
52793
52796
  for(j=0; j<12; j++) printf("%02x", a[j]);
52794
52797
  printf(" ptr %p\n", pPg);
@@ -53532,14 +53535,14 @@ SQLITE_PRIVATE PgHdr *sqlite3PcacheDirtyList(PCache *pCache){
53532
53535
  ** This is not the total number of pages referenced, but the sum of the
53533
53536
  ** reference count for all pages.
53534
53537
  */
53535
- SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache *pCache){
53538
+ SQLITE_PRIVATE i64 sqlite3PcacheRefCount(PCache *pCache){
53536
53539
  return pCache->nRefSum;
53537
53540
  }
53538
53541
 
53539
53542
  /*
53540
53543
  ** Return the number of references to the page supplied as an argument.
53541
53544
  */
53542
- SQLITE_PRIVATE int sqlite3PcachePageRefcount(PgHdr *p){
53545
+ SQLITE_PRIVATE i64 sqlite3PcachePageRefcount(PgHdr *p){
53543
53546
  return p->nRef;
53544
53547
  }
53545
53548
 
@@ -74609,7 +74612,7 @@ static SQLITE_NOINLINE int btreeNext(BtCursor *pCur){
74609
74612
 
74610
74613
  pPage = pCur->pPage;
74611
74614
  idx = ++pCur->ix;
74612
- if( NEVER(!pPage->isInit) || sqlite3FaultSim(412) ){
74615
+ if( !pPage->isInit || sqlite3FaultSim(412) ){
74613
74616
  return SQLITE_CORRUPT_BKPT;
74614
74617
  }
74615
74618
 
@@ -77738,6 +77741,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert(
77738
77741
  assert( szNew==pPage->xCellSize(pPage, newCell) );
77739
77742
  assert( szNew <= MX_CELL_SIZE(p->pBt) );
77740
77743
  idx = pCur->ix;
77744
+ pCur->info.nSize = 0;
77741
77745
  if( loc==0 ){
77742
77746
  CellInfo info;
77743
77747
  assert( idx>=0 );
@@ -77810,7 +77814,6 @@ SQLITE_PRIVATE int sqlite3BtreeInsert(
77810
77814
  ** larger than the largest existing key, it is possible to insert the
77811
77815
  ** row without seeking the cursor. This can be a big performance boost.
77812
77816
  */
77813
- pCur->info.nSize = 0;
77814
77817
  if( pPage->nOverflow ){
77815
77818
  assert( rc==SQLITE_OK );
77816
77819
  pCur->curFlags &= ~(BTCF_ValidNKey);
@@ -104904,8 +104907,8 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
104904
104907
  assert( pNC->nRef>=nRef );
104905
104908
  if( nRef!=pNC->nRef ){
104906
104909
  ExprSetProperty(pExpr, EP_VarSelect);
104907
- pNC->ncFlags |= NC_VarSelect;
104908
104910
  }
104911
+ pNC->ncFlags |= NC_Subquery;
104909
104912
  }
104910
104913
  break;
104911
104914
  }
@@ -109654,6 +109657,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGeneratedColumn(
109654
109657
  ){
109655
109658
  int iAddr;
109656
109659
  Vdbe *v = pParse->pVdbe;
109660
+ int nErr = pParse->nErr;
109657
109661
  assert( v!=0 );
109658
109662
  assert( pParse->iSelfTab!=0 );
109659
109663
  if( pParse->iSelfTab>0 ){
@@ -109666,6 +109670,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGeneratedColumn(
109666
109670
  sqlite3VdbeAddOp4(v, OP_Affinity, regOut, 1, 0, &pCol->affinity, 1);
109667
109671
  }
109668
109672
  if( iAddr ) sqlite3VdbeJumpHere(v, iAddr);
109673
+ if( pParse->nErr>nErr ) pParse->db->errByteOffset = -1;
109669
109674
  }
109670
109675
  #endif /* SQLITE_OMIT_GENERATED_COLUMNS */
109671
109676
 
@@ -109682,6 +109687,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable(
109682
109687
  Column *pCol;
109683
109688
  assert( v!=0 );
109684
109689
  assert( pTab!=0 );
109690
+ assert( iCol!=XN_EXPR );
109685
109691
  if( iCol<0 || iCol==pTab->iPKey ){
109686
109692
  sqlite3VdbeAddOp2(v, OP_Rowid, iTabCur, regOut);
109687
109693
  VdbeComment((v, "%s.rowid", pTab->zName));
@@ -119042,7 +119048,7 @@ SQLITE_PRIVATE void sqlite3AddReturning(Parse *pParse, ExprList *pList){
119042
119048
  if( pParse->pNewTrigger ){
119043
119049
  sqlite3ErrorMsg(pParse, "cannot use RETURNING in a trigger");
119044
119050
  }else{
119045
- assert( pParse->bReturning==0 );
119051
+ assert( pParse->bReturning==0 || pParse->ifNotExists );
119046
119052
  }
119047
119053
  pParse->bReturning = 1;
119048
119054
  pRet = sqlite3DbMallocZero(db, sizeof(*pRet));
@@ -119068,7 +119074,8 @@ SQLITE_PRIVATE void sqlite3AddReturning(Parse *pParse, ExprList *pList){
119068
119074
  pRet->retTStep.pTrig = &pRet->retTrig;
119069
119075
  pRet->retTStep.pExprList = pList;
119070
119076
  pHash = &(db->aDb[1].pSchema->trigHash);
119071
- assert( sqlite3HashFind(pHash, RETURNING_TRIGGER_NAME)==0 || pParse->nErr );
119077
+ assert( sqlite3HashFind(pHash, RETURNING_TRIGGER_NAME)==0
119078
+ || pParse->nErr || pParse->ifNotExists );
119072
119079
  if( sqlite3HashInsert(pHash, RETURNING_TRIGGER_NAME, &pRet->retTrig)
119073
119080
  ==&pRet->retTrig ){
119074
119081
  sqlite3OomFault(db);
@@ -124310,7 +124317,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom(
124310
124317
  #endif /* SQLITE_OMIT_TRUNCATE_OPTIMIZATION */
124311
124318
  {
124312
124319
  u16 wcf = WHERE_ONEPASS_DESIRED|WHERE_DUPLICATES_OK;
124313
- if( sNC.ncFlags & NC_VarSelect ) bComplex = 1;
124320
+ if( sNC.ncFlags & NC_Subquery ) bComplex = 1;
124314
124321
  wcf |= (bComplex ? 0 : WHERE_ONEPASS_MULTIROW);
124315
124322
  if( HasRowid(pTab) ){
124316
124323
  /* For a rowid table, initialize the RowSet to an empty set */
@@ -142240,7 +142247,9 @@ static Expr *substExpr(
142240
142247
  sqlite3VectorErrorMsg(pSubst->pParse, pCopy);
142241
142248
  }else{
142242
142249
  sqlite3 *db = pSubst->pParse->db;
142243
- if( pSubst->isOuterJoin ){
142250
+ if( pSubst->isOuterJoin
142251
+ && (pCopy->op!=TK_COLUMN || pCopy->iTable!=pSubst->iNewTable)
142252
+ ){
142244
142253
  memset(&ifNullRow, 0, sizeof(ifNullRow));
142245
142254
  ifNullRow.op = TK_IF_NULL_ROW;
142246
142255
  ifNullRow.pLeft = pCopy;
@@ -147002,6 +147011,7 @@ SQLITE_PRIVATE void sqlite3BeginTrigger(
147002
147011
  }else{
147003
147012
  assert( !db->init.busy );
147004
147013
  sqlite3CodeVerifySchema(pParse, iDb);
147014
+ VVA_ONLY( pParse->ifNotExists = 1; )
147005
147015
  }
147006
147016
  goto trigger_cleanup;
147007
147017
  }
@@ -149005,12 +149015,22 @@ SQLITE_PRIVATE void sqlite3Update(
149005
149015
  /* Begin the database scan.
149006
149016
  **
149007
149017
  ** Do not consider a single-pass strategy for a multi-row update if
149008
- ** there are any triggers or foreign keys to process, or rows may
149009
- ** be deleted as a result of REPLACE conflict handling. Any of these
149010
- ** things might disturb a cursor being used to scan through the table
149011
- ** or index, causing a single-pass approach to malfunction. */
149018
+ ** there is anything that might disrupt the cursor being used to do
149019
+ ** the UPDATE:
149020
+ ** (1) This is a nested UPDATE
149021
+ ** (2) There are triggers
149022
+ ** (3) There are FOREIGN KEY constraints
149023
+ ** (4) There are REPLACE conflict handlers
149024
+ ** (5) There are subqueries in the WHERE clause
149025
+ */
149012
149026
  flags = WHERE_ONEPASS_DESIRED;
149013
- if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){
149027
+ if( !pParse->nested
149028
+ && !pTrigger
149029
+ && !hasFK
149030
+ && !chngKey
149031
+ && !bReplace
149032
+ && (sNC.ncFlags & NC_Subquery)==0
149033
+ ){
149014
149034
  flags |= WHERE_ONEPASS_MULTIROW;
149015
149035
  }
149016
149036
  pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere,0,0,0,flags,iIdxCur);
@@ -150975,7 +150995,9 @@ static int vtabCallConstructor(
150975
150995
  sCtx.pPrior = db->pVtabCtx;
150976
150996
  sCtx.bDeclared = 0;
150977
150997
  db->pVtabCtx = &sCtx;
150998
+ pTab->nTabRef++;
150978
150999
  rc = xConstruct(db, pMod->pAux, nArg, azArg, &pVTable->pVtab, &zErr);
151000
+ sqlite3DeleteTable(db, pTab);
150979
151001
  db->pVtabCtx = sCtx.pPrior;
150980
151002
  if( rc==SQLITE_NOMEM ) sqlite3OomFault(db);
150981
151003
  assert( sCtx.pTab==pTab );
@@ -158144,6 +158166,10 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter(
158144
158166
  Vdbe *v = pParse->pVdbe; /* VDBE under construction */
158145
158167
  WhereLoop *pLoop = pLevel->pWLoop; /* The loop being coded */
158146
158168
  int iCur; /* Cursor for table getting the filter */
158169
+ IndexedExpr *saved_pIdxEpr; /* saved copy of Parse.pIdxEpr */
158170
+
158171
+ saved_pIdxEpr = pParse->pIdxEpr;
158172
+ pParse->pIdxEpr = 0;
158147
158173
 
158148
158174
  assert( pLoop!=0 );
158149
158175
  assert( v!=0 );
@@ -158200,9 +158226,8 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter(
158200
158226
  int r1 = sqlite3GetTempRange(pParse, n);
158201
158227
  int jj;
158202
158228
  for(jj=0; jj<n; jj++){
158203
- int iCol = pIdx->aiColumn[jj];
158204
158229
  assert( pIdx->pTable==pItem->pTab );
158205
- sqlite3ExprCodeGetColumnOfTable(v, pIdx->pTable, iCur, iCol,r1+jj);
158230
+ sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iCur, jj, r1+jj);
158206
158231
  }
158207
158232
  sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pLevel->regFilter, 0, r1, n);
158208
158233
  sqlite3ReleaseTempRange(pParse, r1, n);
@@ -158233,6 +158258,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter(
158233
158258
  }
158234
158259
  }while( iLevel < pWInfo->nLevel );
158235
158260
  sqlite3VdbeJumpHere(v, addrOnce);
158261
+ pParse->pIdxEpr = saved_pIdxEpr;
158236
158262
  }
158237
158263
 
158238
158264
 
@@ -158532,6 +158558,7 @@ static int whereKeyStats(
158532
158558
  assert( pIdx->nSample>0 );
158533
158559
  assert( pRec->nField>0 );
158534
158560
 
158561
+
158535
158562
  /* Do a binary search to find the first sample greater than or equal
158536
158563
  ** to pRec. If pRec contains a single field, the set of samples to search
158537
158564
  ** is simply the aSample[] array. If the samples in aSample[] contain more
@@ -158576,7 +158603,12 @@ static int whereKeyStats(
158576
158603
  ** it is extended to two fields. The duplicates that this creates do not
158577
158604
  ** cause any problems.
158578
158605
  */
158579
- nField = MIN(pRec->nField, pIdx->nSample);
158606
+ if( !HasRowid(pIdx->pTable) && IsPrimaryKeyIndex(pIdx) ){
158607
+ nField = pIdx->nKeyCol;
158608
+ }else{
158609
+ nField = pIdx->nColumn;
158610
+ }
158611
+ nField = MIN(pRec->nField, nField);
158580
158612
  iCol = 0;
158581
158613
  iSample = pIdx->nSample * nField;
158582
158614
  do{
@@ -162304,6 +162336,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){
162304
162336
  if( pFrom->isOrdered==pWInfo->pOrderBy->nExpr ){
162305
162337
  pWInfo->eDistinct = WHERE_DISTINCT_ORDERED;
162306
162338
  }
162339
+ if( pWInfo->pSelect->pOrderBy
162340
+ && pWInfo->nOBSat > pWInfo->pSelect->pOrderBy->nExpr ){
162341
+ pWInfo->nOBSat = pWInfo->pSelect->pOrderBy->nExpr;
162342
+ }
162307
162343
  }else{
162308
162344
  pWInfo->revMask = pFrom->revLoop;
162309
162345
  if( pWInfo->nOBSat<=0 ){
@@ -193188,16 +193224,18 @@ static int fts3MsrBufferData(
193188
193224
  char *pList,
193189
193225
  i64 nList
193190
193226
  ){
193191
- if( nList>pMsr->nBuffer ){
193227
+ if( (nList+FTS3_NODE_PADDING)>pMsr->nBuffer ){
193192
193228
  char *pNew;
193193
- pMsr->nBuffer = nList*2;
193194
- pNew = (char *)sqlite3_realloc64(pMsr->aBuffer, pMsr->nBuffer);
193229
+ int nNew = nList*2 + FTS3_NODE_PADDING;
193230
+ pNew = (char *)sqlite3_realloc64(pMsr->aBuffer, nNew);
193195
193231
  if( !pNew ) return SQLITE_NOMEM;
193196
193232
  pMsr->aBuffer = pNew;
193233
+ pMsr->nBuffer = nNew;
193197
193234
  }
193198
193235
 
193199
193236
  assert( nList>0 );
193200
193237
  memcpy(pMsr->aBuffer, pList, nList);
193238
+ memset(&pMsr->aBuffer[nList], 0, FTS3_NODE_PADDING);
193201
193239
  return SQLITE_OK;
193202
193240
  }
193203
193241
 
@@ -240341,7 +240379,7 @@ static void fts5SourceIdFunc(
240341
240379
  ){
240342
240380
  assert( nArg==0 );
240343
240381
  UNUSED_PARAM2(nArg, apUnused);
240344
- sqlite3_result_text(pCtx, "fts5: 2023-03-10 12:13:52 20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff", -1, SQLITE_TRANSIENT);
240382
+ sqlite3_result_text(pCtx, "fts5: 2023-03-22 11:56:21 0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da", -1, SQLITE_TRANSIENT);
240345
240383
  }
240346
240384
 
240347
240385
  /*
@@ -245539,9 +245577,9 @@ SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
245539
245577
 
245540
245578
  #define SQLITE3MC_VERSION_MAJOR 1
245541
245579
  #define SQLITE3MC_VERSION_MINOR 6
245542
- #define SQLITE3MC_VERSION_RELEASE 1
245580
+ #define SQLITE3MC_VERSION_RELEASE 2
245543
245581
  #define SQLITE3MC_VERSION_SUBRELEASE 0
245544
- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.6.1"
245582
+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.6.2"
245545
245583
 
245546
245584
  #endif /* SQLITE3MC_VERSION_H_ */
245547
245585
  /*** End of #include "sqlite3mc_version.h" ***/
@@ -245700,9 +245738,9 @@ extern "C" {
245700
245738
  ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
245701
245739
  ** [sqlite_version()] and [sqlite_source_id()].
245702
245740
  */
245703
- #define SQLITE_VERSION "3.41.1"
245704
- #define SQLITE_VERSION_NUMBER 3041001
245705
- #define SQLITE_SOURCE_ID "2023-03-10 12:13:52 20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff"
245741
+ #define SQLITE_VERSION "3.41.2"
245742
+ #define SQLITE_VERSION_NUMBER 3041002
245743
+ #define SQLITE_SOURCE_ID "2023-03-22 11:56:21 0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da"
245706
245744
 
245707
245745
  /*
245708
245746
  ** CAPI3REF: Run-Time Library Version Numbers
@@ -268829,7 +268867,7 @@ sqlite3mcBtreeSetPageSize(Btree* p, int pageSize, int nReserve, int iFix)
268829
268867
  ** Change 4: Call sqlite3mcBtreeSetPageSize instead of sqlite3BtreeSetPageSize for main database
268830
268868
  ** (sqlite3mcBtreeSetPageSize allows to reduce the number of reserved bytes)
268831
268869
  **
268832
- ** This code is generated by the script rekeyvacuum.sh from SQLite version 3.41.1 amalgamation.
268870
+ ** This code is generated by the script rekeyvacuum.sh from SQLite version 3.41.2 amalgamation.
268833
268871
  */
268834
268872
  SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3mcRunVacuumForRekey(
268835
268873
  char **pzErrMsg, /* Write error message here */
@@ -31,9 +31,9 @@
31
31
 
32
32
  #define SQLITE3MC_VERSION_MAJOR 1
33
33
  #define SQLITE3MC_VERSION_MINOR 6
34
- #define SQLITE3MC_VERSION_RELEASE 1
34
+ #define SQLITE3MC_VERSION_RELEASE 2
35
35
  #define SQLITE3MC_VERSION_SUBRELEASE 0
36
- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.6.1"
36
+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.6.2"
37
37
 
38
38
  #endif /* SQLITE3MC_VERSION_H_ */
39
39
  /*** End of #include "sqlite3mc_version.h" ***/
@@ -192,9 +192,9 @@ extern "C" {
192
192
  ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
193
193
  ** [sqlite_version()] and [sqlite_source_id()].
194
194
  */
195
- #define SQLITE_VERSION "3.41.1"
196
- #define SQLITE_VERSION_NUMBER 3041001
197
- #define SQLITE_SOURCE_ID "2023-03-10 12:13:52 20399f3eda5ec249d147ba9e48da6e87f969d7966a9a896764ca437ff7e737ff"
195
+ #define SQLITE_VERSION "3.41.2"
196
+ #define SQLITE_VERSION_NUMBER 3041002
197
+ #define SQLITE_SOURCE_ID "2023-03-22 11:56:21 0d1fc92f94cb6b76bffe3ec34d69cffde2924203304e8ffc4155597af0c191da"
198
198
 
199
199
  /*
200
200
  ** CAPI3REF: Run-Time Library Version Numbers
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-sqlite3-multiple-ciphers",
3
- "version": "8.2.1-beta.0",
3
+ "version": "8.2.1-beta.1",
4
4
  "description": "better-sqlite3 with multiple-cipher encryption support",
5
5
  "homepage": "https://github.com/m4heshd/better-sqlite3-multiple-ciphers",
6
6
  "author": "Mahesh Bandara Wijerathna (m4heshd) <m4heshd@gmail.com>",