Greetings RocksDB community,
Part-time lurker, first-time contributor.
Background
We are leveraging RocksDB on Windows platforms in managed (C#) via the RocksDBSharp application library. That library exposes much of the essential RocksDB functionality.
Problem
However, ExportColumnFamily() and CreateColumnFamilyWithImport() methods are not exposed in the public C-style API; therefore, they cannot be leveraged by non-native applications, such as exposed in the RocksDB-Sharp application/wrapper (for managed C# use). These methods would be extremely useful, if not essential, for our purposes.
Proposed Changes
We'd like to see the ExportColumnFamily() and CreateColumnFamilyWithImport() methods exposed in the public C-style API. For proper usage, by any external calling application, this will require additional support functions (especially to facilitate marshalling of LiveFileMetadata structure and the ImportColumnFamilyOptions classes/structs via properties and objects from native to C# applications and back) to be implemented and exposed in the RocksDB public API.
Proof of Concept
We have prototyped the working RocksDB fork/build with changes to the public API (primarily, c.h and c.cc files) on Windows (and VS2022) to expose the ExportColumnFamily() and CreateColumnFamilyWithImport() methods. Unit tests are still in development and feedback from the community will need to take place (which is starting with this missive).
What does the community think about this Feature Request? Is it worthwhile?