diff --git a/CMakeLists.txt b/CMakeLists.txt index 8fa673ca1d1245a4e4d32d0fbf0d6bc50ba6a552..1b7f3e99d817b448769f8710ffe7f4347b869ca5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ 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_MINOR 5) set(libcaosdb_COMPATIBLE_SERVER_VERSION_PATCH 0) diff --git a/conanfile.py b/conanfile.py index a3d555f87e999937b25733a9e5e5a3d2807b75ad..024be53f48d65d88ed25c93e57ac8ebe9a9f4ce8 100644 --- a/conanfile.py +++ b/conanfile.py @@ -3,7 +3,7 @@ from conans import ConanFile, CMake, tools class CaosdbConan(ConanFile): name = "caosdb" - version = "0.0.18" + version = "0.0.19" license = "AGPL-3.0-or-later" author = "Timm C. Fitschen <t.fitschen@indiscale.com>" url = "https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git" diff --git a/include/caosdb/transaction.h b/include/caosdb/transaction.h index 68040dc663a378e58840281acfd3f8a659881bc8..634c7a0d01b613e4fb6ad4d56e037693d9abc2c2 100644 --- a/include/caosdb/transaction.h +++ b/include/caosdb/transaction.h @@ -92,7 +92,7 @@ } \ switch (this->transaction_type) { \ case NONE: \ - this->transaction_type = TransactionType::DELETE; \ + this->transaction_type = TransactionType::MIXED_WRITE; \ case DELETE: \ case MIXED_WRITE: \ case MIXED_READ_AND_WRITE: \ @@ -114,7 +114,7 @@ } \ switch (this->transaction_type) { \ case NONE: \ - this->transaction_type = TransactionType::INSERT; \ + this->transaction_type = TransactionType::MIXED_WRITE; \ case INSERT: \ case MIXED_WRITE: \ case MIXED_READ_AND_WRITE: \ @@ -136,8 +136,8 @@ } \ switch (this->transaction_type) { \ case NONE: \ - this->transaction_type = TransactionType::INSERT; \ - case INSERT: \ + this->transaction_type = TransactionType::MIXED_WRITE; \ + case UPDATE: \ case MIXED_WRITE: \ case MIXED_READ_AND_WRITE: \ break; \ diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp index 6380dcdde6f845ae4507328d5ccb073d82942b06..002d20d792b49bfb88b160cb39e7d8a8e6a5bd01 100644 --- a/src/caosdb/transaction.cpp +++ b/src/caosdb/transaction.cpp @@ -157,7 +157,7 @@ auto Transaction::InsertEntity(Entity *entity) noexcept -> StatusCode { entity->SetFileTransmissionId(file_transmission_id); upload_files.push_back(entity->GetFileDescriptor()); } - this->status = TransactionStatus::READY(); + this->status = TransactionStatus::GO_ON(); return this->status.GetCode(); } @@ -174,7 +174,7 @@ auto Transaction::UpdateEntity(Entity *entity) noexcept -> StatusCode { entity->SetFileTransmissionId(file_transmission_id); upload_files.push_back(entity->GetFileDescriptor()); } - this->status = TransactionStatus::READY(); + this->status = TransactionStatus::GO_ON(); return this->status.GetCode(); } @@ -193,12 +193,6 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { // NOLINT return StatusCode::TRANSACTION_STATUS_ERROR; } 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: CAOSDB_LOG_ERROR_AND_RETURN_STATUS( logger_name, StatusCode::UNSUPPORTED_FEATURE, diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp index 41a0b9bbcda73145dbc777ddbe43ebcafffe7555..1059f161525d513389efd4df95cdd04ec5a088db 100644 --- a/test/test_ccaosdb.cpp +++ b/test/test_ccaosdb.cpp @@ -987,8 +987,7 @@ TEST_F(test_ccaosdb, test_insert_update_delete) { caosdb_entity_entity_set_file_path(&entity, "some_name"); 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::READY); + EXPECT_EQ(return_code, caosdb::StatusCode::GO_ON); caosdb_transaction_transaction update_transaction; caosdb_connection_connection_create_transaction(&connection, &update_transaction);