* expose memtable flush
This can be used to avoid log replays on startup, for example
* Add flush to RocksDbReadWriteRef.
* Remove atomic flush default.
---------
Co-authored-by: bhartnett <51288821+bhartnett@users.noreply.github.com>
* Add support for optimistic transaction db.
* Add keyMayExist to RocksDbRef.
* Add support for write batch with index.
* Allow empty keys to be used in API.
* Revert some changes from prior PR https://github.com/status-im/nim-rocksdb/pull/48 which enable memory leak of options when not cleaned up manually.
* Clean up, add more tests and use correct free function for listColumnFamilies.
* Close opt types when opening database fails.
* Add autoClose flag to each opt type.
* Finish autoClose changes to prevent memory leaks.
* Refactor API to pass in column family handle instead of string.
* Check for unknown column family in getColFamilyHandle and update tests.
* Update column family function names. Remove redundant exists check.
* Expose function for listing existing column families
* Free CF list after use
* Update, fix error case
* Rename listRocksDbCFs -> listColumnFamilies
* Need to free each item separately
* Handle default option objects, close after use
* Column families support (#34)
* Update library to support column families. If not specified, uses the 'default' column family.
* Added tests for column family changes.
* Update library version and readme.
* Updated the librocksdb c library to the latest stable version.
* Started rewrite of library.
* Commit library rewrite progress.
* Completed initial rewrite and refactored tests.
* Completed implementation of backup engine.
* Added tests for new types.
* Completed tests for existing features.
* Remove features not supported by older versions of RocksDB to fix CI (temporary fix).
* Remove flush before backup support from BackupEngine to fix CI.
* Transactions support (#36)
* Update library to support column families. If not specified, uses the 'default' column family.
* Added tests for column family changes.
* Update library version and readme.
* Updated the librocksdb c library to the latest stable version.
* Started rewrite of library.
* Commit library rewrite progress.
* Completed initial rewrite and refactored tests.
* Completed implementation of backup engine.
* Added tests for new types.
* Completed tests for existing features.
* Remove features not supported by older versions of RocksDB to fix CI (temporary fix).
* Remove flush before backup support from BackupEngine to fix CI.
* Implemented RocksDB iterator.
* Implemented pairs iterator.
* Completed implementation of WriteBatch with tests.
* Fix example code.
* Completed implementation of TransactionDb.
* Support setting default column family.
* Remove unneeded usage of var for ref type parameters.
* Completed transactiondb tests.
* Improve and refactor rocksdb test.
* Added support for ingesting sst files using the SstFileWriter. (#37)
* Create ColFamilyReadOnly and ColFamilyReadWrite types for using a specific column family.
* Use inline pragma for small procs and add lock to RocksDbRef type close to prevent double free.
* Added documentation for the public API.
* Initial implementation of sst filewriter.
* Added tests for sstfilewriter.
* Documentation minor improvements.