From 3ca56f7e0f74b82df83bc6d4bd87e32f9a7b1a0d Mon Sep 17 00:00:00 2001 From: Mymaqn Date: Wed, 30 Oct 2024 13:56:19 +0100 Subject: [PATCH] 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. --- .../base/frameworks/logging/writers/sqlite.zeek | 17 ++++++++++------- src/logging/writers/sqlite/SQLite.cc | 2 ++ src/logging/writers/sqlite/SQLite.h | 2 ++ src/logging/writers/sqlite/sqlite.bif | 4 +++- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/scripts/base/frameworks/logging/writers/sqlite.zeek b/scripts/base/frameworks/logging/writers/sqlite.zeek index 56c762cb61..a813eb056a 100644 --- a/scripts/base/frameworks/logging/writers/sqlite.zeek +++ b/scripts/base/frameworks/logging/writers/sqlite.zeek @@ -23,6 +23,7 @@ export { const empty_field = Log::empty_field &redef; type SQLiteSynchronous: enum { + SQLITE_SYNCHRONOUS_DEFAULT, SQLITE_SYNCHRONOUS_OFF, SQLITE_SYNCHRONOUS_NORMAL, SQLITE_SYNCHRONOUS_FULL, @@ -31,27 +32,29 @@ export { ## Values supported for SQLite's PRAGMA journal_mode statement. type SQLiteJournalMode: enum { + SQLITE_JOURNAL_MODE_DEFAULT, SQLITE_JOURNAL_MODE_DELETE, SQLITE_JOURNAL_MODE_TRUNCATE, - SQLITE_JOURNAL_MODE_PERIST, + SQLITE_JOURNAL_MODE_PERSIST, SQLITE_JOURNAL_MODE_MEMORY, SQLITE_JOURNAL_MODE_WAL, SQLITE_JOURNAL_MODE_OFF, }; - ## If set, runs the PRAGMA synchronous statement with the - ## provided value after connecting to the SQLite database. See + ## If changed from SQLITE_SYNCHRONOUS_DEFAULT, runs the PRAGMA synchronous + ## statement with the provided value after connecting to the SQLite database. See ## `SQLite's synchronous documentation `_ ## 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 - ## provided value after connecting to the SQLite database. See + ## If changed from SQLITE_JOURNAL_MODE_DEFAULT, runs the PRAGMA + ## journal_mode statement with the provided value after connecting to + ## the SQLite database. ## `SQLite's journal_mode documentation `_ ## for more details around performance, data safety trade offs ## and interaction with the PRAGMA synchronous statement. - const journal_mode = SQLITE_JOURNAL_MODE_DELETE &redef; + const journal_mode = SQLITE_JOURNAL_MODE_DEFAULT &redef; } diff --git a/src/logging/writers/sqlite/SQLite.cc b/src/logging/writers/sqlite/SQLite.cc index e7b1af313c..f5f86fe415 100644 --- a/src/logging/writers/sqlite/SQLite.cc +++ b/src/logging/writers/sqlite/SQLite.cc @@ -134,6 +134,7 @@ bool SQLite::DoInit(const WriterInfo& info, int arg_num_fields, const Field* con char* errorMsg = 0; int res; 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_NORMAL: 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 ) { + case SQLITE_JOURNAL_MODE_DEFAULT: res = SQLITE_OK; break; case SQLITE_JOURNAL_MODE_DELETE: res = sqlite3_exec(db, "PRAGMA journal_mode=DELETE;", NULL, NULL, &errorMsg); break; diff --git a/src/logging/writers/sqlite/SQLite.h b/src/logging/writers/sqlite/SQLite.h index 61acdc28af..a7c2312f08 100644 --- a/src/logging/writers/sqlite/SQLite.h +++ b/src/logging/writers/sqlite/SQLite.h @@ -49,12 +49,14 @@ private: int64_t journal_mode; enum SQLiteSynchronous { + SQLITE_SYNCHRONOUS_DEFAULT, SQLITE_SYNCHRONOUS_OFF, SQLITE_SYNCHRONOUS_NORMAL, SQLITE_SYNCHRONOUS_FULL, SQLITE_SYNCHRONOUS_EXTRA, }; enum SQLiteJournalMode { + SQLITE_JOURNAL_MODE_DEFAULT, SQLITE_JOURNAL_MODE_DELETE, SQLITE_JOURNAL_MODE_TRUNCATE, SQLITE_JOURNAL_MODE_PERSIST, diff --git a/src/logging/writers/sqlite/sqlite.bif b/src/logging/writers/sqlite/sqlite.bif index 7c68f2795e..a95c4056e3 100644 --- a/src/logging/writers/sqlite/sqlite.bif +++ b/src/logging/writers/sqlite/sqlite.bif @@ -8,6 +8,7 @@ const empty_field: string; const unset_field: string; enum SQLiteSynchronous %{ + SQLITE_SYNCHRONOUS_DEFAULT, SQLITE_SYNCHRONOUS_OFF, SQLITE_SYNCHRONOUS_NORMAL, SQLITE_SYNCHRONOUS_FULL, @@ -15,9 +16,10 @@ enum SQLiteSynchronous %{ %} enum SQLiteJournalMode %{ + SQLITE_JOURNAL_MODE_DEFAULT, SQLITE_JOURNAL_MODE_DELETE, SQLITE_JOURNAL_MODE_TRUNCATE, - SQLITE_JOURNAL_MODE_PERIST, + SQLITE_JOURNAL_MODE_PERSIST, SQLITE_JOURNAL_MODE_MEMORY, SQLITE_JOURNAL_MODE_WAL, SQLITE_JOURNAL_MODE_OFF,