mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
SQLite: Fix some string-sizing issues
This commit is contained in:
parent
ac064bd6af
commit
1bff4c9537
1 changed files with 5 additions and 2 deletions
|
@ -55,8 +55,11 @@ OperationResult SQLite::DoOpen(OpenResultCallback* cb, RecordValPtr options) {
|
||||||
auto tuning_params = backend_options->GetField<TableVal>("tuning_params")->ToMap();
|
auto tuning_params = backend_options->GetField<TableVal>("tuning_params")->ToMap();
|
||||||
for ( const auto& [k, v] : tuning_params ) {
|
for ( const auto& [k, v] : tuning_params ) {
|
||||||
auto ks = k->AsListVal()->Idx(0)->AsStringVal();
|
auto ks = k->AsListVal()->Idx(0)->AsStringVal();
|
||||||
|
auto ks_sv = ks->ToStdStringView();
|
||||||
auto vs = v->AsStringVal();
|
auto vs = v->AsStringVal();
|
||||||
std::string cmd = util::fmt("pragma %s = %s", ks->ToStdStringView().data(), vs->ToStdStringView().data());
|
auto vs_sv = vs->ToStdStringView();
|
||||||
|
std::string cmd = util::fmt("pragma %.*s = %.*s", static_cast<int>(ks_sv.size()), ks_sv.data(),
|
||||||
|
static_cast<int>(vs_sv.size()), vs_sv.data());
|
||||||
|
|
||||||
if ( int res = sqlite3_exec(db, cmd.c_str(), NULL, NULL, &errorMsg); res != SQLITE_OK ) {
|
if ( int res = sqlite3_exec(db, cmd.c_str(), NULL, NULL, &errorMsg); res != SQLITE_OK ) {
|
||||||
std::string err = util::fmt("Error executing tuning pragma statement: %s", errorMsg);
|
std::string err = util::fmt("Error executing tuning pragma statement: %s", errorMsg);
|
||||||
|
@ -92,7 +95,7 @@ OperationResult SQLite::DoOpen(OpenResultCallback* cb, RecordValPtr options) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for ( const auto& stmt : statements ) {
|
for ( const auto& stmt : statements ) {
|
||||||
sqlite3_stmt* ps;
|
sqlite3_stmt* ps;
|
||||||
if ( auto prep_res = CheckError(sqlite3_prepare_v2(db, stmt.c_str(), stmt.size(), &ps, NULL));
|
if ( auto prep_res = CheckError(sqlite3_prepare_v2(db, stmt.c_str(), static_cast<int>(stmt.size()), &ps, NULL));
|
||||||
prep_res.code != ReturnCode::SUCCESS ) {
|
prep_res.code != ReturnCode::SUCCESS ) {
|
||||||
Close(nullptr);
|
Close(nullptr);
|
||||||
return prep_res;
|
return prep_res;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue