Version 6.0.0
-
new
Local_Connection
class for local serverless concurrent access to a file. -
SHA-256 is used to compare the client database with the server database at connection time. This prevents pulling into the wrong file. This also allows making offline modifications to a local database, and pushing them later to a remote server.
-
Re-organize file classes:
File_Slice
is removed. All file classes can be sliced now.Stream_File
uses astd::streambuf
instead ofstd::iostream
.- new
Interpreted_File
can read joedbi commands directly.
-
Exception-safe transactions: if any exception is thrown by a client while writing, then none of what was written since the previous lock-pull will be pushed to the server. The previous approach, based on a Lock object, was defective and is not available any more.
-
New approach to vector updates that allows testing for write errors (previous version wrote data in a destructor, which does not allow testing for errors).
-
Databases must be explictly checkpointed before destruction. The destructor won't checkpoint any more, because this would risk checkpointing a failed buffer flush, and because write errors cannot be handled properly in destructors.
-
Minor fixes and improvements.