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