From ffa9e700a0868937f8ba87619f6573eb3ab72926 Mon Sep 17 00:00:00 2001
From: florian <f.spreckelsen@inidscale.com>
Date: Mon, 9 Aug 2021 17:26:37 +0200
Subject: [PATCH] WIP: Implement result sets and count results

---
 include/ccaosdb.h |  3 +++
 src/ccaosdb.cpp   | 25 +++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/include/ccaosdb.h b/include/ccaosdb.h
index fb21d00..9dd1f03 100644
--- a/include/ccaosdb.h
+++ b/include/ccaosdb.h
@@ -266,6 +266,9 @@ int caosdb_transaction_transaction_get_result_set(
   caosdb_transaction_transaction *transaction,
   caosdb_transaction_result_set *out);
 
+int caosdb_transaction_transaction_get_count_result(
+  caosdb_transaction_transaction *transaction, long *out);
+
 typedef struct {
   void *wrapped_entity;
   char **id;
diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp
index e847f61..c86231c 100644
--- a/src/ccaosdb.cpp
+++ b/src/ccaosdb.cpp
@@ -306,4 +306,29 @@ ERROR_RETURN_CODE(GENERIC_ERROR,
                     wrapped_transaction->Execute();
                     return 0;
                   })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_transaction_transaction_get_result_set(
+                    caosdb_transaction_transaction *transaction,
+                    caosdb_transaction_result_set *out),
+                  {
+                    auto *wrapped_transaction =
+                      static_cast<caosdb::transaction::Transaction *>(
+                        transaction->wrapped_transaction);
+                    out->wrapped_result_set =
+                      (void *)(&(wrapped_transaction->GetResultSet()));
+                    return 0;
+                  })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_transaction_transaction_get_count_result(
+                    caosdb_transaction_transaction *transaction, long *out),
+                  {
+                    auto *wrapped_transaction =
+                      static_cast<caosdb::transaction::Transaction *>(
+                        transaction->wrapped_transaction);
+                    long cr(wrapped_transaction->GetCountResult());
+                    *out = cr;
+                    return 0;
+                  })
 }
-- 
GitLab