diff options
| author | levlam <levlam@telegram.org> | 2022-10-05 18:24:19 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2022-10-05 18:24:19 +0300 |
| commit | c6c8fdcb108e16ebb5d1b43d38d41a20b1221977 (patch) | |
| tree | 3df934579e49c1449ed83a297e318f8b569b297f /tddb | |
| parent | 59acbf6d15a4c20066da92c574f93cbb4c54b8a5 (diff) | |
Improve SQLite logging.
Diffstat (limited to 'tddb')
| -rw-r--r-- | tddb/td/db/SqliteDb.cpp | 9 | ||||
| -rw-r--r-- | tddb/td/db/SqliteDb.h | 5 | ||||
| -rw-r--r-- | tddb/td/db/SqliteKeyValue.cpp | 2 | ||||
| -rw-r--r-- | tddb/td/db/SqliteStatement.cpp | 3 |
4 files changed, 11 insertions, 8 deletions
diff --git a/tddb/td/db/SqliteDb.cpp b/tddb/td/db/SqliteDb.cpp index 1b303f787..2ae37b7f9 100644 --- a/tddb/td/db/SqliteDb.cpp +++ b/tddb/td/db/SqliteDb.cpp @@ -125,14 +125,17 @@ Status SqliteDb::exec(CSlice cmd) { VLOG(sqlite) << "Start exec " << tag("query", cmd) << tag("database", raw_->db()); } auto rc = tdsqlite3_exec(raw_->db(), cmd.c_str(), nullptr, nullptr, &msg); - if (enable_logging_) { - VLOG(sqlite) << "Finish exec " << tag("query", cmd) << tag("database", raw_->db()); - } if (rc != SQLITE_OK) { CHECK(msg != nullptr); + if (enable_logging_) { + VLOG(sqlite) << "Finish exec with error " << msg; + } return Status::Error(PSLICE() << tag("query", cmd) << " to database \"" << raw_->path() << "\" failed: " << msg); } CHECK(msg == nullptr); + if (enable_logging_) { + VLOG(sqlite) << "Finish exec"; + } return Status::OK(); } diff --git a/tddb/td/db/SqliteDb.h b/tddb/td/db/SqliteDb.h index a8c730dec..899b02e4a 100644 --- a/tddb/td/db/SqliteDb.h +++ b/tddb/td/db/SqliteDb.h @@ -32,7 +32,7 @@ class SqliteDb { // dangerous SqliteDb clone() const { - return SqliteDb(raw_); + return SqliteDb(raw_, enable_logging_); } bool empty() const { @@ -77,7 +77,8 @@ class SqliteDb { optional<int32> get_cipher_version() const; private: - explicit SqliteDb(std::shared_ptr<detail::RawSqliteDb> raw) : raw_(std::move(raw)) { + SqliteDb(std::shared_ptr<detail::RawSqliteDb> raw, bool enable_logging) + : raw_(std::move(raw)), enable_logging_(enable_logging) { } std::shared_ptr<detail::RawSqliteDb> raw_; bool enable_logging_ = false; diff --git a/tddb/td/db/SqliteKeyValue.cpp b/tddb/td/db/SqliteKeyValue.cpp index 69f6da3e0..cee5994c5 100644 --- a/tddb/td/db/SqliteKeyValue.cpp +++ b/tddb/td/db/SqliteKeyValue.cpp @@ -75,7 +75,7 @@ string SqliteKeyValue::get(Slice key) { get_stmt_.bind_blob(1, key).ensure(); get_stmt_.step().ensure(); if (!get_stmt_.has_row()) { - return ""; + return string(); } auto data = get_stmt_.view_blob(0).str(); get_stmt_.step().ignore(); diff --git a/tddb/td/db/SqliteStatement.cpp b/tddb/td/db/SqliteStatement.cpp index f203edaa5..a2ae3833e 100644 --- a/tddb/td/db/SqliteStatement.cpp +++ b/tddb/td/db/SqliteStatement.cpp @@ -181,8 +181,7 @@ Status SqliteStatement::step() { VLOG(sqlite) << "Start step " << tag("query", tdsqlite3_sql(stmt_.get())) << tag("statement", stmt_.get()) << tag("database", db_.get()); auto rc = tdsqlite3_step(stmt_.get()); - VLOG(sqlite) << "Finish step " << tag("query", tdsqlite3_sql(stmt_.get())) << tag("statement", stmt_.get()) - << tag("database", db_.get()); + VLOG(sqlite) << "Finish step with response " << (rc == SQLITE_ROW ? "ROW" : (rc == SQLITE_DONE ? "DONE" : "ERROR")); if (rc == SQLITE_ROW) { state_ = State::GotRow; return Status::OK(); |
