diff --git a/sqlitecluster/SQLite.cpp b/sqlitecluster/SQLite.cpp index 85e0709c0..377f23390 100644 --- a/sqlitecluster/SQLite.cpp +++ b/sqlitecluster/SQLite.cpp @@ -1519,6 +1519,11 @@ uint64_t SQLite::getDBCountAtStart() const return _dbCountAtStart; } +int64_t SQLite::getReadQueryCount() const +{ + return _readQueryCount; +} + void SQLite::setCommitEnabled(bool enable) { _sharedData.setCommitEnabled(enable); diff --git a/sqlitecluster/SQLite.h b/sqlitecluster/SQLite.h index 0a8c9c3a5..5107a54dc 100644 --- a/sqlitecluster/SQLite.h +++ b/sqlitecluster/SQLite.h @@ -328,6 +328,17 @@ class SQLite { // public read-only accessor for _dbCountAtStart. uint64_t getDBCountAtStart() const; + // Read-only accessor for the number of read queries attempted in the current transaction (metrics/tests only). + int64_t getReadQueryCount() const; + +protected: + // For subclasses that override read() to record a read against the shared counter. + void incrementReadQueryCount() const + { + _readQueryCount++; + } + +public: int64_t getLastConflictIdentifier() const; string getLastConflictLocation() const; diff --git a/test/lib/RemoteSQLite.cpp b/test/lib/RemoteSQLite.cpp index 1cfb9095d..c9b6ae4f5 100644 --- a/test/lib/RemoteSQLite.cpp +++ b/test/lib/RemoteSQLite.cpp @@ -35,6 +35,7 @@ bool RemoteSQLite::_runRemoteQuery(const string& query, const map& params, SQResult& result, bool skipInfoWarn) const { + incrementReadQueryCount(); return _runRemoteQuery(query, params, result); } string RemoteSQLite::read(const string& query, const map& params) const { + incrementReadQueryCount(); SQResult result; if (!_runRemoteQuery(query, params, result)) { return "";