mirror of
https://github.com/sqlite/sqlite.git
synced 2025-08-07 02:42:48 +03:00
Fix minor problems with new code in memjournal.c.
FossilOrigin-Name: 9fd3f7b9c93325a83cdbe7dc9ee312b22a9c2898
This commit is contained in:
17
manifest
17
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Extend\sthe\scode\sin\smemjournal.c\sso\sthat\sit\ssubsumes\sthe\srole\sof\sjournal.c.\sAnd\s(untested)\scan\sflush\sjournal\sor\sstatement\sjournal\sfiles\sto\sdisk\safter\sthey\sgrow\sto\sa\sspecified\ssize.
|
C Fix\sminor\sproblems\swith\snew\scode\sin\smemjournal.c.
|
||||||
D 2016-02-27T20:14:55.339
|
D 2016-02-29T20:00:13.233
|
||||||
F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
|
F Makefile.in 4e90dc1521879022aa9479268a4cd141d1771142
|
||||||
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
|
||||||
F Makefile.msc 4f319afb7c049d40aff7af6e8c4e7cc2ba18e079
|
F Makefile.msc 4f319afb7c049d40aff7af6e8c4e7cc2ba18e079
|
||||||
@@ -321,7 +321,7 @@ F src/mem1.c 6919bcf12f221868ea066eec27e579fed95ce98b
|
|||||||
F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
|
F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
|
||||||
F src/mem3.c 8768ac94694f31ffaf8b4d0ea5dc08af7010a35a
|
F src/mem3.c 8768ac94694f31ffaf8b4d0ea5dc08af7010a35a
|
||||||
F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944
|
F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944
|
||||||
F src/memjournal.c 8d045e50120e9988e63bb0af69187e1e5e35122f
|
F src/memjournal.c 9b71f171dd20827022e9edd874adf8dba2b8d218
|
||||||
F src/msvc.h d9ba56c6851227ab44b3f228a35f3f5772296495
|
F src/msvc.h d9ba56c6851227ab44b3f228a35f3f5772296495
|
||||||
F src/mutex.c 8e45800ee78e0cd1f1f3fe8e398853307f4a085c
|
F src/mutex.c 8e45800ee78e0cd1f1f3fe8e398853307f4a085c
|
||||||
F src/mutex.h 779d588e3b7756ec3ecf7d78cde1d84aba414f85
|
F src/mutex.h 779d588e3b7756ec3ecf7d78cde1d84aba414f85
|
||||||
@@ -336,7 +336,7 @@ F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
|
|||||||
F src/os_unix.c 3a6f20736dfb8a0949cdd66553fdf59f6604be35
|
F src/os_unix.c 3a6f20736dfb8a0949cdd66553fdf59f6604be35
|
||||||
F src/os_win.c f0d7aa603eb6262143d7169a222aea07c4fca91d
|
F src/os_win.c f0d7aa603eb6262143d7169a222aea07c4fca91d
|
||||||
F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
|
F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
|
||||||
F src/pager.c e2bf43b506447d649e9d9266e988007ae7248699
|
F src/pager.c 24dd5e463f527427dd55fccc338c62260ae09b3a
|
||||||
F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56
|
F src/pager.h e1d38a2f14849e219df0f91f8323504d134c8a56
|
||||||
F src/parse.y c3ce2c4a7cbf0b699239be6b2a945c5cb51875e2
|
F src/parse.y c3ce2c4a7cbf0b699239be6b2a945c5cb51875e2
|
||||||
F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df
|
F src/pcache.c 647bb53a86b7bbcf55ad88089b3ea5a9170b90df
|
||||||
@@ -1451,10 +1451,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P f681d800340e0e710f73d0f7c09101f899249183
|
P e0b0b4316531fc8afa74b4882d9c74a91030ec69
|
||||||
R f456c30e495865d50fc2c9c2ddb305ed
|
R 662914373e55c4521cf0e8e3f2bf03da
|
||||||
T *branch * memjournal-exp
|
|
||||||
T *sym-memjournal-exp *
|
|
||||||
T -sym-trunk *
|
|
||||||
U dan
|
U dan
|
||||||
Z dad681f00ca4c98b68e43d3727f3c92e
|
Z 9ebd4b81ff0d949546d50775b32308aa
|
||||||
|
@@ -1 +1 @@
|
|||||||
e0b0b4316531fc8afa74b4882d9c74a91030ec69
|
9fd3f7b9c93325a83cdbe7dc9ee312b22a9c2898
|
@@ -248,6 +248,10 @@ static int memjrnlWrite(
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
** Truncate the file.
|
** Truncate the file.
|
||||||
|
**
|
||||||
|
** If the journal file is already on disk, truncate it there. Or, if it
|
||||||
|
** is still in main memory but is being truncated to zero bytes in size,
|
||||||
|
** ignore
|
||||||
*/
|
*/
|
||||||
static int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size){
|
static int memjrnlTruncate(sqlite3_file *pJfd, sqlite_int64 size){
|
||||||
MemJournal *p = (MemJournal *)pJfd;
|
MemJournal *p = (MemJournal *)pJfd;
|
||||||
@@ -350,7 +354,7 @@ int sqlite3JournalOpen(
|
|||||||
** it using the sqlite3OsOpen() function of the underlying VFS. In this
|
** it using the sqlite3OsOpen() function of the underlying VFS. In this
|
||||||
** case none of the code in this module is executed as a result of calls
|
** case none of the code in this module is executed as a result of calls
|
||||||
** made on the journal file-handle. */
|
** made on the journal file-handle. */
|
||||||
memset(p, 0, sizeof(MemJournal));
|
memset(p, 0, sizeof(MemJournal) + pVfs ? pVfs->szOsFile : 0);
|
||||||
if( nBuf==0 ){
|
if( nBuf==0 ){
|
||||||
return sqlite3OsOpen(pVfs, zName, pJfd, flags, 0);
|
return sqlite3OsOpen(pVfs, zName, pJfd, flags, 0);
|
||||||
}
|
}
|
||||||
@@ -377,30 +381,23 @@ void sqlite3MemJournalOpen(sqlite3_file *pJfd){
|
|||||||
sqlite3JournalOpen(0, 0, pJfd, 0, -1);
|
sqlite3JournalOpen(0, 0, pJfd, 0, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
** Return true if the file-handle passed as an argument is an in-memory
|
|
||||||
** journal.
|
|
||||||
*/
|
|
||||||
int sqlite3IsMemJournal(sqlite3_file *pJfd){
|
|
||||||
return pJfd->pMethods==&MemJournalMethods && ((MemJournal*)pJfd)->pReal==0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** If the argument p points to a MemJournal structure that is not an
|
** If the argument p points to a MemJournal structure that is not an
|
||||||
** in-memory-only journal file, and the underlying file has not yet been
|
** in-memory-only journal file (i.e. is one that was opened with a +ve
|
||||||
** created, create it now.
|
** nBuf parameter), and the underlying file has not yet been created,
|
||||||
|
** create it now.
|
||||||
*/
|
*/
|
||||||
int sqlite3JournalCreate(sqlite3_file *p){
|
int sqlite3JournalCreate(sqlite3_file *p){
|
||||||
int rc = SQLITE_OK;
|
int rc = SQLITE_OK;
|
||||||
if( p->pMethods==&MemJournalMethods && ((MemJournal*)p)->nBuf>=0 ){
|
if( p->pMethods==&MemJournalMethods && ((MemJournal*)p)->nBuf>0 ){
|
||||||
rc = createFile((MemJournal*)p);
|
rc = createFile((MemJournal*)p);
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** The file-handle passed as teh only argument is open on a journal file.
|
** The file-handle passed as the only argument is open on a journal file.
|
||||||
** Return true if this "journal file" is actually stored in heap memory,
|
** Return true if this "journal file" is currently stored in heap memory,
|
||||||
** or false otherwise.
|
** or false otherwise.
|
||||||
*/
|
*/
|
||||||
int sqlite3JournalIsInMemory(sqlite3_file *p){
|
int sqlite3JournalIsInMemory(sqlite3_file *p){
|
||||||
|
@@ -1343,6 +1343,7 @@ static i64 journalHdrOffset(Pager *pPager){
|
|||||||
static int zeroJournalHdr(Pager *pPager, int doTruncate){
|
static int zeroJournalHdr(Pager *pPager, int doTruncate){
|
||||||
int rc = SQLITE_OK; /* Return code */
|
int rc = SQLITE_OK; /* Return code */
|
||||||
assert( isOpen(pPager->jfd) );
|
assert( isOpen(pPager->jfd) );
|
||||||
|
assert( !sqlite3JournalIsInMemory(pPager->jfd) );
|
||||||
if( pPager->journalOff ){
|
if( pPager->journalOff ){
|
||||||
const i64 iLimit = pPager->journalSizeLimit; /* Local cache of jsl */
|
const i64 iLimit = pPager->journalSizeLimit; /* Local cache of jsl */
|
||||||
|
|
||||||
@@ -1991,7 +1992,8 @@ static int pager_end_transaction(Pager *pPager, int hasMaster, int bCommit){
|
|||||||
** file should be closed and deleted. If this connection writes to
|
** file should be closed and deleted. If this connection writes to
|
||||||
** the database file, it will do so using an in-memory journal.
|
** the database file, it will do so using an in-memory journal.
|
||||||
*/
|
*/
|
||||||
int bDelete = (!pPager->tempFile&&!sqlite3JournalIsInMemory(pPager->jfd));
|
int bDelete = !pPager->tempFile;
|
||||||
|
assert( sqlite3JournalIsInMemory(pPager->jfd)==0 );
|
||||||
assert( pPager->journalMode==PAGER_JOURNALMODE_DELETE
|
assert( pPager->journalMode==PAGER_JOURNALMODE_DELETE
|
||||||
|| pPager->journalMode==PAGER_JOURNALMODE_MEMORY
|
|| pPager->journalMode==PAGER_JOURNALMODE_MEMORY
|
||||||
|| pPager->journalMode==PAGER_JOURNALMODE_WAL
|
|| pPager->journalMode==PAGER_JOURNALMODE_WAL
|
||||||
|
Reference in New Issue
Block a user