From b3074c886ffba0e3b3da52de35b2961a1f3f0da7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <henrik@trineo.org>
Date: Wed, 25 Aug 2021 12:06:36 +0200
Subject: [PATCH] add add_insert_entity function

---
 src/CaosDB.jl      |  1 +
 src/Transaction.jl | 23 +++++++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/src/CaosDB.jl b/src/CaosDB.jl
index b81fd46..6208fd7 100644
--- a/src/CaosDB.jl
+++ b/src/CaosDB.jl
@@ -83,6 +83,7 @@ export has_errors, has_warnings
 # Exports from module Transaction
 export create_transaction,
     add_retrieve_by_id,
+    add_insert_entity,
     add_query,
     execute,
     get_result_set,
diff --git a/src/Transaction.jl b/src/Transaction.jl
index 2308048..4d88319 100644
--- a/src/Transaction.jl
+++ b/src/Transaction.jl
@@ -26,6 +26,7 @@ module Transaction
 export create_transaction,
     add_retrieve_by_id,
     add_query,
+    add_insert_entity,
     execute,
     get_result_set,
     get_count_result,
@@ -137,6 +138,28 @@ function add_retrieve_by_id(transaction::Ref{_Transaction}, id::AbstractString)
     CaosDB.Exceptions.evaluate_return_code(err_code)
 end
 
+"""
+    function add_insert_entity(transaction::Ref{_Transaction}, entity::Ref{_CaosDB.Entity.Entity})
+
+Add a sub-request to insert a single entity to the given `transaction`.
+
+!!! info
+
+    This does not execute the transaction.
+"""
+function add_insert_entity(transaction::Ref{_Transaction}, entity::Ref{CaosDB.Entity._Entity})
+
+    err_code = ccall(
+        (:caosdb_transaction_transaction_insert_entity, CaosDB.library_name),
+        Cint,
+        (Ref{_Transaction}, Ref{CaosDB.Entity._Entity}),
+        transaction,
+        entity,
+    )
+
+    CaosDB.Exceptions.evaluate_return_code(err_code)
+end
+
 """
     function add_retrieve_by_id(
         transaction::Ref{_Transaction},
-- 
GitLab