From c61f55e090c99ccd1caa2fca2f0ad3b95cac02ec Mon Sep 17 00:00:00 2001 From: ltagliamonte-dd Date: Thu, 3 Apr 2025 06:23:29 -0700 Subject: [PATCH 1/2] add rocksdb_sstfilewriter_create_with_column_family_handle --- c.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/c.h b/c.h index f2616ea..ff077eb 100644 --- a/c.h +++ b/c.h @@ -2305,6 +2305,10 @@ extern ROCKSDB_LIBRARY_API rocksdb_sstfilewriter_t* rocksdb_sstfilewriter_create_with_comparator( const rocksdb_envoptions_t* env, const rocksdb_options_t* io_options, const rocksdb_comparator_t* comparator); +extern ROCKSDB_LIBRARY_API rocksdb_sstfilewriter_t* +rocksdb_sstfilewriter_create_with_column_family_handle( + const rocksdb_envoptions_t *env, const rocksdb_options_t *io_options, + const rocksdb_column_family_handle_t *handle); extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_open( rocksdb_sstfilewriter_t* writer, const char* name, char** errptr); extern ROCKSDB_LIBRARY_API void rocksdb_sstfilewriter_add( From c8fd90c2e451ee199d28073493d566ab835b6e9e Mon Sep 17 00:00:00 2001 From: ltagliamonte-dd Date: Thu, 3 Apr 2025 06:44:47 -0700 Subject: [PATCH 2/2] add go binding --- sst_file_writer.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sst_file_writer.go b/sst_file_writer.go index 96d6ecd..6c78483 100644 --- a/sst_file_writer.go +++ b/sst_file_writer.go @@ -33,6 +33,19 @@ func NewSSTFileWriterWithNativeComparator(opts *EnvOptions, dbOpts *Options, cmp return &SSTFileWriter{c: c} } +// NewSSTFileWriterWithCFHandle creates an SSTFileWriter object with column family handle. +func NewSSTFileWriterWithCFHandle(opts *EnvOptions, dbOpts *Options, cfh *ColumnFamilyHandle) *SSTFileWriter { + cfh_ := unsafe.Pointer(cfh.c) + return NewSSTFileWriterWithNativeCFHandle(opts, dbOpts, cfh_) +} + +// NewSSTFileWriterWithNativeCFHandle creates an SSTFileWriter object with native column family handle. +func NewSSTFileWriterWithNativeCFHandle(opts *EnvOptions, dbOpts *Options, cfh unsafe.Pointer) *SSTFileWriter { + cfh_ := (*C.rocksdb_column_family_handle_t)(cfh) + c := C.rocksdb_sstfilewriter_create_with_column_family_handle(opts.c, dbOpts.c, cfh_) + return &SSTFileWriter{c: c} +} + // Open prepares SstFileWriter to write into file located at "path". func (w *SSTFileWriter) Open(path string) (err error) { var (