Merge remote-tracking branch 'origin/topic/johanna/sqlite-pragmas'

* origin/topic/johanna/sqlite-pragmas:
  Options for SQLite log writer, eliminate duplicate definitions
  Test synchronous/journal mode options for SQLite log writer
  Added default options for synchronous and journal mode
  Support for synchronous and journal_mode
This commit is contained in:
Johanna Amann 2024-11-27 08:29:07 +00:00
commit 7b582bc345
10 changed files with 165 additions and 3 deletions

View file

@ -21,5 +21,39 @@ export {
## String to use for empty fields. This should be different from
## *unset_field* to make the output unambiguous.
const empty_field = Log::empty_field &redef;
## Values supported for SQLite's PRAGMA synchronous statement.
type SQLiteSynchronous: enum {
SQLITE_SYNCHRONOUS_DEFAULT,
SQLITE_SYNCHRONOUS_OFF,
SQLITE_SYNCHRONOUS_NORMAL,
SQLITE_SYNCHRONOUS_FULL,
SQLITE_SYNCHRONOUS_EXTRA,
};
## 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_PERSIST,
SQLITE_JOURNAL_MODE_MEMORY,
SQLITE_JOURNAL_MODE_WAL,
SQLITE_JOURNAL_MODE_OFF,
};
## 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 <https://www.sqlite.org/pragma.html#pragma_synchronous>`_
## for more details around performance and data safety trade offs.
const synchronous = SQLITE_SYNCHRONOUS_DEFAULT &redef;
## 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 <https://www.sqlite.org/pragma.html#pragma_journal_mode>`_
## for more details around performance, data safety trade offs
## and interaction with the PRAGMA synchronous statement.
const journal_mode = SQLITE_JOURNAL_MODE_DEFAULT &redef;
}