8#include <userver/components/component_config.hpp>
10USERVER_NAMESPACE_BEGIN
12namespace storages::sqlite::settings {
39 constexpr TransactionOptions() =
default;
41 : isolation_level{lvl}
44 : isolation_level{lvl},
47 constexpr explicit TransactionOptions(
LockingMode m)
56 return lhs.mode == rhs.mode;
96struct PoolSettings
final {
103 static PoolSettings Create(
const components::ComponentConfig& config);
106inline constexpr bool kDefaultCreateFile =
true;
107inline constexpr bool kDefaultIsReadOnly =
false;
108inline constexpr bool kDefaultSharedCache =
false;
109inline constexpr bool kDefaultReadUncommitted =
false;
110inline constexpr bool kDefaultForeignKeys =
true;
111inline constexpr std::string_view kDefaultJournalMode =
"wal";
112inline constexpr std::string_view kDefaultSynchronous =
"normal";
113inline constexpr std::string_view kDefaultTempStore =
"memory";
114inline constexpr int kDefaultBusyTimeout = 5000;
115inline constexpr int kDefaultCacheSize = -2000;
116inline constexpr int kDefaultJournalSizeLimit = 67108864;
117inline constexpr int kDefaultMmapSize = 134217728;
118inline constexpr int kDefaultPageSize = 4096;
155 bool create_file = kDefaultCreateFile;
156 bool shared_cache = kDefaultSharedCache;
157 bool read_uncommitted = kDefaultReadUncommitted;
158 bool foreign_keys = kDefaultForeignKeys;
160 int busy_timeout = kDefaultBusyTimeout;
162 int cache_size = kDefaultCacheSize;
164 int journal_size_limit = kDefaultJournalSizeLimit;
165 int mmap_size = kDefaultMmapSize;
166 int page_size = kDefaultPageSize;
169 PoolSettings pool_settings;