Skip to content

Commit 9b7fe8e

Browse files
committed
Prepare release of wxSQLite3 4.6.9
Upgrade to SQLite3 Multiple Ciphers version 1.2.4 (SQLite version 3.35.4)
1 parent 1c06da0 commit 9b7fe8e

File tree

7 files changed

+79
-31
lines changed

7 files changed

+79
-31
lines changed

configure.ac

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
dnl Process this script with autoconf to create configure for wxsqlite3 library
22
dnl
3-
dnl Copyright (C) 2017-2020 Ulrich Telle <ulrich@telle-online.de>, Vadim Zeitlin <vadim@wxwidgets.org>
3+
dnl Copyright (C) 2017-2021 Ulrich Telle <ulrich@telle-online.de>, Vadim Zeitlin <vadim@wxwidgets.org>
44
dnl
55
dnl This file is covered by the same licence as the entire wxSQLite3 package.
66

7-
AC_INIT([wxsqlite3], [4.6.8], [ulrich@telle-online.de])
7+
AC_INIT([wxsqlite3], [4.6.9], [ulrich@telle-online.de])
88

99
dnl This is the version tested with, might work with earlier ones.
1010
AC_PREREQ([2.69])

docs/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = wxSQLite3
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 4.6.8
41+
PROJECT_NUMBER = 4.6.9
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

include/wx/wxsqlite3_version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
#define WXSQLITE3_MAJOR_VERSION 4
1616
#define WXSQLITE3_MINOR_VERSION 6
17-
#define WXSQLITE3_RELEASE_NUMBER 8
17+
#define WXSQLITE3_RELEASE_NUMBER 9
1818
#define WXSQLITE3_SUBRELEASE_NUMBER 0
19-
#define WXSQLITE3_VERSION_STRING "wxSQLite3 4.6.8"
19+
#define WXSQLITE3_VERSION_STRING "wxSQLite3 4.6.9"
2020

2121
#endif // WXSQLITE3_VERSION_H_

include/wx/wxsqlite3def.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@
4646
4747
<dl>
4848
49+
<dt><b>4.6.9</b> - <i>April 2021</i></dt>
50+
<dd>
51+
Upgrade to <i>SQLite3 Multiple Ciphers version 1.2.4 (SQLite version 3.35.4)</i><br>
52+
53+
</dd>
4954
<dt><b>4.6.8</b> - <i>March 2021</i></dt>
5055
<dd>
5156
Upgrade to <i>SQLite3 Multiple Ciphers version 1.2.3 (SQLite version 3.35.3)</i><br>

readme.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ Since August 2020 a new implementation of an encryption extension, capable of su
4848

4949
## <a name="history"></a>Version history
5050

51+
* 4.6.9 - *April 2021*
52+
- Upgrade to SQLite3 Multiple Ciphers version 1.2.4 (SQLite version 3.35.4)
5153
* 4.6.8 - *March 2021*
5254
- Upgrade to SQLite3 Multiple Ciphers version 1.2.3 (SQLite version 3.35.3)
5355
* 4.6.7 - *March 2021*

src/sqlite3mc_amalgamation.c

Lines changed: 64 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ extern LPWSTR sqlite3_win32_utf8_to_unicode(const char*);
6969
/*** Begin of #include "sqlite3patched.c" ***/
7070
/******************************************************************************
7171
** This file is an amalgamation of many separate C source files from SQLite
72-
** version 3.35.3. By combining all the individual C code files into this
72+
** version 3.35.4. By combining all the individual C code files into this
7373
** single large file, the entire code can be compiled as a single translation
7474
** unit. This allows many compilers to do optimizations that would not be
7575
** possible if the files were compiled separately. Performance improvements
@@ -1255,9 +1255,9 @@ extern "C" {
12551255
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
12561256
** [sqlite_version()] and [sqlite_source_id()].
12571257
*/
1258-
#define SQLITE_VERSION "3.35.3"
1259-
#define SQLITE_VERSION_NUMBER 3035003
1260-
#define SQLITE_SOURCE_ID "2021-03-26 12:12:52 4c5e6c200adc8afe0814936c67a971efc516d1bd739cb620235592f18f40be2a"
1258+
#define SQLITE_VERSION "3.35.4"
1259+
#define SQLITE_VERSION_NUMBER 3035004
1260+
#define SQLITE_SOURCE_ID "2021-04-02 15:20:15 5d4c65779dab868b285519b19e4cf9d451d50c6048f06f653aa701ec212df45e"
12611261

12621262
/*
12631263
** CAPI3REF: Run-Time Library Version Numbers
@@ -19838,6 +19838,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse*,ExprList*, Token*, int);
1983819838
SQLITE_PRIVATE void sqlite3ExprFunctionUsable(Parse*,Expr*,FuncDef*);
1983919839
SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse*, Expr*, u32);
1984019840
SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3*, Expr*);
19841+
SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse*, Expr*);
1984119842
SQLITE_PRIVATE void sqlite3ExprUnmapAndDelete(Parse*, Expr*);
1984219843
SQLITE_PRIVATE ExprList *sqlite3ExprListAppend(Parse*,ExprList*,Expr*);
1984319844
SQLITE_PRIVATE ExprList *sqlite3ExprListAppendVector(Parse*,ExprList*,IdList*,Expr*);
@@ -99076,15 +99077,19 @@ static int lookupName(
9907699077
if( pParse->pTriggerTab!=0 ){
9907799078
int op = pParse->eTriggerOp;
9907899079
assert( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT );
99079-
if( op!=TK_DELETE && zTab && sqlite3StrICmp("new",zTab) == 0 ){
99080+
if( pParse->bReturning ){
99081+
if( (pNC->ncFlags & NC_UBaseReg)!=0
99082+
&& (zTab==0 || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0)
99083+
){
99084+
pExpr->iTable = op!=TK_DELETE;
99085+
pTab = pParse->pTriggerTab;
99086+
}
99087+
}else if( op!=TK_DELETE && zTab && sqlite3StrICmp("new",zTab) == 0 ){
9908099088
pExpr->iTable = 1;
9908199089
pTab = pParse->pTriggerTab;
9908299090
}else if( op!=TK_INSERT && zTab && sqlite3StrICmp("old",zTab)==0 ){
9908399091
pExpr->iTable = 0;
9908499092
pTab = pParse->pTriggerTab;
99085-
}else if( pParse->bReturning && (pNC->ncFlags & NC_UBaseReg)!=0 ){
99086-
pExpr->iTable = op!=TK_DELETE;
99087-
pTab = pParse->pTriggerTab;
9908899093
}
9908999094
}
9909099095
#endif /* SQLITE_OMIT_TRIGGER */
@@ -101679,8 +101684,8 @@ SQLITE_PRIVATE Expr *sqlite3ExprAnd(Parse *pParse, Expr *pLeft, Expr *pRight){
101679101684
}else if( (ExprAlwaysFalse(pLeft) || ExprAlwaysFalse(pRight))
101680101685
&& !IN_RENAME_OBJECT
101681101686
){
101682-
sqlite3ExprDelete(db, pLeft);
101683-
sqlite3ExprDelete(db, pRight);
101687+
sqlite3ExprDeferredDelete(pParse, pLeft);
101688+
sqlite3ExprDeferredDelete(pParse, pRight);
101684101689
return sqlite3Expr(db, TK_INTEGER, "0");
101685101690
}else{
101686101691
return sqlite3PExpr(pParse, TK_AND, pLeft, pRight);
@@ -101877,6 +101882,22 @@ SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *db, Expr *p){
101877101882
if( p ) sqlite3ExprDeleteNN(db, p);
101878101883
}
101879101884

101885+
101886+
/*
101887+
** Arrange to cause pExpr to be deleted when the pParse is deleted.
101888+
** This is similar to sqlite3ExprDelete() except that the delete is
101889+
** deferred untilthe pParse is deleted.
101890+
**
101891+
** The pExpr might be deleted immediately on an OOM error.
101892+
**
101893+
** The deferred delete is (currently) implemented by adding the
101894+
** pExpr to the pParse->pConstExpr list with a register number of 0.
101895+
*/
101896+
SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){
101897+
pParse->pConstExpr =
101898+
sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
101899+
}
101900+
101880101901
/* Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the
101881101902
** expression.
101882101903
*/
@@ -106502,8 +106523,7 @@ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){
106502106523
pExpr = sqlite3ExprDup(db, pExpr, 0);
106503106524
if( pExpr ){
106504106525
pAggInfo->aCol[iAgg].pCExpr = pExpr;
106505-
pParse->pConstExpr =
106506-
sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
106526+
sqlite3ExprDeferredDelete(pParse, pExpr);
106507106527
}
106508106528
}
106509106529
}else{
@@ -106512,8 +106532,7 @@ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){
106512106532
pExpr = sqlite3ExprDup(db, pExpr, 0);
106513106533
if( pExpr ){
106514106534
pAggInfo->aFunc[iAgg].pFExpr = pExpr;
106515-
pParse->pConstExpr =
106516-
sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
106535+
sqlite3ExprDeferredDelete(pParse, pExpr);
106517106536
}
106518106537
}
106519106538
}
@@ -139394,6 +139413,25 @@ SQLITE_PRIVATE SrcList *sqlite3TriggerStepSrc(
139394139413
return pSrc;
139395139414
}
139396139415

139416+
/*
139417+
** Return true if the pExpr term from the RETURNING clause argument
139418+
** list is of the form "*". Raise an error if the terms if of the
139419+
** form "table.*".
139420+
*/
139421+
static int isAsteriskTerm(
139422+
Parse *pParse, /* Parsing context */
139423+
Expr *pTerm /* A term in the RETURNING clause */
139424+
){
139425+
assert( pTerm!=0 );
139426+
if( pTerm->op==TK_ASTERISK ) return 1;
139427+
if( pTerm->op!=TK_DOT ) return 0;
139428+
assert( pTerm->pRight!=0 );
139429+
assert( pTerm->pLeft!=0 );
139430+
if( pTerm->pRight->op!=TK_ASTERISK ) return 0;
139431+
sqlite3ErrorMsg(pParse, "RETURNING may not use \"TABLE.*\" wildcards");
139432+
return 1;
139433+
}
139434+
139397139435
/* The input list pList is the list of result set terms from a RETURNING
139398139436
** clause. The table that we are returning from is pTab.
139399139437
**
@@ -139411,7 +139449,8 @@ static ExprList *sqlite3ExpandReturning(
139411139449

139412139450
for(i=0; i<pList->nExpr; i++){
139413139451
Expr *pOldExpr = pList->a[i].pExpr;
139414-
if( ALWAYS(pOldExpr!=0) && pOldExpr->op==TK_ASTERISK ){
139452+
if( NEVER(pOldExpr==0) ) continue;
139453+
if( isAsteriskTerm(pParse, pOldExpr) ){
139415139454
int jj;
139416139455
for(jj=0; jj<pTab->nCol; jj++){
139417139456
Expr *pNewExpr;
@@ -147649,6 +147688,7 @@ static void exprAnalyzeExists(
147649147688
#endif
147650147689
if( pSel->pPrior ) return;
147651147690
if( pSel->pWhere==0 ) return;
147691+
if( pSel->pLimit ) return;
147652147692
if( 0==exprAnalyzeExistsFindEq(pSel, 0, 0) ) return;
147653147693

147654147694
pDup = sqlite3ExprDup(db, pExpr, 0);
@@ -155433,6 +155473,7 @@ static void windowCheckValue(Parse *pParse, int reg, int eCond){
155433155473
VdbeCoverageIf(v, eCond==2);
155434155474
}
155435155475
sqlite3VdbeAddOp3(v, aOp[eCond], regZero, sqlite3VdbeCurrentAddr(v)+2, reg);
155476+
sqlite3VdbeChangeP5(v, SQLITE_AFF_NUMERIC);
155436155477
VdbeCoverageNeverNullIf(v, eCond==0); /* NULL case captured by */
155437155478
VdbeCoverageNeverNullIf(v, eCond==1); /* the OP_MustBeInt */
155438155479
VdbeCoverageNeverNullIf(v, eCond==2);
@@ -229337,7 +229378,7 @@ static void fts5SourceIdFunc(
229337229378
){
229338229379
assert( nArg==0 );
229339229380
UNUSED_PARAM2(nArg, apUnused);
229340-
sqlite3_result_text(pCtx, "fts5: 2021-03-26 12:12:52 4c5e6c200adc8afe0814936c67a971efc516d1bd739cb620235592f18f40be2a", -1, SQLITE_TRANSIENT);
229381+
sqlite3_result_text(pCtx, "fts5: 2021-04-02 15:20:15 5d4c65779dab868b285519b19e4cf9d451d50c6048f06f653aa701ec212df45e", -1, SQLITE_TRANSIENT);
229341229382
}
229342229383

229343229384
/*
@@ -234263,9 +234304,9 @@ SQLITE_API int sqlite3_stmt_init(
234263234304
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
234264234305

234265234306
/************** End of stmt.c ************************************************/
234266-
#if __LINE__!=234182
234307+
#if __LINE__!=234223
234267234308
#undef SQLITE_SOURCE_ID
234268-
#define SQLITE_SOURCE_ID "2021-03-26 12:12:52 4c5e6c200adc8afe0814936c67a971efc516d1bd739cb620235592f18f40alt2"
234309+
#define SQLITE_SOURCE_ID "2021-04-02 15:20:15 5d4c65779dab868b285519b19e4cf9d451d50c6048f06f653aa701ec212dalt2"
234269234310
#endif
234270234311
/* Return the source-id for this library */
234271234312
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
@@ -234417,9 +234458,9 @@ extern "C" {
234417234458
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
234418234459
** [sqlite_version()] and [sqlite_source_id()].
234419234460
*/
234420-
#define SQLITE_VERSION "3.35.3"
234421-
#define SQLITE_VERSION_NUMBER 3035003
234422-
#define SQLITE_SOURCE_ID "2021-03-26 12:12:52 4c5e6c200adc8afe0814936c67a971efc516d1bd739cb620235592f18f40be2a"
234461+
#define SQLITE_VERSION "3.35.4"
234462+
#define SQLITE_VERSION_NUMBER 3035004
234463+
#define SQLITE_SOURCE_ID "2021-04-02 15:20:15 5d4c65779dab868b285519b19e4cf9d451d50c6048f06f653aa701ec212df45e"
234423234464

234424234465
/*
234425234466
** CAPI3REF: Run-Time Library Version Numbers
@@ -246869,9 +246910,9 @@ SQLITE_API void sqlite3mc_vfs_shutdown();
246869246910

246870246911
#define SQLITE3MC_VERSION_MAJOR 1
246871246912
#define SQLITE3MC_VERSION_MINOR 2
246872-
#define SQLITE3MC_VERSION_RELEASE 3
246913+
#define SQLITE3MC_VERSION_RELEASE 4
246873246914
#define SQLITE3MC_VERSION_SUBRELEASE 0
246874-
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.2.3"
246915+
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.2.4"
246875246916

246876246917
#endif /* SQLITE3MC_VERSION_H_ */
246877246918
/*** End of #include "sqlite3mc_version.h" ***/

src/sqlite3mc_amalgamation.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ extern "C" {
137137
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
138138
** [sqlite_version()] and [sqlite_source_id()].
139139
*/
140-
#define SQLITE_VERSION "3.35.3"
141-
#define SQLITE_VERSION_NUMBER 3035003
142-
#define SQLITE_SOURCE_ID "2021-03-26 12:12:52 4c5e6c200adc8afe0814936c67a971efc516d1bd739cb620235592f18f40be2a"
140+
#define SQLITE_VERSION "3.35.4"
141+
#define SQLITE_VERSION_NUMBER 3035004
142+
#define SQLITE_SOURCE_ID "2021-04-02 15:20:15 5d4c65779dab868b285519b19e4cf9d451d50c6048f06f653aa701ec212df45e"
143143

144144
/*
145145
** CAPI3REF: Run-Time Library Version Numbers

0 commit comments

Comments
 (0)