a bug fix, reorganization and 0.5.1
Some checks failed
Main LMDBAL workfow / Archlinux (push) Failing after 38s
Some checks failed
Main LMDBAL workfow / Archlinux (push) Failing after 38s
This commit is contained in:
parent
6b348023bb
commit
0079f6e96e
@ -1,10 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## LMDBAL 0.5.1 (UNRELEASED)
|
||||
## LMDBAL 0.5.1 (October 21, 2023)
|
||||
### Improvements
|
||||
- RAII transactions
|
||||
- reduced overhead for private transaction finctions
|
||||
|
||||
### Bug fixes
|
||||
- bug fix with cache fallthough
|
||||
|
||||
## LMDBAL 0.5.0 (October 15, 2023)
|
||||
### New Features
|
||||
- duplicates support (only for table)
|
||||
|
@ -74,10 +74,7 @@ if (BUILD_TESTS)
|
||||
add_subdirectory(test)
|
||||
endif ()
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>"
|
||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_LOW}>"
|
||||
)
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_LOW}>")
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${Qt${QT_VERSION_MAJOR}_INCLUDE_DIRS})
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE ${Qt${QT_VERSION_MAJOR}Core_INCLUDE_DIRS})
|
||||
|
||||
|
@ -14,25 +14,13 @@ set(HEADERS
|
||||
cursor.hpp
|
||||
cache.h
|
||||
cache.hpp
|
||||
serializer.h
|
||||
serializer.hpp
|
||||
serializer_uint8.hpp
|
||||
serializer_uint16.hpp
|
||||
serializer_uint32.hpp
|
||||
serializer_uint64.hpp
|
||||
serializer_int8.hpp
|
||||
serializer_int16.hpp
|
||||
serializer_int32.hpp
|
||||
serializer_int64.hpp
|
||||
serializer_float.hpp
|
||||
serializer_double.hpp
|
||||
serializer_stdstring.hpp
|
||||
serializer_qstring.hpp
|
||||
serializer_qbytearray.hpp
|
||||
operators.hpp
|
||||
transaction.h
|
||||
)
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${SOURCES})
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
|
||||
|
||||
add_subdirectory(serializer)
|
||||
|
||||
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_LOW})
|
||||
|
@ -841,27 +841,23 @@ void LMDBAL::Cache<K, V>::handleTransactionEntry(const Entry& entry) {
|
||||
std::pair<K, V>* pair = static_cast<std::pair<K, V>*>(entry.second);
|
||||
handleAddRecord(pair->first, pair->second);
|
||||
delete pair;
|
||||
}
|
||||
break;
|
||||
} break;
|
||||
case Operation::remove: {
|
||||
K* key = static_cast<K*>(entry.second);
|
||||
handleRemoveRecord(*key);
|
||||
delete key;
|
||||
}
|
||||
|
||||
break;
|
||||
} break;
|
||||
case Operation::change: {
|
||||
std::pair<K, V>* pair = static_cast<std::pair<K, V>*>(entry.second);
|
||||
handleChangeRecord(pair->first, pair->second);
|
||||
delete pair;
|
||||
}
|
||||
} break;
|
||||
case Operation::force: {
|
||||
std::tuple<bool, K, V>* tuple = static_cast<std::tuple<bool, K, V>*>(entry.second);
|
||||
const std::tuple<bool, K, V>& t = *tuple;
|
||||
handleForceRecord(std::get<1>(t), std::get<2>(t), std::get<0>(t));
|
||||
delete tuple;
|
||||
}
|
||||
break;
|
||||
} break;
|
||||
case Operation::drop:
|
||||
handleDrop();
|
||||
break;
|
||||
@ -873,8 +869,7 @@ void LMDBAL::Cache<K, V>::handleTransactionEntry(const Entry& entry) {
|
||||
const std::tuple<bool, SizeType, std::map<K, V>>& t = * tuple;
|
||||
handleAddRecords(std::get<2>(t), std::get<0>(t), std::get<1>(t));
|
||||
delete tuple;
|
||||
}
|
||||
break;
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
|
21
src/serializer/CMakeLists.txt
Normal file
21
src/serializer/CMakeLists.txt
Normal file
@ -0,0 +1,21 @@
|
||||
set(HEADERS
|
||||
serializer.h
|
||||
serializer.hpp
|
||||
serializer_uint8.hpp
|
||||
serializer_uint16.hpp
|
||||
serializer_uint32.hpp
|
||||
serializer_uint64.hpp
|
||||
serializer_int8.hpp
|
||||
serializer_int16.hpp
|
||||
serializer_int32.hpp
|
||||
serializer_int64.hpp
|
||||
serializer_float.hpp
|
||||
serializer_double.hpp
|
||||
serializer_stdstring.hpp
|
||||
serializer_qstring.hpp
|
||||
serializer_qbytearray.hpp
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>")
|
||||
|
||||
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_LOW})
|
@ -12,7 +12,7 @@ add_executable(runUnitTests
|
||||
duplicates.cpp
|
||||
)
|
||||
|
||||
target_compile_options(runUnitTests PRIVATE -fPIC)
|
||||
target_compile_options(runUnitTests PRIVATE -fPIC -Wall -Wextra -O0)
|
||||
|
||||
target_include_directories(runUnitTests PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||
target_include_directories(runUnitTests PRIVATE ${Qt${QT_VERSION_MAJOR}_INCLUDE_DIRS})
|
||||
|
@ -181,6 +181,7 @@ TEST_F(StorageTransactionsTest, ConcurentModification) {
|
||||
|
||||
int pid = fork();
|
||||
if (pid == 0) { // I am the child
|
||||
usleep(1);
|
||||
std::cout << "beggining second transaction" << std::endl;
|
||||
LMDBAL::WriteTransaction txn2 = db->beginTransaction(); //<--- this is where the execution should pause
|
||||
//and wait for the first transaction to get finished
|
||||
@ -233,6 +234,7 @@ TEST_F(StorageTransactionsTest, RAIIResourceFree) {
|
||||
|
||||
int pid = fork();
|
||||
if (pid == 0) { // I am the child
|
||||
usleep(1);
|
||||
std::cout << "beggining child transaction" << std::endl;
|
||||
LMDBAL::WriteTransaction txn2 = db->beginTransaction(); //<--- this is where the execution should pause
|
||||
//and wait for the first transaction to get finished
|
||||
|
Loading…
Reference in New Issue
Block a user