-C Clarify\sthe\smeanings\sof\sthe\sSQLITE_SYNC_NORMAL\sand\sSQLITE_SYNC_FULL\sflags\npassed\sinto\sthe\sxSync\smethod\sof\sthe\sVFS.\s\sComment\schanges\sonly\s-\sno\schanges\nto\scode.\s(CVS\s6447)
-D 2009-04-04T14:04:58
+C Allow\sthe\sjournal_mode\sfor\sin-memory\sdatabases\sto\sbe\seither\sOFF\sor\sMEMORY,\nnot\sjust\sMEMORY.\s(CVS\s6448)
+D 2009-04-04T15:53:48
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 583e87706abc3026960ed759aff6371faf84c211
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5
F src/os_unix.c 5d667f24615043c937a138faaed5f3e93b8619b0
F src/os_win.c 524fe4c31c469531191857e8036ef59bfb52d684
-F src/pager.c 34aeb87dc8177901d49dd02207828a2121064c25
+F src/pager.c a8b53f7e4a821d5bc2e01477a5f10c9348ce1d7b
F src/pager.h 0c9f3520c00d8a3b8e792ca56c9a11b6b02b4b0f
F src/parse.y 070215cf461ab917c23253a9cbf0903f2b0d8f19
F src/pcache.c 395f752a13574120bd7513a400ba02a265aaa76d
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 65f9d3b948cd6ed4728ab49833b9f2fca96563a2
-R aa0c0c747dd6d50096255d1203d3fb59
+P c47aeb37a1c054a8e0444b95e29cb332599af2d8
+R ae3e14723e90d8a65d36e9ebea09a9ef
U drh
-Z 45ed7fb71b5c5e1381094e61ad851d68
+Z 073192898ad0af334ccc18150893fe50
** file simultaneously, or one process from reading the database while
** another is writing.
**
-** @(#) $Id: pager.c,v 1.576 2009/03/31 02:54:40 drh Exp $
+** @(#) $Id: pager.c,v 1.577 2009/04/04 15:53:48 drh Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
#include "sqliteInt.h"
** PAGER_JOURNALMODE_MEMORY
**
** If the parameter is not _QUERY, then the journal-mode is set to the
-** value specified.
+** value specified. Except, an in-memory database can only have its
+** journal mode set to _OFF or _MEMORY. Attempts to change the journal
+** mode of an in-memory database to something other than _OFF or _MEMORY
+** are silently ignored.
**
** The returned indicate the current (possibly updated) journal-mode.
*/
int sqlite3PagerJournalMode(Pager *pPager, int eMode){
- if( !MEMDB ){
- assert( eMode==PAGER_JOURNALMODE_QUERY
- || eMode==PAGER_JOURNALMODE_DELETE
- || eMode==PAGER_JOURNALMODE_TRUNCATE
- || eMode==PAGER_JOURNALMODE_PERSIST
- || eMode==PAGER_JOURNALMODE_OFF
- || eMode==PAGER_JOURNALMODE_MEMORY );
- assert( PAGER_JOURNALMODE_QUERY<0 );
- if( eMode>=0 ){
- pPager->journalMode = (u8)eMode;
- }else{
- assert( eMode==PAGER_JOURNALMODE_QUERY );
- }
+ assert( eMode==PAGER_JOURNALMODE_QUERY
+ || eMode==PAGER_JOURNALMODE_DELETE
+ || eMode==PAGER_JOURNALMODE_TRUNCATE
+ || eMode==PAGER_JOURNALMODE_PERSIST
+ || eMode==PAGER_JOURNALMODE_OFF
+ || eMode==PAGER_JOURNALMODE_MEMORY );
+ assert( PAGER_JOURNALMODE_QUERY<0 );
+ if( eMode>=0 && (!MEMDB || eMode==PAGER_JOURNALMODE_MEMORY
+ || eMode==PAGER_JOURNALMODE_OFF) ){
+ pPager->journalMode = (u8)eMode;
}
return (int)pPager->journalMode;
}
/*
** Get/set the size-limit used for persistent journal files.
+**
+** Setting the size limit to -1 means no limit is enforced.
+** An attempt to set a limit smaller than -1 is a no-op.
*/
i64 sqlite3PagerJournalSizeLimit(Pager *pPager, i64 iLimit){
if( iLimit>=-1 ){