better-sqlite3-multiple-ciphers 7.6.2 → 7.6.3-beta.0

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.4.6`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.4.6)
24
24
 
25
25
  - ### Beta
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
- - **better-sqlite3** - [`7.5.1`](https://github.com/JoshuaWise/better-sqlite3/releases/tag/v7.5.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)
26
+ - **better-sqlite3-multiple-ciphers** - [`7.6.3-beta.0`](https://github.com/m4heshd/better-sqlite3-multiple-ciphers/releases/tag/v7.6.3-beta.0)
27
+ - **better-sqlite3** - [`7.6.2`](https://github.com/JoshuaWise/better-sqlite3/releases/tag/v7.6.2)
28
+ - **SQLite** - [`3.39.2`](https://www.sqlite.org/releaselog/3_39_2.html)
29
+ - **SQLite3 Multiple Ciphers** - [`1.4.8`](https://github.com/utelle/SQLite3MultipleCiphers/releases/tag/v1.4.8)
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.6"
5
+ $SQLITEMC_VER = "v1.4.8"
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.39.1. By combining all the individual C code files into this
95
+ ** version 3.39.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.39.1"
548
- #define SQLITE_VERSION_NUMBER 3039001
549
- #define SQLITE_SOURCE_ID "2022-07-13 19:41:41 7c16541a0efb3985578181171c9f2bb3fdc4bad6a2ec85c6e31ab96f3eff201f"
547
+ #define SQLITE_VERSION "3.39.2"
548
+ #define SQLITE_VERSION_NUMBER 3039002
549
+ #define SQLITE_SOURCE_ID "2022-07-21 15:24:47 698edb77537b67c41adc68f9b892db56bcf9a55e00371a61420f3ddd668e6603"
550
550
 
551
551
  /*
552
552
  ** CAPI3REF: Run-Time Library Version Numbers
@@ -30529,8 +30529,8 @@ SQLITE_API void sqlite3_str_vappendf(
30529
30529
  case etSQLESCAPE: /* %q: Escape ' characters */
30530
30530
  case etSQLESCAPE2: /* %Q: Escape ' and enclose in '...' */
30531
30531
  case etSQLESCAPE3: { /* %w: Escape " characters */
30532
- int i, j, k, n, isnull;
30533
- int needQuote;
30532
+ i64 i, j, k, n;
30533
+ int needQuote, isnull;
30534
30534
  char ch;
30535
30535
  char q = ((xtype==etSQLESCAPE3)?'"':'\''); /* Quote character */
30536
30536
  char *escarg;
@@ -31218,8 +31218,8 @@ SQLITE_PRIVATE void sqlite3TreeViewColumnList(
31218
31218
  sqlite3TreeViewLine(pView, "COLUMNS");
31219
31219
  for(i=0; i<nCol; i++){
31220
31220
  u16 flg = aCol[i].colFlags;
31221
- int moreToFollow = i<(nCol - 1);
31222
- sqlite3TreeViewPush(&pView, moreToFollow);
31221
+ int colMoreToFollow = i<(nCol - 1);
31222
+ sqlite3TreeViewPush(&pView, colMoreToFollow);
31223
31223
  sqlite3TreeViewLine(pView, 0);
31224
31224
  printf(" %s", aCol[i].zCnName);
31225
31225
  switch( aCol[i].eCType ){
@@ -31350,7 +31350,7 @@ SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc)
31350
31350
  Table *pTab = pItem->pTab;
31351
31351
  sqlite3TreeViewColumnList(pView, pTab->aCol, pTab->nCol, 1);
31352
31352
  }
31353
- assert( pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
31353
+ assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
31354
31354
  sqlite3TreeViewSelect(pView, pItem->pSelect, (--n)>0);
31355
31355
  }
31356
31356
  if( pItem->fg.isTabFunc ){
@@ -101639,33 +101639,23 @@ static void resolveAlias(
101639
101639
  sqlite3ExprDelete(db, pDup);
101640
101640
  pDup = 0;
101641
101641
  }else{
101642
+ Expr temp;
101642
101643
  incrAggFunctionDepth(pDup, nSubquery);
101643
101644
  if( pExpr->op==TK_COLLATE ){
101644
101645
  assert( !ExprHasProperty(pExpr, EP_IntValue) );
101645
101646
  pDup = sqlite3ExprAddCollateString(pParse, pDup, pExpr->u.zToken);
101646
101647
  }
101647
-
101648
- /* Before calling sqlite3ExprDelete(), set the EP_Static flag. This
101649
- ** prevents ExprDelete() from deleting the Expr structure itself,
101650
- ** allowing it to be repopulated by the memcpy() on the following line.
101651
- ** The pExpr->u.zToken might point into memory that will be freed by the
101652
- ** sqlite3DbFree(db, pDup) on the last line of this block, so be sure to
101653
- ** make a copy of the token before doing the sqlite3DbFree().
101654
- */
101655
- ExprSetProperty(pExpr, EP_Static);
101656
- sqlite3ExprDelete(db, pExpr);
101657
- memcpy(pExpr, pDup, sizeof(*pExpr));
101658
- if( !ExprHasProperty(pExpr, EP_IntValue) && pExpr->u.zToken!=0 ){
101659
- assert( (pExpr->flags & (EP_Reduced|EP_TokenOnly))==0 );
101660
- pExpr->u.zToken = sqlite3DbStrDup(db, pExpr->u.zToken);
101661
- pExpr->flags |= EP_MemToken;
101662
- }
101648
+ memcpy(&temp, pDup, sizeof(Expr));
101649
+ memcpy(pDup, pExpr, sizeof(Expr));
101650
+ memcpy(pExpr, &temp, sizeof(Expr));
101663
101651
  if( ExprHasProperty(pExpr, EP_WinFunc) ){
101664
101652
  if( ALWAYS(pExpr->y.pWin!=0) ){
101665
101653
  pExpr->y.pWin->pOwner = pExpr;
101666
101654
  }
101667
101655
  }
101668
- sqlite3DbFree(db, pDup);
101656
+ sqlite3ParserAddCleanup(pParse,
101657
+ (void(*)(sqlite3*,void*))sqlite3ExprDelete,
101658
+ pDup);
101669
101659
  }
101670
101660
  }
101671
101661
 
@@ -101868,7 +101858,7 @@ static int lookupName(
101868
101858
  pTab = pItem->pTab;
101869
101859
  assert( pTab!=0 && pTab->zName!=0 );
101870
101860
  assert( pTab->nCol>0 || pParse->nErr );
101871
- assert( pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
101861
+ assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
101872
101862
  if( pItem->fg.isNestedFrom ){
101873
101863
  /* In this case, pItem is a subquery that has been formed from a
101874
101864
  ** parenthesized subset of the FROM clause terms. Example:
@@ -135963,7 +135953,7 @@ SQLITE_PRIVATE int sqlite3ColumnIndex(Table *pTab, const char *zCol){
135963
135953
  */
135964
135954
  SQLITE_PRIVATE void sqlite3SrcItemColumnUsed(SrcItem *pItem, int iCol){
135965
135955
  assert( pItem!=0 );
135966
- assert( pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
135956
+ assert( (int)pItem->fg.isNestedFrom == IsNestedFrom(pItem->pSelect) );
135967
135957
  if( pItem->fg.isNestedFrom ){
135968
135958
  ExprList *pResults;
135969
135959
  assert( pItem->pSelect!=0 );
@@ -141550,7 +141540,7 @@ static int selectExpander(Walker *pWalker, Select *p){
141550
141540
  zTabName = pTab->zName;
141551
141541
  }
141552
141542
  if( db->mallocFailed ) break;
141553
- assert( pFrom->fg.isNestedFrom == IsNestedFrom(pFrom->pSelect) );
141543
+ assert( (int)pFrom->fg.isNestedFrom == IsNestedFrom(pFrom->pSelect) );
141554
141544
  if( pFrom->fg.isNestedFrom ){
141555
141545
  assert( pFrom->pSelect!=0 );
141556
141546
  pNestedFrom = pFrom->pSelect->pEList;
@@ -142479,7 +142469,9 @@ SQLITE_PRIVATE int sqlite3Select(
142479
142469
  ){
142480
142470
  SELECTTRACE(0x100,pParse,p,
142481
142471
  ("omit superfluous ORDER BY on %r FROM-clause subquery\n",i+1));
142482
- sqlite3ExprListDelete(db, pSub->pOrderBy);
142472
+ sqlite3ParserAddCleanup(pParse,
142473
+ (void(*)(sqlite3*,void*))sqlite3ExprListDelete,
142474
+ pSub->pOrderBy);
142483
142475
  pSub->pOrderBy = 0;
142484
142476
  }
142485
142477
 
@@ -155479,7 +155471,7 @@ static int whereKeyStats(
155479
155471
  #endif
155480
155472
  assert( pRec!=0 );
155481
155473
  assert( pIdx->nSample>0 );
155482
- assert( pRec->nField>0 && pRec->nField<=pIdx->nSampleCol );
155474
+ assert( pRec->nField>0 );
155483
155475
 
155484
155476
  /* Do a binary search to find the first sample greater than or equal
155485
155477
  ** to pRec. If pRec contains a single field, the set of samples to search
@@ -155525,7 +155517,7 @@ static int whereKeyStats(
155525
155517
  ** it is extended to two fields. The duplicates that this creates do not
155526
155518
  ** cause any problems.
155527
155519
  */
155528
- nField = pRec->nField;
155520
+ nField = MIN(pRec->nField, pIdx->nSample);
155529
155521
  iCol = 0;
155530
155522
  iSample = pIdx->nSample * nField;
155531
155523
  do{
@@ -158214,6 +158206,7 @@ static int whereLoopAddAll(WhereLoopBuilder *pBuilder){
158214
158206
  sqlite3 *db = pWInfo->pParse->db;
158215
158207
  int rc = SQLITE_OK;
158216
158208
  int bFirstPastRJ = 0;
158209
+ int hasRightJoin = 0;
158217
158210
  WhereLoop *pNew;
158218
158211
 
158219
158212
 
@@ -158234,15 +158227,16 @@ static int whereLoopAddAll(WhereLoopBuilder *pBuilder){
158234
158227
  ** prevents the right operand of a RIGHT JOIN from being swapped with
158235
158228
  ** other elements even further to the right.
158236
158229
  **
158237
- ** The JT_LTORJ term prevents any FROM-clause term reordering for terms
158238
- ** to the left of a RIGHT JOIN. This is conservative. Relaxing this
158239
- ** constraint somewhat to prevent terms from crossing from the right
158240
- ** side of a LEFT JOIN over to the left side when they are on the
158241
- ** left side of a RIGHT JOIN would be sufficient for all known failure
158242
- ** cases. FIX ME: Implement this optimization.
158230
+ ** The JT_LTORJ case and the hasRightJoin flag work together to
158231
+ ** prevent FROM-clause terms from moving from the right side of
158232
+ ** a LEFT JOIN over to the left side of that join if the LEFT JOIN
158233
+ ** is itself on the left side of a RIGHT JOIN.
158243
158234
  */
158235
+ if( pItem->fg.jointype & JT_LTORJ ) hasRightJoin = 1;
158244
158236
  mPrereq |= mPrior;
158245
158237
  bFirstPastRJ = (pItem->fg.jointype & JT_RIGHT)!=0;
158238
+ }else if( !hasRightJoin ){
158239
+ mPrereq = 0;
158246
158240
  }
158247
158241
  #ifndef SQLITE_OMIT_VIRTUALTABLE
158248
158242
  if( IsVirtual(pItem->pTab) ){
@@ -181167,8 +181161,7 @@ static int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase){
181167
181161
  char *aPoslist = 0; /* Position list for deferred tokens */
181168
181162
  int nPoslist = 0; /* Number of bytes in aPoslist */
181169
181163
  int iPrev = -1; /* Token number of previous deferred token */
181170
-
181171
- assert( pPhrase->doclist.bFreeList==0 );
181164
+ char *aFree = (pPhrase->doclist.bFreeList ? pPhrase->doclist.pList : 0);
181172
181165
 
181173
181166
  for(iToken=0; iToken<pPhrase->nToken; iToken++){
181174
181167
  Fts3PhraseToken *pToken = &pPhrase->aToken[iToken];
@@ -181182,6 +181175,7 @@ static int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase){
181182
181175
 
181183
181176
  if( pList==0 ){
181184
181177
  sqlite3_free(aPoslist);
181178
+ sqlite3_free(aFree);
181185
181179
  pPhrase->doclist.pList = 0;
181186
181180
  pPhrase->doclist.nList = 0;
181187
181181
  return SQLITE_OK;
@@ -181202,6 +181196,7 @@ static int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase){
181202
181196
  nPoslist = (int)(aOut - aPoslist);
181203
181197
  if( nPoslist==0 ){
181204
181198
  sqlite3_free(aPoslist);
181199
+ sqlite3_free(aFree);
181205
181200
  pPhrase->doclist.pList = 0;
181206
181201
  pPhrase->doclist.nList = 0;
181207
181202
  return SQLITE_OK;
@@ -181254,6 +181249,7 @@ static int fts3EvalDeferredPhrase(Fts3Cursor *pCsr, Fts3Phrase *pPhrase){
181254
181249
  }
181255
181250
  }
181256
181251
 
181252
+ if( pPhrase->doclist.pList!=aFree ) sqlite3_free(aFree);
181257
181253
  return SQLITE_OK;
181258
181254
  }
181259
181255
  #endif /* SQLITE_DISABLE_FTS4_DEFERRED */
@@ -182432,7 +182428,6 @@ static int fts3EvalTestExpr(
182432
182428
  pExpr->iDocid==pCsr->iPrevId && pExpr->pPhrase->doclist.pList
182433
182429
  ))){
182434
182430
  Fts3Phrase *pPhrase = pExpr->pPhrase;
182435
- assert( pExpr->bDeferred || pPhrase->doclist.bFreeList==0 );
182436
182431
  if( pExpr->bDeferred ){
182437
182432
  fts3EvalInvalidatePoslist(pPhrase);
182438
182433
  }
@@ -236750,7 +236745,7 @@ static void fts5SourceIdFunc(
236750
236745
  ){
236751
236746
  assert( nArg==0 );
236752
236747
  UNUSED_PARAM2(nArg, apUnused);
236753
- sqlite3_result_text(pCtx, "fts5: 2022-07-13 19:41:41 7c16541a0efb3985578181171c9f2bb3fdc4bad6a2ec85c6e31ab96f3eff201f", -1, SQLITE_TRANSIENT);
236748
+ sqlite3_result_text(pCtx, "fts5: 2022-07-21 15:24:47 698edb77537b67c41adc68f9b892db56bcf9a55e00371a61420f3ddd668e6603", -1, SQLITE_TRANSIENT);
236754
236749
  }
236755
236750
 
236756
236751
  /*
@@ -241916,9 +241911,9 @@ SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
241916
241911
 
241917
241912
  #define SQLITE3MC_VERSION_MAJOR 1
241918
241913
  #define SQLITE3MC_VERSION_MINOR 4
241919
- #define SQLITE3MC_VERSION_RELEASE 6
241914
+ #define SQLITE3MC_VERSION_RELEASE 8
241920
241915
  #define SQLITE3MC_VERSION_SUBRELEASE 0
241921
- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.6"
241916
+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.8"
241922
241917
 
241923
241918
  #endif /* SQLITE3MC_VERSION_H_ */
241924
241919
  /*** End of #include "sqlite3mc_version.h" ***/
@@ -242077,9 +242072,9 @@ extern "C" {
242077
242072
  ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
242078
242073
  ** [sqlite_version()] and [sqlite_source_id()].
242079
242074
  */
242080
- #define SQLITE_VERSION "3.39.1"
242081
- #define SQLITE_VERSION_NUMBER 3039001
242082
- #define SQLITE_SOURCE_ID "2022-07-13 19:41:41 7c16541a0efb3985578181171c9f2bb3fdc4bad6a2ec85c6e31ab96f3eff201f"
242075
+ #define SQLITE_VERSION "3.39.2"
242076
+ #define SQLITE_VERSION_NUMBER 3039002
242077
+ #define SQLITE_SOURCE_ID "2022-07-21 15:24:47 698edb77537b67c41adc68f9b892db56bcf9a55e00371a61420f3ddd668e6603"
242083
242078
 
242084
242079
  /*
242085
242080
  ** CAPI3REF: Run-Time Library Version Numbers
@@ -263781,7 +263776,7 @@ sqlite3mcConfigureSQLCipherVersion(sqlite3* db, int configDefault, int legacyVer
263781
263776
  ** Purpose: Configuration of SQLite codecs
263782
263777
  ** Author: Ulrich Telle
263783
263778
  ** Created: 2020-03-02
263784
- ** Copyright: (c) 2006-2021 Ulrich Telle
263779
+ ** Copyright: (c) 2006-2022 Ulrich Telle
263785
263780
  ** License: MIT
263786
263781
  */
263787
263782
 
@@ -264635,6 +264630,17 @@ sqlite3mcFileControlPragma(sqlite3* db, const char* zDbName, int op, void* pArg)
264635
264630
  {
264636
264631
  ((char**)pArg)[0] = sqlite3_mprintf("ok");
264637
264632
  }
264633
+ else
264634
+ {
264635
+ if (db->pErr)
264636
+ {
264637
+ const char* z = (const char*)sqlite3_value_text(db->pErr);
264638
+ if (z && sqlite3Strlen30(z) > 0)
264639
+ {
264640
+ ((char**)pArg)[0] = sqlite3_mprintf(z);
264641
+ }
264642
+ }
264643
+ }
264638
264644
  }
264639
264645
  else if (sqlite3StrICmp(pragmaName, "hexkey") == 0)
264640
264646
  {
@@ -264649,6 +264655,17 @@ sqlite3mcFileControlPragma(sqlite3* db, const char* zDbName, int op, void* pArg)
264649
264655
  {
264650
264656
  ((char**)pArg)[0] = sqlite3_mprintf("ok");
264651
264657
  }
264658
+ else
264659
+ {
264660
+ if (db->pErr)
264661
+ {
264662
+ const char* z = (const char*)sqlite3_value_text(db->pErr);
264663
+ if (z && sqlite3Strlen30(z) > 0)
264664
+ {
264665
+ ((char**)pArg)[0] = sqlite3_mprintf(z);
264666
+ }
264667
+ }
264668
+ }
264652
264669
  }
264653
264670
  else
264654
264671
  {
@@ -264932,7 +264949,7 @@ sqlite3mcBtreeSetPageSize(Btree* p, int pageSize, int nReserve, int iFix)
264932
264949
  ** Change 4: Call sqlite3mcBtreeSetPageSize instead of sqlite3BtreeSetPageSize for main database
264933
264950
  ** (sqlite3mcBtreeSetPageSize allows to reduce the number of reserved bytes)
264934
264951
  **
264935
- ** This code is generated by the script rekeyvacuum.sh from SQLite version 3.39.1 amalgamation.
264952
+ ** This code is generated by the script rekeyvacuum.sh from SQLite version 3.39.2 amalgamation.
264936
264953
  */
264937
264954
  SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3mcRunVacuumForRekey(
264938
264955
  char **pzErrMsg, /* Write error message here */
@@ -265493,6 +265510,11 @@ sqlite3_key_v2(sqlite3* db, const char* zDbName, const void* zKey, int nKey)
265493
265510
  {
265494
265511
  int dbIndex;
265495
265512
  const char* dbFileName = sqlite3_db_filename(db, zDbName);
265513
+ if (dbFileName == NULL || dbFileName[0] == 0)
265514
+ {
265515
+ sqlite3ErrorWithMsg(db, rc, "Setting key not supported for in-memory or temporary databases.");
265516
+ return rc;
265517
+ }
265496
265518
  /* Configure cipher from URI parameters if requested */
265497
265519
  if (sqlite3FindFunction(db, "sqlite3mc_config_table", 0, SQLITE_UTF8, 0) == NULL)
265498
265520
  {
@@ -265513,7 +265535,7 @@ sqlite3_key_v2(sqlite3* db, const char* zDbName, const void* zKey, int nKey)
265513
265535
  else
265514
265536
  {
265515
265537
  rc = SQLITE_ERROR;
265516
- sqlite3ErrorWithMsg(db, rc, "Key failed. Database '%s' not found.", zDbName);
265538
+ sqlite3ErrorWithMsg(db, rc, "Setting key failed. Database '%s' not found.", zDbName);
265517
265539
  }
265518
265540
  }
265519
265541
  return rc;
@@ -265540,7 +265562,12 @@ sqlite3_rekey_v2(sqlite3* db, const char* zDbName, const void* zKey, int nKey)
265540
265562
  dbIndex = (zDbName) ? sqlite3FindDbName(db, zDbName) : 0;
265541
265563
  if (dbIndex < 0)
265542
265564
  {
265543
- sqlite3ErrorWithMsg(db, rc, "Rekey failed. Database '%s' not found.", zDbName);
265565
+ sqlite3ErrorWithMsg(db, rc, "Rekeying failed. Database '%s' not found.", zDbName);
265566
+ return rc;
265567
+ }
265568
+ if (dbFileName == NULL || dbFileName[0] == 0)
265569
+ {
265570
+ sqlite3ErrorWithMsg(db, rc, "Rekeying not supported for in-memory or temporary databases.");
265544
265571
  return rc;
265545
265572
  }
265546
265573
  pBt = db->aDb[dbIndex].pBt;
@@ -265555,7 +265582,7 @@ sqlite3_rekey_v2(sqlite3* db, const char* zDbName, const void* zKey, int nKey)
265555
265582
 
265556
265583
  if (pagerUseWal(pPager))
265557
265584
  {
265558
- sqlite3ErrorWithMsg(db, rc, "Rekey is not supported in WAL journal mode.");
265585
+ sqlite3ErrorWithMsg(db, rc, "Rekeying is not supported in WAL journal mode.");
265559
265586
  return rc;
265560
265587
  }
265561
265588
 
@@ -265606,7 +265633,7 @@ sqlite3_rekey_v2(sqlite3* db, const char* zDbName, const void* zKey, int nKey)
265606
265633
  {
265607
265634
  /* Pagesize cannot be changed for an encrypted database */
265608
265635
  rc = SQLITE_ERROR;
265609
- sqlite3ErrorWithMsg(db, rc, "Rekey failed. Pagesize cannot be changed for an encrypted database.");
265636
+ sqlite3ErrorWithMsg(db, rc, "Rekeying failed. Pagesize cannot be changed for an encrypted database.");
265610
265637
  goto leave_rekey;
265611
265638
  }
265612
265639
  }
@@ -265655,14 +265682,14 @@ sqlite3_rekey_v2(sqlite3* db, const char* zDbName, const void* zKey, int nKey)
265655
265682
  {
265656
265683
  /* Pagesize cannot be changed for an encrypted database */
265657
265684
  rc = SQLITE_ERROR;
265658
- sqlite3ErrorWithMsg(db, rc, "Rekey failed. Pagesize cannot be changed for an encrypted database.");
265685
+ sqlite3ErrorWithMsg(db, rc, "Rekeying failed. Pagesize cannot be changed for an encrypted database.");
265659
265686
  goto leave_rekey;
265660
265687
  }
265661
265688
  }
265662
265689
  else
265663
265690
  {
265664
265691
  /* Setup of write cipher failed */
265665
- sqlite3ErrorWithMsg(db, rc, "Rekey failed. Setup of write cipher failed.");
265692
+ sqlite3ErrorWithMsg(db, rc, "Rekeying failed. Setup of write cipher failed.");
265666
265693
  goto leave_rekey;
265667
265694
  }
265668
265695
  }
@@ -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 6
34
+ #define SQLITE3MC_VERSION_RELEASE 8
35
35
  #define SQLITE3MC_VERSION_SUBRELEASE 0
36
- #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.6"
36
+ #define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.4.8"
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.39.1"
196
- #define SQLITE_VERSION_NUMBER 3039001
197
- #define SQLITE_SOURCE_ID "2022-07-13 19:41:41 7c16541a0efb3985578181171c9f2bb3fdc4bad6a2ec85c6e31ab96f3eff201f"
195
+ #define SQLITE_VERSION "3.39.2"
196
+ #define SQLITE_VERSION_NUMBER 3039002
197
+ #define SQLITE_SOURCE_ID "2022-07-21 15:24:47 698edb77537b67c41adc68f9b892db56bcf9a55e00371a61420f3ddd668e6603"
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.6.2",
3
+ "version": "7.6.3-beta.0",
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>",