From d5818c1668827996525e9298e63e644d4f2ea988 Mon Sep 17 00:00:00 2001 From: florian <f.spreckelsen@inidscale.com> Date: Fri, 6 Aug 2021 10:26:28 +0200 Subject: [PATCH] WIP: Add query_count to Transaction class --- include/caosdb/transaction.h | 12 ++++++++++++ src/caosdb/transaction.cpp | 1 + 2 files changed, 13 insertions(+) diff --git a/include/caosdb/transaction.h b/include/caosdb/transaction.h index ddf7133..c04e38b 100644 --- a/include/caosdb/transaction.h +++ b/include/caosdb/transaction.h @@ -368,6 +368,17 @@ public: return *result_set; } + /** + * Return the result of a count query + * + * Only meaningful if there was exactly one COUNT query executed in + * this transaction. In all other cases, the return value will be + * -1. + */ + [[nodiscard]] inline auto GetCountResult() const -> int { + return query_count; + } + /** * Return the number of sub-requests in this transaction. * @@ -394,6 +405,7 @@ private: MultiTransactionRequest *request; mutable MultiTransactionResponse *response; std::string error_message; + int query_count; }; template <class InputIterator> diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp index 334d8f7..1b19925 100644 --- a/src/caosdb/transaction.cpp +++ b/src/caosdb/transaction.cpp @@ -166,6 +166,7 @@ Transaction::Transaction( response(google::protobuf::Arena::CreateMessage<MultiTransactionResponse>( get_arena())) { this->service_stub = std::move(service_stub); + this->query_count = -1; } auto Transaction::RetrieveById(const std::string &id) noexcept -> StatusCode { -- GitLab