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