Added default options for synchronous and journal mode

Added enum options SQLITE_SYNCHRONOUS_DEFAULT and SQLITE_JOURNAL_MODE_DEFAULT
and changed the default to be these instead.
This commit is contained in:
Mymaqn 2024-10-30 13:56:19 +01:00 committed by Johanna Amann
parent 6e026ba313
commit 3ca56f7e0f
4 changed files with 17 additions and 8 deletions

View file

@ -23,6 +23,7 @@ export {
const empty_field = Log::empty_field &redef; const empty_field = Log::empty_field &redef;
type SQLiteSynchronous: enum { type SQLiteSynchronous: enum {
SQLITE_SYNCHRONOUS_DEFAULT,
SQLITE_SYNCHRONOUS_OFF, SQLITE_SYNCHRONOUS_OFF,
SQLITE_SYNCHRONOUS_NORMAL, SQLITE_SYNCHRONOUS_NORMAL,
SQLITE_SYNCHRONOUS_FULL, SQLITE_SYNCHRONOUS_FULL,
@ -31,27 +32,29 @@ export {
## Values supported for SQLite's PRAGMA journal_mode statement. ## Values supported for SQLite's PRAGMA journal_mode statement.
type SQLiteJournalMode: enum { type SQLiteJournalMode: enum {
SQLITE_JOURNAL_MODE_DEFAULT,
SQLITE_JOURNAL_MODE_DELETE, SQLITE_JOURNAL_MODE_DELETE,
SQLITE_JOURNAL_MODE_TRUNCATE, SQLITE_JOURNAL_MODE_TRUNCATE,
SQLITE_JOURNAL_MODE_PERIST, SQLITE_JOURNAL_MODE_PERSIST,
SQLITE_JOURNAL_MODE_MEMORY, SQLITE_JOURNAL_MODE_MEMORY,
SQLITE_JOURNAL_MODE_WAL, SQLITE_JOURNAL_MODE_WAL,
SQLITE_JOURNAL_MODE_OFF, SQLITE_JOURNAL_MODE_OFF,
}; };
## If set, runs the PRAGMA synchronous statement with the ## If changed from SQLITE_SYNCHRONOUS_DEFAULT, runs the PRAGMA synchronous
## provided value after connecting to the SQLite database. See ## statement with the provided value after connecting to the SQLite database. See
## `SQLite's synchronous documentation <https://www.sqlite.org/pragma.html#pragma_synchronous>`_ ## `SQLite's synchronous documentation <https://www.sqlite.org/pragma.html#pragma_synchronous>`_
## for more details around performance and data safety trade offs. ## for more details around performance and data safety trade offs.
const synchronous = SQLITE_SYNCHRONOUS_FULL &redef; const synchronous = SQLITE_SYNCHRONOUS_DEFAULT &redef;
## If set, runs the PRAGMA journal_mode statement with the ## If changed from SQLITE_JOURNAL_MODE_DEFAULT, runs the PRAGMA
## provided value after connecting to the SQLite database. See ## journal_mode statement with the provided value after connecting to
## the SQLite database.
## `SQLite's journal_mode documentation <https://www.sqlite.org/pragma.html#pragma_journal_mode>`_ ## `SQLite's journal_mode documentation <https://www.sqlite.org/pragma.html#pragma_journal_mode>`_
## for more details around performance, data safety trade offs ## for more details around performance, data safety trade offs
## and interaction with the PRAGMA synchronous statement. ## and interaction with the PRAGMA synchronous statement.
const journal_mode = SQLITE_JOURNAL_MODE_DELETE &redef; const journal_mode = SQLITE_JOURNAL_MODE_DEFAULT &redef;
} }

View file

@ -134,6 +134,7 @@ bool SQLite::DoInit(const WriterInfo& info, int arg_num_fields, const Field* con
char* errorMsg = 0; char* errorMsg = 0;
int res; int res;
switch ( synchronous ) { switch ( synchronous ) {
case SQLITE_SYNCHRONOUS_DEFAULT: res = SQLITE_OK; break;
case SQLITE_SYNCHRONOUS_OFF: res = sqlite3_exec(db, "PRAGMA synchronous=OFF;", NULL, NULL, &errorMsg); break; case SQLITE_SYNCHRONOUS_OFF: res = sqlite3_exec(db, "PRAGMA synchronous=OFF;", NULL, NULL, &errorMsg); break;
case SQLITE_SYNCHRONOUS_NORMAL: case SQLITE_SYNCHRONOUS_NORMAL:
res = sqlite3_exec(db, "PRAGMA synchronous=NORMAL;", NULL, NULL, &errorMsg); res = sqlite3_exec(db, "PRAGMA synchronous=NORMAL;", NULL, NULL, &errorMsg);
@ -151,6 +152,7 @@ bool SQLite::DoInit(const WriterInfo& info, int arg_num_fields, const Field* con
} }
switch ( journal_mode ) { switch ( journal_mode ) {
case SQLITE_JOURNAL_MODE_DEFAULT: res = SQLITE_OK; break;
case SQLITE_JOURNAL_MODE_DELETE: case SQLITE_JOURNAL_MODE_DELETE:
res = sqlite3_exec(db, "PRAGMA journal_mode=DELETE;", NULL, NULL, &errorMsg); res = sqlite3_exec(db, "PRAGMA journal_mode=DELETE;", NULL, NULL, &errorMsg);
break; break;

View file

@ -49,12 +49,14 @@ private:
int64_t journal_mode; int64_t journal_mode;
enum SQLiteSynchronous { enum SQLiteSynchronous {
SQLITE_SYNCHRONOUS_DEFAULT,
SQLITE_SYNCHRONOUS_OFF, SQLITE_SYNCHRONOUS_OFF,
SQLITE_SYNCHRONOUS_NORMAL, SQLITE_SYNCHRONOUS_NORMAL,
SQLITE_SYNCHRONOUS_FULL, SQLITE_SYNCHRONOUS_FULL,
SQLITE_SYNCHRONOUS_EXTRA, SQLITE_SYNCHRONOUS_EXTRA,
}; };
enum SQLiteJournalMode { enum SQLiteJournalMode {
SQLITE_JOURNAL_MODE_DEFAULT,
SQLITE_JOURNAL_MODE_DELETE, SQLITE_JOURNAL_MODE_DELETE,
SQLITE_JOURNAL_MODE_TRUNCATE, SQLITE_JOURNAL_MODE_TRUNCATE,
SQLITE_JOURNAL_MODE_PERSIST, SQLITE_JOURNAL_MODE_PERSIST,

View file

@ -8,6 +8,7 @@ const empty_field: string;
const unset_field: string; const unset_field: string;
enum SQLiteSynchronous %{ enum SQLiteSynchronous %{
SQLITE_SYNCHRONOUS_DEFAULT,
SQLITE_SYNCHRONOUS_OFF, SQLITE_SYNCHRONOUS_OFF,
SQLITE_SYNCHRONOUS_NORMAL, SQLITE_SYNCHRONOUS_NORMAL,
SQLITE_SYNCHRONOUS_FULL, SQLITE_SYNCHRONOUS_FULL,
@ -15,9 +16,10 @@ enum SQLiteSynchronous %{
%} %}
enum SQLiteJournalMode %{ enum SQLiteJournalMode %{
SQLITE_JOURNAL_MODE_DEFAULT,
SQLITE_JOURNAL_MODE_DELETE, SQLITE_JOURNAL_MODE_DELETE,
SQLITE_JOURNAL_MODE_TRUNCATE, SQLITE_JOURNAL_MODE_TRUNCATE,
SQLITE_JOURNAL_MODE_PERIST, SQLITE_JOURNAL_MODE_PERSIST,
SQLITE_JOURNAL_MODE_MEMORY, SQLITE_JOURNAL_MODE_MEMORY,
SQLITE_JOURNAL_MODE_WAL, SQLITE_JOURNAL_MODE_WAL,
SQLITE_JOURNAL_MODE_OFF, SQLITE_JOURNAL_MODE_OFF,