Skip to content

Commit b6ee0c9

Browse files
committed
Prepare release of version 1.9.2
- Based on SQLite version 3.47.2
1 parent aa4a824 commit b6ee0c9

File tree

9 files changed

+89
-68
lines changed

9 files changed

+89
-68
lines changed

CHANGELOG.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.9.2] - 2024-12-08
11+
12+
### Changed
13+
14+
- Based on SQLite version 3.47.2
15+
16+
### Fixed
17+
18+
- Fixed issue with page size change request for encrypted databases
19+
1020
## [1.9.1] - 2024-11-26
1121

1222
### Changed
@@ -540,7 +550,8 @@ The following ciphers are supported:
540550
- AES 256 Bit CBC - SHA1/SHA256/SHA512 HMAC ([SQLCipher](https://www.zetetic.net/sqlcipher/), database versions 1, 2, 3, and 4)
541551
- RC4 - No HMAC ([System.Data.SQLite](http://system.data.sqlite.org))
542552

543-
[Unreleased]: ../../compare/v1.9.1...HEAD
553+
[Unreleased]: ../../compare/v1.9.2...HEAD
554+
[1.9.2]: ../../compare/v1.9.1...v1.9.2
544555
[1.9.1]: ../../compare/v1.9.0...v1.9.1
545556
[1.9.0]: ../../compare/v1.8.7...v1.9.0
546557
[1.8.7]: ../../compare/v1.8.6...v1.8.7

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dnl Copyright (C) 2019-2024 Ulrich Telle <[email protected]>
44
dnl
55
dnl This file is covered by the same licence as the entire SQLite3 Multiple Ciphers package.
66

7-
AC_INIT([sqlite3mc], [1.9.1], [[email protected]])
7+
AC_INIT([sqlite3mc], [1.9.2], [[email protected]])
88

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

readme.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ The code was mainly developed under Windows, but was tested under Linux as well.
1010

1111
## Version information
1212

13-
* 1.9.1 - *November 2024*
14-
- Based on SQLite version 3.47.1
15-
- Remove need to specify AES hw compile time options
13+
* 1.9.2 - *December 2024*
14+
- Based on SQLite version 3.47.2
15+
- Fixed issue with page size change request for encrypted databases
1616

1717
For further version information please consult the [CHANGELOG](CHANGELOG.md).
1818

src/rekeyvacuum.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
** Change 4: Call sqlite3mcBtreeSetPageSize instead of sqlite3BtreeSetPageSize for main database
2828
** (sqlite3mcBtreeSetPageSize allows to reduce the number of reserved bytes)
2929
**
30-
** This code is generated by the script rekeyvacuum.sh from SQLite version 3.47.1 amalgamation.
30+
** This code is generated by the script rekeyvacuum.sh from SQLite version 3.47.2 amalgamation.
3131
*/
3232
SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3mcRunVacuumForRekey(
3333
char **pzErrMsg, /* Write error message here */

src/shell.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5080,10 +5080,10 @@ int sqlite3_percentile_init(
50805080
){
50815081
int rc = SQLITE_OK;
50825082
unsigned int i;
5083-
#if defined(SQLITE3_H) || defined(SQLITE_STATIC_PERCENTILE)
5084-
(void)pApi; /* Unused parameter */
5085-
#else
5083+
#ifdef SQLITE3EXT_H
50865084
SQLITE_EXTENSION_INIT2(pApi);
5085+
#else
5086+
(void)pApi; /* Unused parameter */
50875087
#endif
50885088
(void)pzErrMsg; /* Unused parameter */
50895089
for(i=0; i<sizeof(aPercentFunc)/sizeof(aPercentFunc[0]); i++){

src/sqlite3.c

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3-
** version 3.47.1. By combining all the individual C code files into this
3+
** version 3.47.2. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
@@ -18,7 +18,7 @@
1818
** separate file. This file contains only code for the core SQLite library.
1919
**
2020
** The content in this amalgamation comes from Fossil check-in
21-
** b95d11e958643b969c47a8e5857f3793b9e6.
21+
** 2aabe05e2e8cae4847a802ee2daddc1d7413.
2222
*/
2323
#define SQLITE_CORE 1
2424
#define SQLITE_AMALGAMATION 1
@@ -462,9 +462,9 @@ extern "C" {
462462
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
463463
** [sqlite_version()] and [sqlite_source_id()].
464464
*/
465-
#define SQLITE_VERSION "3.47.1"
466-
#define SQLITE_VERSION_NUMBER 3047001
467-
#define SQLITE_SOURCE_ID "2024-11-25 12:07:48 b95d11e958643b969c47a8e5857f3793b9e69700b8f1469371386369a26e577e"
465+
#define SQLITE_VERSION "3.47.2"
466+
#define SQLITE_VERSION_NUMBER 3047002
467+
#define SQLITE_SOURCE_ID "2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c"
468468

469469
/*
470470
** CAPI3REF: Run-Time Library Version Numbers
@@ -35697,8 +35697,8 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en
3569735697
int eValid = 1; /* True exponent is either not used or is well-formed */
3569835698
int nDigit = 0; /* Number of digits processed */
3569935699
int eType = 1; /* 1: pure integer, 2+: fractional -1 or less: bad UTF16 */
35700+
u64 s2; /* round-tripped significand */
3570035701
double rr[2];
35701-
u64 s2;
3570235702

3570335703
assert( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE );
3570435704
*pResult = 0.0; /* Default return value, in case of an error */
@@ -35801,7 +35801,7 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en
3580135801
e = (e*esign) + d;
3580235802

3580335803
/* Try to adjust the exponent to make it smaller */
35804-
while( e>0 && s<(LARGEST_UINT64/10) ){
35804+
while( e>0 && s<((LARGEST_UINT64-0x7ff)/10) ){
3580535805
s *= 10;
3580635806
e--;
3580735807
}
@@ -35811,11 +35811,16 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en
3581135811
}
3581235812

3581335813
rr[0] = (double)s;
35814-
s2 = (u64)rr[0];
35815-
#if defined(_MSC_VER) && _MSC_VER<1700
35816-
if( s2==0x8000000000000000LL ){ s2 = 2*(u64)(0.5*rr[0]); }
35817-
#endif
35818-
rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s);
35814+
assert( sizeof(s2)==sizeof(rr[0]) );
35815+
memcpy(&s2, &rr[0], sizeof(s2));
35816+
if( s2<=0x43efffffffffffffLL ){
35817+
s2 = (u64)rr[0];
35818+
rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s);
35819+
}else{
35820+
rr[1] = 0.0;
35821+
}
35822+
assert( rr[1]<=1.0e-10*rr[0] ); /* Equal only when rr[0]==0.0 */
35823+
3581935824
if( e>0 ){
3582035825
while( e>=100 ){
3582135826
e -= 100;
@@ -147605,32 +147610,32 @@ static Expr *substExpr(
147605147610
if( pSubst->isOuterJoin ){
147606147611
ExprSetProperty(pNew, EP_CanBeNull);
147607147612
}
147608-
if( ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) ){
147609-
sqlite3SetJoinExpr(pNew, pExpr->w.iJoin,
147610-
pExpr->flags & (EP_OuterON|EP_InnerON));
147611-
}
147612-
sqlite3ExprDelete(db, pExpr);
147613-
pExpr = pNew;
147614-
if( pExpr->op==TK_TRUEFALSE ){
147615-
pExpr->u.iValue = sqlite3ExprTruthValue(pExpr);
147616-
pExpr->op = TK_INTEGER;
147617-
ExprSetProperty(pExpr, EP_IntValue);
147613+
if( pNew->op==TK_TRUEFALSE ){
147614+
pNew->u.iValue = sqlite3ExprTruthValue(pNew);
147615+
pNew->op = TK_INTEGER;
147616+
ExprSetProperty(pNew, EP_IntValue);
147618147617
}
147619147618

147620147619
/* Ensure that the expression now has an implicit collation sequence,
147621147620
** just as it did when it was a column of a view or sub-query. */
147622147621
{
147623-
CollSeq *pNat = sqlite3ExprCollSeq(pSubst->pParse, pExpr);
147622+
CollSeq *pNat = sqlite3ExprCollSeq(pSubst->pParse, pNew);
147624147623
CollSeq *pColl = sqlite3ExprCollSeq(pSubst->pParse,
147625147624
pSubst->pCList->a[iColumn].pExpr
147626147625
);
147627-
if( pNat!=pColl || (pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE) ){
147628-
pExpr = sqlite3ExprAddCollateString(pSubst->pParse, pExpr,
147626+
if( pNat!=pColl || (pNew->op!=TK_COLUMN && pNew->op!=TK_COLLATE) ){
147627+
pNew = sqlite3ExprAddCollateString(pSubst->pParse, pNew,
147629147628
(pColl ? pColl->zName : "BINARY")
147630147629
);
147631147630
}
147632147631
}
147633-
ExprClearProperty(pExpr, EP_Collate);
147632+
ExprClearProperty(pNew, EP_Collate);
147633+
if( ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) ){
147634+
sqlite3SetJoinExpr(pNew, pExpr->w.iJoin,
147635+
pExpr->flags & (EP_OuterON|EP_InnerON));
147636+
}
147637+
sqlite3ExprDelete(db, pExpr);
147638+
pExpr = pNew;
147634147639
}
147635147640
}
147636147641
}else{
@@ -254938,7 +254943,7 @@ static void fts5SourceIdFunc(
254938254943
){
254939254944
assert( nArg==0 );
254940254945
UNUSED_PARAM2(nArg, apUnused);
254941-
sqlite3_result_text(pCtx, "fts5: 2024-11-25 12:07:48 b95d11e958643b969c47a8e5857f3793b9e69700b8f1469371386369a26e577e", -1, SQLITE_TRANSIENT);
254946+
sqlite3_result_text(pCtx, "fts5: 2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c", -1, SQLITE_TRANSIENT);
254942254947
}
254943254948

254944254949
/*

src/sqlite3.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ extern "C" {
146146
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
147147
** [sqlite_version()] and [sqlite_source_id()].
148148
*/
149-
#define SQLITE_VERSION "3.47.1"
150-
#define SQLITE_VERSION_NUMBER 3047001
151-
#define SQLITE_SOURCE_ID "2024-11-25 12:07:48 b95d11e958643b969c47a8e5857f3793b9e69700b8f1469371386369a26e577e"
149+
#define SQLITE_VERSION "3.47.2"
150+
#define SQLITE_VERSION_NUMBER 3047002
151+
#define SQLITE_SOURCE_ID "2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c"
152152

153153
/*
154154
** CAPI3REF: Run-Time Library Version Numbers

src/sqlite3mc_version.h

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

1515
#define SQLITE3MC_VERSION_MAJOR 1
1616
#define SQLITE3MC_VERSION_MINOR 9
17-
#define SQLITE3MC_VERSION_RELEASE 1
17+
#define SQLITE3MC_VERSION_RELEASE 2
1818
#define SQLITE3MC_VERSION_SUBRELEASE 0
19-
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.9.1"
19+
#define SQLITE3MC_VERSION_STRING "SQLite3 Multiple Ciphers 1.9.2"
2020

2121
#endif /* SQLITE3MC_VERSION_H_ */

src/sqlite3patched.c

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3-
** version 3.47.1. By combining all the individual C code files into this
3+
** version 3.47.2. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
@@ -18,7 +18,7 @@
1818
** separate file. This file contains only code for the core SQLite library.
1919
**
2020
** The content in this amalgamation comes from Fossil check-in
21-
** b95d11e958643b969c47a8e5857f3793b9e6.
21+
** 2aabe05e2e8cae4847a802ee2daddc1d7413.
2222
*/
2323
#define SQLITE_CORE 1
2424
#define SQLITE_AMALGAMATION 1
@@ -462,9 +462,9 @@ extern "C" {
462462
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
463463
** [sqlite_version()] and [sqlite_source_id()].
464464
*/
465-
#define SQLITE_VERSION "3.47.1"
466-
#define SQLITE_VERSION_NUMBER 3047001
467-
#define SQLITE_SOURCE_ID "2024-11-25 12:07:48 b95d11e958643b969c47a8e5857f3793b9e69700b8f1469371386369a26e577e"
465+
#define SQLITE_VERSION "3.47.2"
466+
#define SQLITE_VERSION_NUMBER 3047002
467+
#define SQLITE_SOURCE_ID "2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c"
468468

469469
/*
470470
** CAPI3REF: Run-Time Library Version Numbers
@@ -35716,8 +35716,8 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en
3571635716
int eValid = 1; /* True exponent is either not used or is well-formed */
3571735717
int nDigit = 0; /* Number of digits processed */
3571835718
int eType = 1; /* 1: pure integer, 2+: fractional -1 or less: bad UTF16 */
35719+
u64 s2; /* round-tripped significand */
3571935720
double rr[2];
35720-
u64 s2;
3572135721

3572235722
assert( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE );
3572335723
*pResult = 0.0; /* Default return value, in case of an error */
@@ -35820,7 +35820,7 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en
3582035820
e = (e*esign) + d;
3582135821

3582235822
/* Try to adjust the exponent to make it smaller */
35823-
while( e>0 && s<(LARGEST_UINT64/10) ){
35823+
while( e>0 && s<((LARGEST_UINT64-0x7ff)/10) ){
3582435824
s *= 10;
3582535825
e--;
3582635826
}
@@ -35830,11 +35830,16 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en
3583035830
}
3583135831

3583235832
rr[0] = (double)s;
35833-
s2 = (u64)rr[0];
35834-
#if defined(_MSC_VER) && _MSC_VER<1700
35835-
if( s2==0x8000000000000000LL ){ s2 = 2*(u64)(0.5*rr[0]); }
35836-
#endif
35837-
rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s);
35833+
assert( sizeof(s2)==sizeof(rr[0]) );
35834+
memcpy(&s2, &rr[0], sizeof(s2));
35835+
if( s2<=0x43efffffffffffffLL ){
35836+
s2 = (u64)rr[0];
35837+
rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s);
35838+
}else{
35839+
rr[1] = 0.0;
35840+
}
35841+
assert( rr[1]<=1.0e-10*rr[0] ); /* Equal only when rr[0]==0.0 */
35842+
3583835843
if( e>0 ){
3583935844
while( e>=100 ){
3584035845
e -= 100;
@@ -147640,32 +147645,32 @@ static Expr *substExpr(
147640147645
if( pSubst->isOuterJoin ){
147641147646
ExprSetProperty(pNew, EP_CanBeNull);
147642147647
}
147643-
if( ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) ){
147644-
sqlite3SetJoinExpr(pNew, pExpr->w.iJoin,
147645-
pExpr->flags & (EP_OuterON|EP_InnerON));
147646-
}
147647-
sqlite3ExprDelete(db, pExpr);
147648-
pExpr = pNew;
147649-
if( pExpr->op==TK_TRUEFALSE ){
147650-
pExpr->u.iValue = sqlite3ExprTruthValue(pExpr);
147651-
pExpr->op = TK_INTEGER;
147652-
ExprSetProperty(pExpr, EP_IntValue);
147648+
if( pNew->op==TK_TRUEFALSE ){
147649+
pNew->u.iValue = sqlite3ExprTruthValue(pNew);
147650+
pNew->op = TK_INTEGER;
147651+
ExprSetProperty(pNew, EP_IntValue);
147653147652
}
147654147653

147655147654
/* Ensure that the expression now has an implicit collation sequence,
147656147655
** just as it did when it was a column of a view or sub-query. */
147657147656
{
147658-
CollSeq *pNat = sqlite3ExprCollSeq(pSubst->pParse, pExpr);
147657+
CollSeq *pNat = sqlite3ExprCollSeq(pSubst->pParse, pNew);
147659147658
CollSeq *pColl = sqlite3ExprCollSeq(pSubst->pParse,
147660147659
pSubst->pCList->a[iColumn].pExpr
147661147660
);
147662-
if( pNat!=pColl || (pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE) ){
147663-
pExpr = sqlite3ExprAddCollateString(pSubst->pParse, pExpr,
147661+
if( pNat!=pColl || (pNew->op!=TK_COLUMN && pNew->op!=TK_COLLATE) ){
147662+
pNew = sqlite3ExprAddCollateString(pSubst->pParse, pNew,
147664147663
(pColl ? pColl->zName : "BINARY")
147665147664
);
147666147665
}
147667147666
}
147668-
ExprClearProperty(pExpr, EP_Collate);
147667+
ExprClearProperty(pNew, EP_Collate);
147668+
if( ExprHasProperty(pExpr,EP_OuterON|EP_InnerON) ){
147669+
sqlite3SetJoinExpr(pNew, pExpr->w.iJoin,
147670+
pExpr->flags & (EP_OuterON|EP_InnerON));
147671+
}
147672+
sqlite3ExprDelete(db, pExpr);
147673+
pExpr = pNew;
147669147674
}
147670147675
}
147671147676
}else{
@@ -254990,7 +254995,7 @@ static void fts5SourceIdFunc(
254990254995
){
254991254996
assert( nArg==0 );
254992254997
UNUSED_PARAM2(nArg, apUnused);
254993-
sqlite3_result_text(pCtx, "fts5: 2024-11-25 12:07:48 b95d11e958643b969c47a8e5857f3793b9e69700b8f1469371386369a26e577e", -1, SQLITE_TRANSIENT);
254998+
sqlite3_result_text(pCtx, "fts5: 2024-12-07 20:39:59 2aabe05e2e8cae4847a802ee2daddc1d7413d8fc560254d93ee3e72c14685b6c", -1, SQLITE_TRANSIENT);
254994254999
}
254995255000

254996255001
/*

0 commit comments

Comments
 (0)