better-sqlite3-multiple-ciphers 7.5.2-beta.0 → 7.5.2-beta.3

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
@@ -19,14 +19,14 @@ The fastest and simplest library for SQLite3 in Node.js. This particular fork su
19
19
  - ### Stable
20
20
  - **better-sqlite3-multiple-ciphers** - [`7.5.1`](https://github.com/m4heshd/better-sqlite3-multiple-ciphers/releases/tag/v7.5.1)
21
21
  - **better-sqlite3** - [`7.5.1`](https://github.com/JoshuaWise/better-sqlite3/releases/tag/v7.5.1)
22
- - **SQLite** - [`3.38.2`](https://www.sqlite.org/draft/releaselog/3_38_2.html)
22
+ - **SQLite** - [`3.38.2`](https://www.sqlite.org/releaselog/3_38_2.html)
23
23
  - **SQLite3 Multiple Ciphers** - [`1.3.10`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.3.10)
24
24
 
25
25
  - ### Beta
26
- - **better-sqlite3-multiple-ciphers** - [`7.5.2-beta.0`](https://github.com/m4heshd/better-sqlite3-multiple-ciphers/releases/tag/v7.5.2-beta.0)
26
+ - **better-sqlite3-multiple-ciphers** - [`7.5.2-beta.3`](https://github.com/m4heshd/better-sqlite3-multiple-ciphers/releases/tag/v7.5.2-beta.3)
27
27
  - **better-sqlite3** - [`7.5.1`](https://github.com/JoshuaWise/better-sqlite3/releases/tag/v7.5.1)
28
- - **SQLite** - [`3.38.2`](https://www.sqlite.org/draft/releaselog/3_38_2.html)
29
- - **SQLite3 Multiple Ciphers** - [`1.4.1`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.4.1)
28
+ - **SQLite** - [`3.38.5`](https://www.sqlite.org/releaselog/3_38_5.html)
29
+ - **SQLite3 Multiple Ciphers** - [`1.4.3`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.4.3)
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.4.1"
5
+ $SQLITEMC_VER = "v1.4.3"
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.38.2. By combining all the individual C code files into this
95
+ ** version 3.38.5. 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.38.2"
548
- #define SQLITE_VERSION_NUMBER 3038002
549
- #define SQLITE_SOURCE_ID "2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f"
547
+ #define SQLITE_VERSION "3.38.5"
548
+ #define SQLITE_VERSION_NUMBER 3038005
549
+ #define SQLITE_SOURCE_ID "2022-05-06 15:25:27 78d9c993d404cdfaa7fdd2973fa1052e3da9f66215cff9c5540ebe55c407d9fe"
550
550
 
551
551
  /*
552
552
  ** CAPI3REF: Run-Time Library Version Numbers
@@ -20028,6 +20028,7 @@ SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr*);
20028
20028
  SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr*, u8);
20029
20029
  SQLITE_PRIVATE int sqlite3ExprIsConstantOrGroupBy(Parse*, Expr*, ExprList*);
20030
20030
  SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr*,int);
20031
+ SQLITE_PRIVATE int sqlite3ExprIsTableConstraint(Expr*,const SrcItem*);
20031
20032
  #ifdef SQLITE_ENABLE_CURSOR_HINTS
20032
20033
  SQLITE_PRIVATE int sqlite3ExprContainsSubquery(Expr*);
20033
20034
  #endif
@@ -29436,8 +29437,9 @@ SQLITE_PRIVATE char *sqlite3DbSpanDup(sqlite3 *db, const char *zStart, const cha
29436
29437
  ** Free any prior content in *pz and replace it with a copy of zNew.
29437
29438
  */
29438
29439
  SQLITE_PRIVATE void sqlite3SetString(char **pz, sqlite3 *db, const char *zNew){
29440
+ char *z = sqlite3DbStrDup(db, zNew);
29439
29441
  sqlite3DbFree(db, *pz);
29440
- *pz = sqlite3DbStrDup(db, zNew);
29442
+ *pz = z;
29441
29443
  }
29442
29444
 
29443
29445
  /*
@@ -67863,6 +67865,8 @@ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){
67863
67865
  ** fragmented bytes within the page. */
67864
67866
  memcpy(&aData[iAddr], &aData[pc], 2);
67865
67867
  aData[hdr+7] += (u8)x;
67868
+ testcase( pc+x>maxPC );
67869
+ return &aData[pc];
67866
67870
  }else if( x+pc > maxPC ){
67867
67871
  /* This slot extends off the end of the usable part of the page */
67868
67872
  *pRc = SQLITE_CORRUPT_PAGE(pPg);
@@ -72062,7 +72066,7 @@ SQLITE_PRIVATE int sqlite3BtreeIndexMoveto(
72062
72066
  assert( lwr==upr+1 || (pPage->intKey && !pPage->leaf) );
72063
72067
  assert( pPage->isInit );
72064
72068
  if( pPage->leaf ){
72065
- assert( pCur->ix<pCur->pPage->nCell );
72069
+ assert( pCur->ix<pCur->pPage->nCell || CORRUPT_DB );
72066
72070
  pCur->ix = (u16)idx;
72067
72071
  *pRes = c;
72068
72072
  rc = SQLITE_OK;
@@ -74586,7 +74590,7 @@ static int balance_nonroot(
74586
74590
  iOvflSpace += sz;
74587
74591
  assert( sz<=pBt->maxLocal+23 );
74588
74592
  assert( iOvflSpace <= (int)pBt->pageSize );
74589
- for(k=0; b.ixNx[k]<=i && ALWAYS(k<NB*2); k++){}
74593
+ for(k=0; b.ixNx[k]<=j && ALWAYS(k<NB*2); k++){}
74590
74594
  pSrcEnd = b.apEnd[k];
74591
74595
  if( SQLITE_WITHIN(pSrcEnd, pCell, pCell+sz) ){
74592
74596
  rc = SQLITE_CORRUPT_BKPT;
@@ -78151,7 +78155,11 @@ SQLITE_PRIVATE int sqlite3VdbeChangeEncoding(Mem *pMem, int desiredEnc){
78151
78155
  assert( !sqlite3VdbeMemIsRowSet(pMem) );
78152
78156
  assert( desiredEnc==SQLITE_UTF8 || desiredEnc==SQLITE_UTF16LE
78153
78157
  || desiredEnc==SQLITE_UTF16BE );
78154
- if( !(pMem->flags&MEM_Str) || pMem->enc==desiredEnc ){
78158
+ if( !(pMem->flags&MEM_Str) ){
78159
+ pMem->enc = desiredEnc;
78160
+ return SQLITE_OK;
78161
+ }
78162
+ if( pMem->enc==desiredEnc ){
78155
78163
  return SQLITE_OK;
78156
78164
  }
78157
78165
  assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) );
@@ -88478,6 +88486,8 @@ case OP_Gosub: { /* jump */
88478
88486
  /* Most jump operations do a goto to this spot in order to update
88479
88487
  ** the pOp pointer. */
88480
88488
  jump_to_p2:
88489
+ assert( pOp->p2>0 ); /* There are never any jumps to instruction 0 */
88490
+ assert( pOp->p2<p->nOp ); /* Jumps must be in range */
88481
88491
  pOp = &aOp[pOp->p2 - 1];
88482
88492
  break;
88483
88493
  }
@@ -104858,6 +104868,38 @@ SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr *p, int iCur){
104858
104868
  return exprIsConst(p, 3, iCur);
104859
104869
  }
104860
104870
 
104871
+ /*
104872
+ ** Check pExpr to see if it is an invariant constraint on data source pSrc.
104873
+ ** This is an optimization. False negatives will perhaps cause slower
104874
+ ** queries, but false positives will yield incorrect answers. So when in
104875
+ ** double, return 0.
104876
+ **
104877
+ ** To be an invariant constraint, the following must be true:
104878
+ **
104879
+ ** (1) pExpr cannot refer to any table other than pSrc->iCursor.
104880
+ **
104881
+ ** (2) pExpr cannot use subqueries or non-deterministic functions.
104882
+ **
104883
+ ** (*) ** Not applicable to this branch **
104884
+ **
104885
+ ** (4) If pSrc is the right operand of a LEFT JOIN, then...
104886
+ ** (4a) pExpr must come from an ON clause..
104887
+ ** (4b) and specifically the ON clause associated with the LEFT JOIN.
104888
+ **
104889
+ ** (5) If pSrc is not the right operand of a LEFT JOIN or the left
104890
+ ** operand of a RIGHT JOIN, then pExpr must be from the WHERE
104891
+ ** clause, not an ON clause.
104892
+ */
104893
+ SQLITE_PRIVATE int sqlite3ExprIsTableConstraint(Expr *pExpr, const SrcItem *pSrc){
104894
+ if( pSrc->fg.jointype & JT_LEFT ){
104895
+ if( !ExprHasProperty(pExpr, EP_FromJoin) ) return 0; /* rule (4a) */
104896
+ if( pExpr->w.iRightJoinTable!=pSrc->iCursor ) return 0; /* rule (4b) */
104897
+ }else{
104898
+ if( ExprHasProperty(pExpr, EP_FromJoin) ) return 0; /* rule (5) */
104899
+ }
104900
+ return sqlite3ExprIsTableConstant(pExpr, pSrc->iCursor); /* rules (1), (2) */
104901
+ }
104902
+
104861
104903
 
104862
104904
  /*
104863
104905
  ** sqlite3WalkExpr() callback used by sqlite3ExprIsConstantOrGroupBy().
@@ -133930,6 +133972,14 @@ SQLITE_PRIVATE void sqlite3ParseObjectInit(Parse *pParse, sqlite3 *db){
133930
133972
  if( db->mallocFailed ) sqlite3ErrorMsg(pParse, "out of memory");
133931
133973
  }
133932
133974
 
133975
+ /*
133976
+ ** Maximum number of times that we will try again to prepare a statement
133977
+ ** that returns SQLITE_ERROR_RETRY.
133978
+ */
133979
+ #ifndef SQLITE_MAX_PREPARE_RETRY
133980
+ # define SQLITE_MAX_PREPARE_RETRY 25
133981
+ #endif
133982
+
133933
133983
  /*
133934
133984
  ** Compile the UTF-8 encoded SQL statement zSql into a statement handle.
133935
133985
  */
@@ -134104,7 +134154,7 @@ static int sqlite3LockAndPrepare(
134104
134154
  rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);
134105
134155
  assert( rc==SQLITE_OK || *ppStmt==0 );
134106
134156
  if( rc==SQLITE_OK || db->mallocFailed ) break;
134107
- }while( rc==SQLITE_ERROR_RETRY
134157
+ }while( (rc==SQLITE_ERROR_RETRY && (cnt++)<SQLITE_MAX_PREPARE_RETRY)
134108
134158
  || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );
134109
134159
  sqlite3BtreeLeaveAll(db);
134110
134160
  rc = sqlite3ApiExit(db, rc);
@@ -139146,8 +139196,7 @@ static int pushDownWhereTerms(
139146
139196
  Parse *pParse, /* Parse context (for malloc() and error reporting) */
139147
139197
  Select *pSubq, /* The subquery whose WHERE clause is to be augmented */
139148
139198
  Expr *pWhere, /* The WHERE clause of the outer query */
139149
- int iCursor, /* Cursor number of the subquery */
139150
- int isLeftJoin /* True if pSubq is the right term of a LEFT JOIN */
139199
+ SrcItem *pSrc /* The subquery term of the outer FROM clause */
139151
139200
  ){
139152
139201
  Expr *pNew;
139153
139202
  int nChng = 0;
@@ -139182,10 +139231,11 @@ static int pushDownWhereTerms(
139182
139231
  return 0; /* restriction (3) */
139183
139232
  }
139184
139233
  while( pWhere->op==TK_AND ){
139185
- nChng += pushDownWhereTerms(pParse, pSubq, pWhere->pRight,
139186
- iCursor, isLeftJoin);
139234
+ nChng += pushDownWhereTerms(pParse, pSubq, pWhere->pRight, pSrc);
139187
139235
  pWhere = pWhere->pLeft;
139188
139236
  }
139237
+
139238
+ #if 0 /* Legacy code. Checks now done by sqlite3ExprIsTableConstraint() */
139189
139239
  if( isLeftJoin
139190
139240
  && (ExprHasProperty(pWhere,EP_FromJoin)==0
139191
139241
  || pWhere->w.iRightJoinTable!=iCursor)
@@ -139197,7 +139247,9 @@ static int pushDownWhereTerms(
139197
139247
  ){
139198
139248
  return 0; /* restriction (5) */
139199
139249
  }
139200
- if( sqlite3ExprIsTableConstant(pWhere, iCursor) ){
139250
+ #endif
139251
+
139252
+ if( sqlite3ExprIsTableConstraint(pWhere, pSrc) ){
139201
139253
  nChng++;
139202
139254
  pSubq->selFlags |= SF_PushDown;
139203
139255
  while( pSubq ){
@@ -139205,8 +139257,8 @@ static int pushDownWhereTerms(
139205
139257
  pNew = sqlite3ExprDup(pParse->db, pWhere, 0);
139206
139258
  unsetJoinExpr(pNew, -1);
139207
139259
  x.pParse = pParse;
139208
- x.iTable = iCursor;
139209
- x.iNewTable = iCursor;
139260
+ x.iTable = pSrc->iCursor;
139261
+ x.iNewTable = pSrc->iCursor;
139210
139262
  x.isLeftJoin = 0;
139211
139263
  x.pEList = pSubq->pEList;
139212
139264
  pNew = substExpr(&x, pNew);
@@ -140988,8 +141040,7 @@ SQLITE_PRIVATE int sqlite3Select(
140988
141040
  if( OptimizationEnabled(db, SQLITE_PushDown)
140989
141041
  && (pItem->fg.isCte==0
140990
141042
  || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2))
140991
- && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem->iCursor,
140992
- (pItem->fg.jointype & JT_OUTER)!=0)
141043
+ && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem)
140993
141044
  ){
140994
141045
  #if SELECTTRACE_ENABLED
140995
141046
  if( sqlite3SelectTrace & 0x100 ){
@@ -148781,6 +148832,7 @@ static void preserveExpr(IdxExprTrans *pTrans, Expr *pExpr){
148781
148832
  static int whereIndexExprTransNode(Walker *p, Expr *pExpr){
148782
148833
  IdxExprTrans *pX = p->u.pIdxTrans;
148783
148834
  if( sqlite3ExprCompare(0, pExpr, pX->pIdxExpr, pX->iTabCur)==0 ){
148835
+ pExpr = sqlite3ExprSkipCollate(pExpr);
148784
148836
  preserveExpr(pX, pExpr);
148785
148837
  pExpr->affExpr = sqlite3ExprAffinity(pExpr);
148786
148838
  pExpr->op = TK_COLUMN;
@@ -148940,6 +148992,8 @@ static SQLITE_NOINLINE void filterPullDown(
148940
148992
  /* ,--- Because sqlite3ConstructBloomFilter() has will not have set
148941
148993
  ** vvvvv--' pLevel->regFilter if this were true. */
148942
148994
  if( NEVER(pLoop->prereq & notReady) ) continue;
148995
+ assert( pLevel->addrBrk==0 );
148996
+ pLevel->addrBrk = addrNxt;
148943
148997
  if( pLoop->wsFlags & WHERE_IPK ){
148944
148998
  WhereTerm *pTerm = pLoop->aLTerm[0];
148945
148999
  int regRowid;
@@ -148966,6 +149020,7 @@ static SQLITE_NOINLINE void filterPullDown(
148966
149020
  VdbeCoverage(pParse->pVdbe);
148967
149021
  }
148968
149022
  pLevel->regFilter = 0;
149023
+ pLevel->addrBrk = 0;
148969
149024
  }
148970
149025
  }
148971
149026
 
@@ -152914,8 +152969,7 @@ static SQLITE_NOINLINE void constructAutomaticIndex(
152914
152969
  ** WHERE clause (or the ON clause of a LEFT join) that constrain which
152915
152970
  ** rows of the target table (pSrc) that can be used. */
152916
152971
  if( (pTerm->wtFlags & TERM_VIRTUAL)==0
152917
- && ((pSrc->fg.jointype&JT_LEFT)==0 || ExprHasProperty(pExpr,EP_FromJoin))
152918
- && sqlite3ExprIsTableConstant(pExpr, pSrc->iCursor)
152972
+ && sqlite3ExprIsTableConstraint(pExpr, pSrc)
152919
152973
  ){
152920
152974
  pPartial = sqlite3ExprAnd(pParse, pPartial,
152921
152975
  sqlite3ExprDup(pParse->db, pExpr, 0));
@@ -153154,7 +153208,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter(
153154
153208
  for(pTerm=pWInfo->sWC.a; pTerm<pWCEnd; pTerm++){
153155
153209
  Expr *pExpr = pTerm->pExpr;
153156
153210
  if( (pTerm->wtFlags & TERM_VIRTUAL)==0
153157
- && sqlite3ExprIsTableConstant(pExpr, iCur)
153211
+ && sqlite3ExprIsTableConstraint(pExpr, pItem)
153158
153212
  ){
153159
153213
  sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, SQLITE_JUMPIFNULL);
153160
153214
  }
@@ -160074,7 +160128,7 @@ static void windowAggStep(
160074
160128
 
160075
160129
  for(iEnd=sqlite3VdbeCurrentAddr(v); iOp<iEnd; iOp++){
160076
160130
  VdbeOp *pOp = sqlite3VdbeGetOp(v, iOp);
160077
- if( pOp->opcode==OP_Column && pOp->p1==pWin->iEphCsr ){
160131
+ if( pOp->opcode==OP_Column && pOp->p1==pMWin->iEphCsr ){
160078
160132
  pOp->p1 = csr;
160079
160133
  }
160080
160134
  }
@@ -194397,14 +194451,15 @@ static JsonNode *jsonLookupStep(
194397
194451
  *pzErr = zPath;
194398
194452
  return 0;
194399
194453
  }
194454
+ testcase( nKey==0 );
194400
194455
  }else{
194401
194456
  zKey = zPath;
194402
194457
  for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){}
194403
194458
  nKey = i;
194404
- }
194405
- if( nKey==0 ){
194406
- *pzErr = zPath;
194407
- return 0;
194459
+ if( nKey==0 ){
194460
+ *pzErr = zPath;
194461
+ return 0;
194462
+ }
194408
194463
  }
194409
194464
  j = 1;
194410
194465
  for(;;){
@@ -195552,6 +195607,33 @@ static int jsonEachNext(sqlite3_vtab_cursor *cur){
195552
195607
  return SQLITE_OK;
195553
195608
  }
195554
195609
 
195610
+ /* Append an object label to the JSON Path being constructed
195611
+ ** in pStr.
195612
+ */
195613
+ static void jsonAppendObjectPathElement(
195614
+ JsonString *pStr,
195615
+ JsonNode *pNode
195616
+ ){
195617
+ int jj, nn;
195618
+ const char *z;
195619
+ assert( pNode->eType==JSON_STRING );
195620
+ assert( pNode->jnFlags & JNODE_LABEL );
195621
+ assert( pNode->eU==1 );
195622
+ z = pNode->u.zJContent;
195623
+ nn = pNode->n;
195624
+ assert( nn>=2 );
195625
+ assert( z[0]=='"' );
195626
+ assert( z[nn-1]=='"' );
195627
+ if( nn>2 && sqlite3Isalpha(z[1]) ){
195628
+ for(jj=2; jj<nn-1 && sqlite3Isalnum(z[jj]); jj++){}
195629
+ if( jj==nn-1 ){
195630
+ z++;
195631
+ nn -= 2;
195632
+ }
195633
+ }
195634
+ jsonPrintf(nn+2, pStr, ".%.*s", nn, z);
195635
+ }
195636
+
195555
195637
  /* Append the name of the path for element i to pStr
195556
195638
  */
195557
195639
  static void jsonEachComputePath(
@@ -195576,10 +195658,7 @@ static void jsonEachComputePath(
195576
195658
  }else{
195577
195659
  assert( pUp->eType==JSON_OBJECT );
195578
195660
  if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--;
195579
- assert( pNode->eType==JSON_STRING );
195580
- assert( pNode->jnFlags & JNODE_LABEL );
195581
- assert( pNode->eU==1 );
195582
- jsonPrintf(pNode->n+1, pStr, ".%.*s", pNode->n-2, pNode->u.zJContent+1);
195661
+ jsonAppendObjectPathElement(pStr, pNode);
195583
195662
  }
195584
195663
  }
195585
195664
 
@@ -195650,8 +195729,7 @@ static int jsonEachColumn(
195650
195729
  if( p->eType==JSON_ARRAY ){
195651
195730
  jsonPrintf(30, &x, "[%d]", p->iRowid);
195652
195731
  }else if( p->eType==JSON_OBJECT ){
195653
- assert( pThis->eU==1 );
195654
- jsonPrintf(pThis->n, &x, ".%.*s", pThis->n-2, pThis->u.zJContent+1);
195732
+ jsonAppendObjectPathElement(&x, pThis);
195655
195733
  }
195656
195734
  }
195657
195735
  jsonResult(&x);
@@ -234542,7 +234620,7 @@ static void fts5SourceIdFunc(
234542
234620
  ){
234543
234621
  assert( nArg==0 );
234544
234622
  UNUSED_PARAM2(nArg, apUnused);
234545
- sqlite3_result_text(pCtx, "fts5: 2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f", -1, SQLITE_TRANSIENT);
234623
+ sqlite3_result_text(pCtx, "fts5: 2022-05-06 15:25:27 78d9c993d404cdfaa7fdd2973fa1052e3da9f66215cff9c5540ebe55c407d9fe", -1, SQLITE_TRANSIENT);
234546
234624
  }
234547
234625
 
234548
234626
  /*
@@ -239671,9 +239749,9 @@ SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
239671
239749
 
239672
239750
  #define SQLITE3MC_VERSION_MAJOR 1
239673
239751
  #define SQLITE3MC_VERSION_MINOR 4
239674
- #define SQLITE3MC_VERSION_RELEASE 0
239752
+ #define SQLITE3MC_VERSION_RELEASE 3
239675
239753
  #define SQLITE3MC_VERSION_SUBRELEASE 0
239676
- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.0"
239754
+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.3"
239677
239755
 
239678
239756
  #endif /* SQLITE3MC_VERSION_H_ */
239679
239757
  /*** End of #include "sqlite3mc_version.h" ***/
@@ -239832,9 +239910,9 @@ extern "C" {
239832
239910
  ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
239833
239911
  ** [sqlite_version()] and [sqlite_source_id()].
239834
239912
  */
239835
- #define SQLITE_VERSION "3.38.2"
239836
- #define SQLITE_VERSION_NUMBER 3038002
239837
- #define SQLITE_SOURCE_ID "2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f"
239913
+ #define SQLITE_VERSION "3.38.5"
239914
+ #define SQLITE_VERSION_NUMBER 3038005
239915
+ #define SQLITE_SOURCE_ID "2022-05-06 15:25:27 78d9c993d404cdfaa7fdd2973fa1052e3da9f66215cff9c5540ebe55c407d9fe"
239838
239916
 
239839
239917
  /*
239840
239918
  ** CAPI3REF: Run-Time Library Version Numbers
@@ -262657,7 +262735,7 @@ sqlite3mcBtreeSetPageSize(Btree* p, int pageSize, int nReserve, int iFix)
262657
262735
  ** Change 4: Call sqlite3mcBtreeSetPageSize instead of sqlite3BtreeSetPageSize for main database
262658
262736
  ** (sqlite3mcBtreeSetPageSize allows to reduce the number of reserved bytes)
262659
262737
  **
262660
- ** This code is generated by the script rekeyvacuum.sh from SQLite version 3.38.2 amalgamation.
262738
+ ** This code is generated by the script rekeyvacuum.sh from SQLite version 3.38.5 amalgamation.
262661
262739
  */
262662
262740
  SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3mcRunVacuumForRekey(
262663
262741
  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 4
34
- #define SQLITE3MC_VERSION_RELEASE 0
34
+ #define SQLITE3MC_VERSION_RELEASE 3
35
35
  #define SQLITE3MC_VERSION_SUBRELEASE 0
36
- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.0"
36
+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.3"
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.38.2"
196
- #define SQLITE_VERSION_NUMBER 3038002
197
- #define SQLITE_SOURCE_ID "2022-03-26 13:51:10 d33c709cc0af66bc5b6dc6216eba9f1f0b40960b9ae83694c986fbf4c1d6f08f"
195
+ #define SQLITE_VERSION "3.38.5"
196
+ #define SQLITE_VERSION_NUMBER 3038005
197
+ #define SQLITE_SOURCE_ID "2022-05-06 15:25:27 78d9c993d404cdfaa7fdd2973fa1052e3da9f66215cff9c5540ebe55c407d9fe"
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": "7.5.2-beta.0",
3
+ "version": "7.5.2-beta.3",
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>",