Skip to content

Commit 491387f

Browse files
committed
Prepare release of wxSQLite3 4.6.6
Upgrade to SQLite3 Multiple Ciphers version 1.2.1 (SQLite version 3.35.1)
1 parent 5df7fa4 commit 491387f

File tree

7 files changed

+62
-36
lines changed

7 files changed

+62
-36
lines changed

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dnl Copyright (C) 2017-2020 Ulrich Telle <ulrich@telle-online.de>, Vadim Zeitlin
44
dnl
55
dnl This file is covered by the same licence as the entire wxSQLite3 package.
66

7-
AC_INIT([wxsqlite3], [4.6.5], [ulrich@telle-online.de])
7+
AC_INIT([wxsqlite3], [4.6.6], [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.5
41+
PROJECT_NUMBER = 4.6.6
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 5
17+
#define WXSQLITE3_RELEASE_NUMBER 6
1818
#define WXSQLITE3_SUBRELEASE_NUMBER 0
19-
#define WXSQLITE3_VERSION_STRING "wxSQLite3 4.6.5"
19+
#define WXSQLITE3_VERSION_STRING "wxSQLite3 4.6.6"
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.6</b> - <i>March 2021</i></dt>
50+
<dd>
51+
Upgrade to <i>SQLite3 Multiple Ciphers version 1.2.1 (SQLite version 3.35.1)</i><br>
52+
53+
</dd>
4954
<dt><b>4.6.5</b> - <i>March 2021</i></dt>
5055
<dd>
5156
Upgrade to <i>SQLite3 Multiple Ciphers version 1.2.0 (SQLite version 3.35.0)</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.6 - *March 2021*
52+
- Upgrade to SQLite3 Multiple Ciphers version 1.2.1 (SQLite version 3.35.1)
5153
* 4.6.5 - *March 2021*
5254
- Upgrade to SQLite3 Multiple Ciphers version 1.2.0 (SQLite version 3.35.0)
5355
- Enabled new SQLite Math Extension

src/sqlite3mc_amalgamation.c

Lines changed: 48 additions & 29 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.0. By combining all the individual C code files into this
72+
** version 3.35.1. 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.0"
1259-
#define SQLITE_VERSION_NUMBER 3035000
1260-
#define SQLITE_SOURCE_ID "2021-03-12 15:10:09 acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b"
1258+
#define SQLITE_VERSION "3.35.1"
1259+
#define SQLITE_VERSION_NUMBER 3035001
1260+
#define SQLITE_SOURCE_ID "2021-03-15 16:53:57 aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a"
12611261

12621262
/*
12631263
** CAPI3REF: Run-Time Library Version Numbers
@@ -17081,7 +17081,10 @@ struct sqlite3 {
1708117081
unsigned orphanTrigger : 1; /* Last statement is orphaned TEMP trigger */
1708217082
unsigned imposterTable : 1; /* Building an imposter table */
1708317083
unsigned reopenMemdb : 1; /* ATTACH is really a reopen using MemDB */
17084+
unsigned bDropColumn : 1; /* Doing schema check after DROP COLUMN */
1708417085
char **azInit; /* "type", "name", and "tbl_name" columns */
17086+
/* or if bDropColumn, then azInit[0] is the */
17087+
/* name of the column being dropped */
1708517088
} init;
1708617089
int nVdbeActive; /* Number of VDBEs currently running */
1708717090
int nVdbeRead; /* Number of active VDBEs that read or write */
@@ -99241,6 +99244,7 @@ static int lookupName(
9924199244
assert( pExpr->op==TK_ID );
9924299245
if( ExprHasProperty(pExpr,EP_DblQuoted)
9924399246
&& areDoubleQuotedStringsEnabled(db, pTopNC)
99247+
&& (db->init.bDropColumn==0 || sqlite3StrICmp(zCol, db->init.azInit[0])!=0)
9924499248
){
9924599249
/* If a double-quoted identifier does not match any known column name,
9924699250
** then treat it as a string.
@@ -99255,6 +99259,11 @@ static int lookupName(
9925599259
** Someday, I hope to get rid of this hack. Unfortunately there is
9925699260
** a huge amount of legacy SQL that uses it. So for now, we just
9925799261
** issue a warning.
99262+
**
99263+
** 2021-03-15: ticket 1c24a659e6d7f3a1
99264+
** Do not do the ID-to-STRING conversion when doing the schema
99265+
** sanity check following a DROP COLUMN if the identifer name matches
99266+
** the name of the column being dropped.
9925899267
*/
9925999268
sqlite3_log(SQLITE_WARNING,
9926099269
"double-quoted string literal: \"%w\"", zCol);
@@ -106854,17 +106863,18 @@ static void renameTestSchema(
106854106863
Parse *pParse, /* Parse context */
106855106864
const char *zDb, /* Name of db to verify schema of */
106856106865
int bTemp, /* True if this is the temp db */
106857-
const char *zWhen /* "when" part of error message */
106866+
const char *zWhen, /* "when" part of error message */
106867+
const char *zDropColumn /* Name of column being dropped */
106858106868
){
106859106869
pParse->colNamesSet = 1;
106860106870
sqlite3NestedParse(pParse,
106861106871
"SELECT 1 "
106862106872
"FROM \"%w\"." DFLT_SCHEMA_TABLE " "
106863106873
"WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X'"
106864106874
" AND sql NOT LIKE 'create virtual%%'"
106865-
" AND sqlite_rename_test(%Q, sql, type, name, %d, %Q)=NULL ",
106875+
" AND sqlite_rename_test(%Q, sql, type, name, %d, %Q, %Q)=NULL ",
106866106876
zDb,
106867-
zDb, bTemp, zWhen
106877+
zDb, bTemp, zWhen, zDropColumn
106868106878
);
106869106879

106870106880
if( bTemp==0 ){
@@ -106873,8 +106883,8 @@ static void renameTestSchema(
106873106883
"FROM temp." DFLT_SCHEMA_TABLE " "
106874106884
"WHERE name NOT LIKE 'sqliteX_%%' ESCAPE 'X'"
106875106885
" AND sql NOT LIKE 'create virtual%%'"
106876-
" AND sqlite_rename_test(%Q, sql, type, name, 1, %Q)=NULL ",
106877-
zDb, zWhen
106886+
" AND sqlite_rename_test(%Q, sql, type, name, 1, %Q, %Q)=NULL ",
106887+
zDb, zWhen, zDropColumn
106878106888
);
106879106889
}
106880106890
}
@@ -107037,7 +107047,7 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable(
107037107047
"sql = sqlite_rename_table(%Q, type, name, sql, %Q, %Q, 1), "
107038107048
"tbl_name = "
107039107049
"CASE WHEN tbl_name=%Q COLLATE nocase AND "
107040-
" sqlite_rename_test(%Q, sql, type, name, 1, 'after rename') "
107050+
" sqlite_rename_test(%Q, sql, type, name, 1, 'after rename',0) "
107041107051
"THEN %Q ELSE tbl_name END "
107042107052
"WHERE type IN ('view', 'trigger')"
107043107053
, zDb, zTabName, zName, zTabName, zDb, zName);
@@ -107057,7 +107067,7 @@ SQLITE_PRIVATE void sqlite3AlterRenameTable(
107057107067
#endif
107058107068

107059107069
renameReloadSchema(pParse, iDb, INITFLAG_AlterRename);
107060-
renameTestSchema(pParse, zDb, iDb==1, "after rename");
107070+
renameTestSchema(pParse, zDb, iDb==1, "after rename", 0);
107061107071

107062107072
exit_rename_table:
107063107073
sqlite3SrcListDelete(db, pSrc);
@@ -107425,7 +107435,7 @@ SQLITE_PRIVATE void sqlite3AlterRenameColumn(
107425107435

107426107436
/* Drop and reload the database schema. */
107427107437
renameReloadSchema(pParse, iSchema, INITFLAG_AlterRename);
107428-
renameTestSchema(pParse, zDb, iSchema==1, "after rename");
107438+
renameTestSchema(pParse, zDb, iSchema==1, "after rename", 0);
107429107439

107430107440
exit_rename_column:
107431107441
sqlite3SrcListDelete(db, pSrc);
@@ -107849,12 +107859,17 @@ static int renameParseSql(
107849107859
const char *zDb, /* Name of schema SQL belongs to */
107850107860
sqlite3 *db, /* Database handle */
107851107861
const char *zSql, /* SQL to parse */
107852-
int bTemp /* True if SQL is from temp schema */
107862+
int bTemp, /* True if SQL is from temp schema */
107863+
const char *zDropColumn /* Name of column being dropped */
107853107864
){
107854107865
int rc;
107855107866
char *zErr = 0;
107856107867

107857107868
db->init.iDb = bTemp ? 1 : sqlite3FindDbName(db, zDb);
107869+
if( zDropColumn ){
107870+
db->init.bDropColumn = 1;
107871+
db->init.azInit = (char**)&zDropColumn;
107872+
}
107858107873

107859107874
/* Parse the SQL statement passed as the first argument. If no error
107860107875
** occurs and the parse does not result in a new table, index or
@@ -107887,6 +107902,7 @@ static int renameParseSql(
107887107902
#endif
107888107903

107889107904
db->init.iDb = 0;
107905+
db->init.bDropColumn = 0;
107890107906
return rc;
107891107907
}
107892107908

@@ -108188,7 +108204,7 @@ static void renameColumnFunc(
108188108204
#ifndef SQLITE_OMIT_AUTHORIZATION
108189108205
db->xAuth = 0;
108190108206
#endif
108191-
rc = renameParseSql(&sParse, zDb, db, zSql, bTemp);
108207+
rc = renameParseSql(&sParse, zDb, db, zSql, bTemp, 0);
108192108208

108193108209
/* Find tokens that need to be replaced. */
108194108210
memset(&sWalker, 0, sizeof(Walker));
@@ -108392,7 +108408,7 @@ static void renameTableFunc(
108392108408
sWalker.xSelectCallback = renameTableSelectCb;
108393108409
sWalker.u.pRename = &sCtx;
108394108410

108395-
rc = renameParseSql(&sParse, zDb, db, zInput, bTemp);
108411+
rc = renameParseSql(&sParse, zDb, db, zInput, bTemp, 0);
108396108412

108397108413
if( rc==SQLITE_OK ){
108398108414
int isLegacy = (db->flags & SQLITE_LegacyAlter);
@@ -108508,6 +108524,7 @@ static void renameTableFunc(
108508108524
** 3: Object name.
108509108525
** 4: True if object is from temp schema.
108510108526
** 5: "when" part of error message.
108527+
** 6: Name of column being dropped, or NULL.
108511108528
**
108512108529
** Unless it finds an error, this function normally returns NULL. However, it
108513108530
** returns integer value 1 if:
@@ -108526,6 +108543,7 @@ static void renameTableTest(
108526108543
int bTemp = sqlite3_value_int(argv[4]);
108527108544
int isLegacy = (db->flags & SQLITE_LegacyAlter);
108528108545
char const *zWhen = (const char*)sqlite3_value_text(argv[5]);
108546+
char const *zDropColumn = (const char*)sqlite3_value_text(argv[6]);
108529108547

108530108548
#ifndef SQLITE_OMIT_AUTHORIZATION
108531108549
sqlite3_xauth xAuth = db->xAuth;
@@ -108536,7 +108554,7 @@ static void renameTableTest(
108536108554
if( zDb && zInput ){
108537108555
int rc;
108538108556
Parse sParse;
108539-
rc = renameParseSql(&sParse, zDb, db, zInput, bTemp);
108557+
rc = renameParseSql(&sParse, zDb, db, zInput, bTemp, zDropColumn);
108540108558
if( rc==SQLITE_OK ){
108541108559
if( isLegacy==0 && sParse.pNewTable && sParse.pNewTable->pSelect ){
108542108560
NameContext sNC;
@@ -108604,7 +108622,7 @@ static void dropColumnFunc(
108604108622
#endif
108605108623

108606108624
UNUSED_PARAMETER(NotUsed);
108607-
rc = renameParseSql(&sParse, zDb, db, zSql, iSchema==1);
108625+
rc = renameParseSql(&sParse, zDb, db, zSql, iSchema==1, 0);
108608108626
if( rc!=SQLITE_OK ) goto drop_column_done;
108609108627
pTab = sParse.pNewTable;
108610108628
if( pTab==0 || pTab->nCol==1 || iCol>=pTab->nCol ){
@@ -108697,7 +108715,7 @@ SQLITE_PRIVATE void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, Token *
108697108715
iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
108698108716
assert( iDb>=0 );
108699108717
zDb = db->aDb[iDb].zDbSName;
108700-
renameTestSchema(pParse, zDb, iDb==1, "");
108718+
renameTestSchema(pParse, zDb, iDb==1, "", 0);
108701108719
sqlite3NestedParse(pParse,
108702108720
"UPDATE \"%w\"." DFLT_SCHEMA_TABLE " SET "
108703108721
"sql = sqlite_drop_column(%d, sql, %d) "
@@ -108707,7 +108725,7 @@ SQLITE_PRIVATE void sqlite3AlterDropColumn(Parse *pParse, SrcList *pSrc, Token *
108707108725

108708108726
/* Drop and reload the database schema. */
108709108727
renameReloadSchema(pParse, iDb, INITFLAG_AlterDrop);
108710-
renameTestSchema(pParse, zDb, iDb==1, "after drop column");
108728+
renameTestSchema(pParse, zDb, iDb==1, "after drop column", zCol);
108711108729

108712108730
/* Edit rows of table on disk */
108713108731
if( pParse->nErr==0 && (pTab->aCol[iCol].colFlags & COLFLAG_VIRTUAL)==0 ){
@@ -108767,7 +108785,7 @@ SQLITE_PRIVATE void sqlite3AlterFunctions(void){
108767108785
static FuncDef aAlterTableFuncs[] = {
108768108786
INTERNAL_FUNCTION(sqlite_rename_column, 9, renameColumnFunc),
108769108787
INTERNAL_FUNCTION(sqlite_rename_table, 7, renameTableFunc),
108770-
INTERNAL_FUNCTION(sqlite_rename_test, 6, renameTableTest),
108788+
INTERNAL_FUNCTION(sqlite_rename_test, 7, renameTableTest),
108771108789
INTERNAL_FUNCTION(sqlite_drop_column, 3, dropColumnFunc),
108772108790
};
108773108791
sqlite3InsertBuiltinFuncs(aAlterTableFuncs, ArraySize(aAlterTableFuncs));
@@ -229276,7 +229294,7 @@ static void fts5SourceIdFunc(
229276229294
){
229277229295
assert( nArg==0 );
229278229296
UNUSED_PARAM2(nArg, apUnused);
229279-
sqlite3_result_text(pCtx, "fts5: 2021-03-12 15:10:09 acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b", -1, SQLITE_TRANSIENT);
229297+
sqlite3_result_text(pCtx, "fts5: 2021-03-15 16:53:57 aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a", -1, SQLITE_TRANSIENT);
229280229298
}
229281229299

229282229300
/*
@@ -234202,9 +234220,9 @@ SQLITE_API int sqlite3_stmt_init(
234202234220
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
234203234221

234204234222
/************** End of stmt.c ************************************************/
234205-
#if __LINE__!=234121
234223+
#if __LINE__!=234139
234206234224
#undef SQLITE_SOURCE_ID
234207-
#define SQLITE_SOURCE_ID "2021-03-12 15:10:09 acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115alt2"
234225+
#define SQLITE_SOURCE_ID "2021-03-15 16:53:57 aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98dealt2"
234208234226
#endif
234209234227
/* Return the source-id for this library */
234210234228
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
@@ -234356,9 +234374,9 @@ extern "C" {
234356234374
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
234357234375
** [sqlite_version()] and [sqlite_source_id()].
234358234376
*/
234359-
#define SQLITE_VERSION "3.35.0"
234360-
#define SQLITE_VERSION_NUMBER 3035000
234361-
#define SQLITE_SOURCE_ID "2021-03-12 15:10:09 acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b"
234377+
#define SQLITE_VERSION "3.35.1"
234378+
#define SQLITE_VERSION_NUMBER 3035001
234379+
#define SQLITE_SOURCE_ID "2021-03-15 16:53:57 aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a"
234362234380

234363234381
/*
234364234382
** CAPI3REF: Run-Time Library Version Numbers
@@ -246808,9 +246826,9 @@ SQLITE_API void sqlite3mc_vfs_shutdown();
246808246826

246809246827
#define SQLITE3MC_VERSION_MAJOR 1
246810246828
#define SQLITE3MC_VERSION_MINOR 2
246811-
#define SQLITE3MC_VERSION_RELEASE 0
246829+
#define SQLITE3MC_VERSION_RELEASE 1
246812246830
#define SQLITE3MC_VERSION_SUBRELEASE 0
246813-
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.2.0"
246831+
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.2.1"
246814246832

246815246833
#endif /* SQLITE3MC_VERSION_H_ */
246816246834
/*** End of #include "sqlite3mc_version.h" ***/
@@ -258667,6 +258685,7 @@ static void atn2Func(sqlite3_context *context, int argc, sqlite3_value **argv){
258667258685

258668258686
#ifndef SQLITE_ENABLE_MATH_FUNCTIONS
258669258687

258688+
#if SQLITE_VERSION_NUMBER < 3035000
258670258689
/*
258671258690
** Implementation of the sign() function
258672258691
** return one of 3 possibilities +1,0 or -1 when the argument is respectively
@@ -258698,7 +258717,7 @@ static void signFunc(sqlite3_context *context, int argc, sqlite3_value **argv){
258698258717
}
258699258718
}
258700258719
}
258701-
258720+
#endif
258702258721

258703258722
/*
258704258723
** smallest integer value not less than argument

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.0"
141-
#define SQLITE_VERSION_NUMBER 3035000
142-
#define SQLITE_SOURCE_ID "2021-03-12 15:10:09 acd63062eb06748bfe9e4886639e4f2b54ea6a496a83f10716abbaba4115500b"
140+
#define SQLITE_VERSION "3.35.1"
141+
#define SQLITE_VERSION_NUMBER 3035001
142+
#define SQLITE_SOURCE_ID "2021-03-15 16:53:57 aea12399bf1fdc76af43499d4624c3afa17c3e6c2459b71c195804bb98def66a"
143143

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

0 commit comments

Comments
 (0)