aboutsummaryrefslogtreecommitdiffhomepage
path: root/tddb
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2022-10-05 18:24:19 +0300
committerlevlam <levlam@telegram.org>2022-10-05 18:24:19 +0300
commitc6c8fdcb108e16ebb5d1b43d38d41a20b1221977 (patch)
tree3df934579e49c1449ed83a297e318f8b569b297f /tddb
parent59acbf6d15a4c20066da92c574f93cbb4c54b8a5 (diff)
Improve SQLite logging.
Diffstat (limited to 'tddb')
-rw-r--r--tddb/td/db/SqliteDb.cpp9
-rw-r--r--tddb/td/db/SqliteDb.h5
-rw-r--r--tddb/td/db/SqliteKeyValue.cpp2
-rw-r--r--tddb/td/db/SqliteStatement.cpp3
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();