diff --git a/src/CaosDB.jl b/src/CaosDB.jl index e08fbbfaba36b7e39f83e67690912a295bbe6769..726f01c9955a2f850e6d6b457f4fe61a3ef014bb 100644 --- a/src/CaosDB.jl +++ b/src/CaosDB.jl @@ -85,6 +85,7 @@ export create_transaction, add_retrieve_by_id, add_insert_entity, add_update_entity, + add_delete_by_id, add_query, execute, get_result_set, diff --git a/src/Transaction.jl b/src/Transaction.jl index 24e223fb6872c38438b5f653373ffb0945b43b5b..80bf3df0d43b031c62a039b738c0a8345a5bf050 100644 --- a/src/Transaction.jl +++ b/src/Transaction.jl @@ -28,6 +28,7 @@ export create_transaction, add_query, add_insert_entity, add_update_entity, + add_delete_by_id, execute, get_result_set, get_count_result, @@ -181,6 +182,27 @@ function add_update_entity(transaction::Ref{_Transaction}, entity::Ref{CaosDB.En CaosDB.Exceptions.evaluate_return_code(err_code) end +""" + function add_delete_by_id(transaction::Ref{_Transaction}, id::AbstractString) + +Add a sub-request to delete a single entity to the given `transaction`. + +!!! info + + This does not execute the transaction. +""" +function add_delete_by_id(transaction::Ref{_Transaction}, id::AbstractString) + + err_code = ccall( + (:caosdb_transaction_transaction_delete_by_id, CaosDB.library_name), + Cint, + (Ref{_Transaction}, Cstring), + transaction, + id, + ) + + CaosDB.Exceptions.evaluate_return_code(err_code) +end """ function add_retrieve_by_id(