Skip to content
Snippets Groups Projects
Commit d0713f6c authored by Timm Fitschen's avatar Timm Fitschen
Browse files

Merge branch 'f-mixed-write-transactions' into 'dev'

F mixed write transactions

See merge request !26
parents 2ce0e458 cb540be3
No related branches found
No related tags found
1 merge request!26F mixed write transactions
Pipeline #14307 failed
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
cmake_minimum_required(VERSION 3.13) cmake_minimum_required(VERSION 3.13)
set(libcaosdb_VERSION 0.0.18) set(libcaosdb_VERSION 0.0.19)
set(libcaosdb_COMPATIBLE_SERVER_VERSION_MAJOR 0) set(libcaosdb_COMPATIBLE_SERVER_VERSION_MAJOR 0)
set(libcaosdb_COMPATIBLE_SERVER_VERSION_MINOR 5) set(libcaosdb_COMPATIBLE_SERVER_VERSION_MINOR 5)
set(libcaosdb_COMPATIBLE_SERVER_VERSION_PATCH 0) set(libcaosdb_COMPATIBLE_SERVER_VERSION_PATCH 0)
......
...@@ -3,7 +3,7 @@ from conans import ConanFile, CMake, tools ...@@ -3,7 +3,7 @@ from conans import ConanFile, CMake, tools
class CaosdbConan(ConanFile): class CaosdbConan(ConanFile):
name = "caosdb" name = "caosdb"
version = "0.0.18" version = "0.0.19"
license = "AGPL-3.0-or-later" license = "AGPL-3.0-or-later"
author = "Timm C. Fitschen <t.fitschen@indiscale.com>" author = "Timm C. Fitschen <t.fitschen@indiscale.com>"
url = "https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git" url = "https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git"
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
} \ } \
switch (this->transaction_type) { \ switch (this->transaction_type) { \
case NONE: \ case NONE: \
this->transaction_type = TransactionType::DELETE; \ this->transaction_type = TransactionType::MIXED_WRITE; \
case DELETE: \ case DELETE: \
case MIXED_WRITE: \ case MIXED_WRITE: \
case MIXED_READ_AND_WRITE: \ case MIXED_READ_AND_WRITE: \
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
} \ } \
switch (this->transaction_type) { \ switch (this->transaction_type) { \
case NONE: \ case NONE: \
this->transaction_type = TransactionType::INSERT; \ this->transaction_type = TransactionType::MIXED_WRITE; \
case INSERT: \ case INSERT: \
case MIXED_WRITE: \ case MIXED_WRITE: \
case MIXED_READ_AND_WRITE: \ case MIXED_READ_AND_WRITE: \
...@@ -136,8 +136,8 @@ ...@@ -136,8 +136,8 @@
} \ } \
switch (this->transaction_type) { \ switch (this->transaction_type) { \
case NONE: \ case NONE: \
this->transaction_type = TransactionType::INSERT; \ this->transaction_type = TransactionType::MIXED_WRITE; \
case INSERT: \ case UPDATE: \
case MIXED_WRITE: \ case MIXED_WRITE: \
case MIXED_READ_AND_WRITE: \ case MIXED_READ_AND_WRITE: \
break; \ break; \
......
...@@ -157,7 +157,7 @@ auto Transaction::InsertEntity(Entity *entity) noexcept -> StatusCode { ...@@ -157,7 +157,7 @@ auto Transaction::InsertEntity(Entity *entity) noexcept -> StatusCode {
entity->SetFileTransmissionId(file_transmission_id); entity->SetFileTransmissionId(file_transmission_id);
upload_files.push_back(entity->GetFileDescriptor()); upload_files.push_back(entity->GetFileDescriptor());
} }
this->status = TransactionStatus::READY(); this->status = TransactionStatus::GO_ON();
return this->status.GetCode(); return this->status.GetCode();
} }
...@@ -174,7 +174,7 @@ auto Transaction::UpdateEntity(Entity *entity) noexcept -> StatusCode { ...@@ -174,7 +174,7 @@ auto Transaction::UpdateEntity(Entity *entity) noexcept -> StatusCode {
entity->SetFileTransmissionId(file_transmission_id); entity->SetFileTransmissionId(file_transmission_id);
upload_files.push_back(entity->GetFileDescriptor()); upload_files.push_back(entity->GetFileDescriptor());
} }
this->status = TransactionStatus::READY(); this->status = TransactionStatus::GO_ON();
return this->status.GetCode(); return this->status.GetCode();
} }
...@@ -193,12 +193,6 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { // NOLINT ...@@ -193,12 +193,6 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { // NOLINT
return StatusCode::TRANSACTION_STATUS_ERROR; return StatusCode::TRANSACTION_STATUS_ERROR;
} }
switch (this->transaction_type) { switch (this->transaction_type) {
case MIXED_WRITE:
CAOSDB_LOG_ERROR_AND_RETURN_STATUS(
logger_name, StatusCode::UNSUPPORTED_FEATURE,
"MIXED_WRITE UNSUPPORTED: The current implementation does not support "
"mixed write transactions (containing insertions, deletions, and updates "
"in one transaction).")
case MIXED_READ_AND_WRITE: case MIXED_READ_AND_WRITE:
CAOSDB_LOG_ERROR_AND_RETURN_STATUS( CAOSDB_LOG_ERROR_AND_RETURN_STATUS(
logger_name, StatusCode::UNSUPPORTED_FEATURE, logger_name, StatusCode::UNSUPPORTED_FEATURE,
......
...@@ -987,8 +987,7 @@ TEST_F(test_ccaosdb, test_insert_update_delete) { ...@@ -987,8 +987,7 @@ TEST_F(test_ccaosdb, test_insert_update_delete) {
caosdb_entity_entity_set_file_path(&entity, "some_name"); caosdb_entity_entity_set_file_path(&entity, "some_name");
auto return_code = caosdb_transaction_transaction_insert_entity(&insert_transaction, &entity); auto return_code = caosdb_transaction_transaction_insert_entity(&insert_transaction, &entity);
// For now, nothing further can be done here, so it should be READY EXPECT_EQ(return_code, caosdb::StatusCode::GO_ON);
EXPECT_EQ(return_code, caosdb::StatusCode::READY);
caosdb_transaction_transaction update_transaction; caosdb_transaction_transaction update_transaction;
caosdb_connection_connection_create_transaction(&connection, &update_transaction); caosdb_connection_connection_create_transaction(&connection, &update_transaction);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment