1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-15 11:41:13 +03:00

Add "pragma journal_mode=memory". Change the way rollback works for in-memory databases so that it reuses the journal_mode=memory code. (CVS 5830)

FossilOrigin-Name: 39ebf01addf9d0867daafd06a38719e725128f9c
This commit is contained in:
danielk1977
2008-10-17 18:51:52 +00:00
parent 7b228b3e39
commit b3175389c7
15 changed files with 422 additions and 491 deletions

View File

@@ -11,7 +11,7 @@
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
** $Id: pragma.c,v 1.189 2008/10/10 17:47:21 danielk1977 Exp $
** $Id: pragma.c,v 1.190 2008/10/17 18:51:53 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -455,11 +455,13 @@ void sqlite3Pragma(
/*
** PRAGMA [database.]journal_mode
** PRAGMA [database.]journal_mode = (delete|persist|off)
** PRAGMA [database.]journal_mode = (delete|persist|memory|off)
*/
if( sqlite3StrICmp(zLeft,"journal_mode")==0 ){
int eMode;
static char * const azModeName[] = {"delete", "persist", "off", "truncate"};
static char * const azModeName[] = {
"delete", "persist", "off", "truncate", "memory"
};
if( zRight==0 ){
eMode = PAGER_JOURNALMODE_QUERY;
@@ -503,7 +505,8 @@ void sqlite3Pragma(
assert( eMode==PAGER_JOURNALMODE_DELETE
|| eMode==PAGER_JOURNALMODE_TRUNCATE
|| eMode==PAGER_JOURNALMODE_PERSIST
|| eMode==PAGER_JOURNALMODE_OFF );
|| eMode==PAGER_JOURNALMODE_OFF
|| eMode==PAGER_JOURNALMODE_MEMORY );
sqlite3VdbeSetNumCols(v, 1);
sqlite3VdbeSetColName(v, 0, COLNAME_NAME, "journal_mode", P4_STATIC);
sqlite3VdbeAddOp4(v, OP_String8, 0, 1, 0,