Skip to content
Snippets Groups Projects
Commit bd751023 authored by florian's avatar florian
Browse files

WIP: Add queries to Extern C

parent 65817626
No related branches found
No related tags found
3 merge requests!12F consolidation,!9Draft: API: remove UniqueResult, lower-case at, size for ResultSet,!8ENH: Add retrieval and queries to Extern C interface
Pipeline #11621 canceled
This commit is part of merge request !8. Comments created here will be created in the context of that merge request.
......@@ -251,6 +251,8 @@ int caosdb_transaction_transaction_retrieve_by_id(
caosdb_transaction_transaction *transaction, const char *id);
int caosdb_transaction_transaction_retrieve_by_ids(
caosdb_transaction_transaction *transaction, const char *ids[]);
int caosdb_transaction_transaction_query(
caosdb_transaction_transaction *transaction, const char *query);
int caosdb_transaction_transaction_execute(
caosdb_transaction_transaction *transaction);
// TODO(fspreck) execute_asynchronously may be added as a separate
......
......@@ -269,6 +269,7 @@ ERROR_RETURN_CODE(GENERIC_ERROR,
transaction->wrapped_transaction);
return wrapped_transaction->RetrieveById(std::string(id));
})
ERROR_RETURN_CODE(
GENERIC_ERROR,
int caosdb_transaction_transaction_retrieve_by_ids(
......@@ -284,6 +285,17 @@ ERROR_RETURN_CODE(
return wrapped_transaction->RetrieveById(str_ids.begin(), str_ids.end());
})
ERROR_RETURN_CODE(GENERIC_ERROR,
int caosdb_transaction_transaction_query(
caosdb_transaction_transaction *transaction,
const char *query),
{
auto *wrapped_transaction =
static_cast<caosdb::transaction::Transaction *>(
transaction->wrapped_transaction);
return wrapped_transaction->Query(std::string(query));
})
ERROR_RETURN_CODE(GENERIC_ERROR,
int caosdb_transaction_transaction_execute(
caosdb_transaction_transaction *transaction),
......
......@@ -108,3 +108,17 @@ TEST_F(test_ccaosdb, test_multi_retrieve) {
caosdb_transaction_transaction_retrieve_by_ids(&multi_transaction, ids));
EXPECT_EQ(return_code, 0);
}
TEST_F(test_ccaosdb, test_query) {
caosdb_connection_connection connection;
caosdb_connection_connection_manager_get_connection(&connection,
"local-caosdb-admin");
caosdb_transaction_transaction transaction;
caosdb_connection_connection_create_transaction(&connection,
&transaction);
int return_code(caosdb_transaction_transaction_query(
&transaction, "FIND ENTITY WITH id=123"));
EXPECT_EQ(return_code, 0);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment