mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
SQLite: Run pragmas on connection before creating table
This commit is contained in:
parent
26cc6d4e7b
commit
ac064bd6af
1 changed files with 11 additions and 11 deletions
|
@ -43,18 +43,7 @@ OperationResult SQLite::DoOpen(OpenResultCallback* cb, RecordValPtr options) {
|
||||||
return open_res;
|
return open_res;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string create = "create table if not exists " + table_name + " (";
|
|
||||||
create.append("key_str blob primary key, value_str blob not null, expire_time real);");
|
|
||||||
|
|
||||||
char* errorMsg = nullptr;
|
char* errorMsg = nullptr;
|
||||||
if ( int res = sqlite3_exec(db, create.c_str(), NULL, NULL, &errorMsg); res != SQLITE_OK ) {
|
|
||||||
std::string err = util::fmt("Error executing table creation statement: %s", errorMsg);
|
|
||||||
Error(err.c_str());
|
|
||||||
sqlite3_free(errorMsg);
|
|
||||||
Close(nullptr);
|
|
||||||
return {ReturnCode::INITIALIZATION_FAILED, std::move(err)};
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( int res = sqlite3_exec(db, "pragma integrity_check", NULL, NULL, &errorMsg); res != SQLITE_OK ) {
|
if ( int res = sqlite3_exec(db, "pragma integrity_check", NULL, NULL, &errorMsg); res != SQLITE_OK ) {
|
||||||
std::string err = util::fmt("Error executing integrity check: %s", errorMsg);
|
std::string err = util::fmt("Error executing integrity check: %s", errorMsg);
|
||||||
Error(err.c_str());
|
Error(err.c_str());
|
||||||
|
@ -78,6 +67,17 @@ OperationResult SQLite::DoOpen(OpenResultCallback* cb, RecordValPtr options) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string create = "create table if not exists " + table_name + " (";
|
||||||
|
create.append("key_str blob primary key, value_str blob not null, expire_time real);");
|
||||||
|
|
||||||
|
if ( int res = sqlite3_exec(db, create.c_str(), NULL, NULL, &errorMsg); res != SQLITE_OK ) {
|
||||||
|
std::string err = util::fmt("Error executing table creation statement: (%d) %s", res, errorMsg);
|
||||||
|
Error(err.c_str());
|
||||||
|
sqlite3_free(errorMsg);
|
||||||
|
Close(nullptr);
|
||||||
|
return {ReturnCode::INITIALIZATION_FAILED, std::move(err)};
|
||||||
|
}
|
||||||
|
|
||||||
static std::array<std::string, 5> statements =
|
static std::array<std::string, 5> statements =
|
||||||
{util::fmt("insert into %s (key_str, value_str, expire_time) values(?, ?, ?)", table_name.c_str()),
|
{util::fmt("insert into %s (key_str, value_str, expire_time) values(?, ?, ?)", table_name.c_str()),
|
||||||
util::fmt("insert into %s (key_str, value_str, expire_time) values(?, ?, ?) ON CONFLICT(key_str) "
|
util::fmt("insert into %s (key_str, value_str, expire_time) values(?, ?, ?) ON CONFLICT(key_str) "
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue