1
0
Fork 0
mirror of https://github.com/DBD-SQLite/DBD-SQLite synced 2025-06-07 22:28:47 -04:00

updated SQLite to 3.8.8.2

This commit is contained in:
Kenichi Ishigaki 2015-02-08 18:09:42 +09:00
parent 76d1702937
commit f537ab8ab9
2 changed files with 99 additions and 95 deletions

View file

@ -1,6 +1,6 @@
/****************************************************************************** /******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite ** This file is an amalgamation of many separate C source files from SQLite
** version 3.8.8.1. By combining all the individual C code files into this ** version 3.8.8.2. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a single translation ** single large file, the entire code can be compiled as a single translation
** unit. This allows many compilers to do optimizations that would not be ** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements ** possible if the files were compiled separately. Performance improvements
@ -278,9 +278,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()]. ** [sqlite_version()] and [sqlite_source_id()].
*/ */
#define SQLITE_VERSION "3.8.8.1" #define SQLITE_VERSION "3.8.8.2"
#define SQLITE_VERSION_NUMBER 3008008 #define SQLITE_VERSION_NUMBER 3008008
#define SQLITE_SOURCE_ID "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55" #define SQLITE_SOURCE_ID "2015-01-30 14:30:45 7757fc721220e136620a89c9d28247f28bbbc098"
/* /*
** CAPI3REF: Run-Time Library Version Numbers ** CAPI3REF: Run-Time Library Version Numbers
@ -50197,7 +50197,7 @@ static int walCheckpoint(
int sync_flags, /* Flags for OsSync() (or 0) */ int sync_flags, /* Flags for OsSync() (or 0) */
u8 *zBuf /* Temporary buffer to use */ u8 *zBuf /* Temporary buffer to use */
){ ){
int rc; /* Return code */ int rc = SQLITE_OK; /* Return code */
int szPage; /* Database page-size */ int szPage; /* Database page-size */
WalIterator *pIter = 0; /* Wal iterator context */ WalIterator *pIter = 0; /* Wal iterator context */
u32 iDbpage = 0; /* Next database page to write */ u32 iDbpage = 0; /* Next database page to write */
@ -50211,7 +50211,7 @@ static int walCheckpoint(
testcase( szPage<=32768 ); testcase( szPage<=32768 );
testcase( szPage>=65536 ); testcase( szPage>=65536 );
pInfo = walCkptInfo(pWal); pInfo = walCkptInfo(pWal);
if( pInfo->nBackfill>=pWal->hdr.mxFrame ) return SQLITE_OK; if( pInfo->nBackfill<pWal->hdr.mxFrame ){
/* Allocate the iterator */ /* Allocate the iterator */
rc = walIteratorInit(pWal, &pIter); rc = walIteratorInit(pWal, &pIter);
@ -50249,7 +50249,7 @@ static int walCheckpoint(
} }
if( pInfo->nBackfill<mxSafeFrame if( pInfo->nBackfill<mxSafeFrame
&& (rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(0), 1))==SQLITE_OK && (rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(0),1))==SQLITE_OK
){ ){
i64 nSize; /* Current size of database file */ i64 nSize; /* Current size of database file */
u32 nBackfill = pInfo->nBackfill; u32 nBackfill = pInfo->nBackfill;
@ -50271,11 +50271,13 @@ static int walCheckpoint(
} }
/* Iterate through the contents of the WAL, copying data to the db file. */ /* Iterate through the contents of the WAL, copying data to the db file */
while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){ while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){
i64 iOffset; i64 iOffset;
assert( walFramePgno(pWal, iFrame)==iDbpage ); assert( walFramePgno(pWal, iFrame)==iDbpage );
if( iFrame<=nBackfill || iFrame>mxSafeFrame || iDbpage>mxPage ) continue; if( iFrame<=nBackfill || iFrame>mxSafeFrame || iDbpage>mxPage ){
continue;
}
iOffset = walFrameOffset(iFrame, szPage) + WAL_FRAME_HDRSIZE; iOffset = walFrameOffset(iFrame, szPage) + WAL_FRAME_HDRSIZE;
/* testcase( IS_BIG_INT(iOffset) ); // requires a 4GiB WAL file */ /* testcase( IS_BIG_INT(iOffset) ); // requires a 4GiB WAL file */
rc = sqlite3OsRead(pWal->pWalFd, zBuf, szPage, iOffset); rc = sqlite3OsRead(pWal->pWalFd, zBuf, szPage, iOffset);
@ -50310,6 +50312,7 @@ static int walCheckpoint(
** just because there are active readers. */ ** just because there are active readers. */
rc = SQLITE_OK; rc = SQLITE_OK;
} }
}
/* If this is an SQLITE_CHECKPOINT_RESTART or TRUNCATE operation, and the /* If this is an SQLITE_CHECKPOINT_RESTART or TRUNCATE operation, and the
** entire wal file has been copied into the database file, then block ** entire wal file has been copied into the database file, then block
@ -50323,7 +50326,7 @@ static int walCheckpoint(
}else if( eMode>=SQLITE_CHECKPOINT_RESTART ){ }else if( eMode>=SQLITE_CHECKPOINT_RESTART ){
u32 salt1; u32 salt1;
sqlite3_randomness(4, &salt1); sqlite3_randomness(4, &salt1);
assert( mxSafeFrame==pWal->hdr.mxFrame ); assert( pInfo->nBackfill==pWal->hdr.mxFrame );
rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(1), WAL_NREADER-1); rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(1), WAL_NREADER-1);
if( rc==SQLITE_OK ){ if( rc==SQLITE_OK ){
if( eMode==SQLITE_CHECKPOINT_TRUNCATE ){ if( eMode==SQLITE_CHECKPOINT_TRUNCATE ){
@ -128369,6 +128372,7 @@ SQLITE_API int sqlite3_wal_checkpoint_v2(
rc = SQLITE_ERROR; rc = SQLITE_ERROR;
sqlite3ErrorWithMsg(db, SQLITE_ERROR, "unknown database: %s", zDb); sqlite3ErrorWithMsg(db, SQLITE_ERROR, "unknown database: %s", zDb);
}else{ }else{
db->busyHandler.nBusy = 0;
rc = sqlite3Checkpoint(db, iDb, eMode, pnLog, pnCkpt); rc = sqlite3Checkpoint(db, iDb, eMode, pnLog, pnCkpt);
sqlite3Error(db, rc); sqlite3Error(db, rc);
} }

View file

@ -107,9 +107,9 @@ extern "C" {
** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()]. ** [sqlite_version()] and [sqlite_source_id()].
*/ */
#define SQLITE_VERSION "3.8.8.1" #define SQLITE_VERSION "3.8.8.2"
#define SQLITE_VERSION_NUMBER 3008008 #define SQLITE_VERSION_NUMBER 3008008
#define SQLITE_SOURCE_ID "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55" #define SQLITE_SOURCE_ID "2015-01-30 14:30:45 7757fc721220e136620a89c9d28247f28bbbc098"
/* /*
** CAPI3REF: Run-Time Library Version Numbers ** CAPI3REF: Run-Time Library Version Numbers