This repository was archived by the owner on Jan 21, 2026. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed
Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 77// Use of this source code is governed by a BSD-style license that can be
88// found in the LICENSE file. See the AUTHORS file for names of contributors.
99
10+ #define ROCKSDB_C_API_IMPLEMENTATION
11+
1012#include " rocksdb/c.h"
1113
1214#include < cstdlib>
@@ -136,6 +138,7 @@ using std::unordered_set;
136138using std::vector;
137139
138140extern " C" {
141+ using rocksdb_slice_t = Slice;
139142
140143struct rocksdb_t {
141144 DB* rep;
@@ -1954,6 +1957,19 @@ void rocksdb_iter_get_error(const rocksdb_iterator_t* iter, char** errptr) {
19541957 SaveError (errptr, iter->rep ->status ());
19551958}
19561959
1960+ ROCKSDB_LIBRARY_API
1961+ rocksdb_slice_t rocksdb_iter_key_fast (const rocksdb_iterator_t * iter) {
1962+ return iter->rep ->key ();
1963+ }
1964+ ROCKSDB_LIBRARY_API
1965+ rocksdb_slice_t rocksdb_iter_value_fast (const rocksdb_iterator_t * iter) {
1966+ return iter->rep ->value ();
1967+ }
1968+ ROCKSDB_LIBRARY_API
1969+ rocksdb_slice_t rocksdb_iter_timestamp_fast (const rocksdb_iterator_t * iter) {
1970+ return iter->rep ->timestamp ();
1971+ }
1972+
19571973rocksdb_writebatch_t * rocksdb_writebatch_create () {
19581974 return new rocksdb_writebatch_t ;
19591975}
Original file line number Diff line number Diff line change @@ -142,6 +142,14 @@ typedef struct rocksdb_statistics_histogram_data_t
142142typedef struct rocksdb_wait_for_compact_options_t
143143 rocksdb_wait_for_compact_options_t ;
144144
145+ #if !defined(ROCKSDB_C_API_IMPLEMENTATION )
146+ struct rocksdb_slice_t {
147+ const char * data ;
148+ size_t size ;
149+ };
150+ typedef struct rocksdb_slice_t rocksdb_slice_t ;
151+ #endif
152+
145153/* DB operations */
146154
147155extern ROCKSDB_LIBRARY_API rocksdb_t * rocksdb_open (
@@ -728,6 +736,15 @@ extern ROCKSDB_LIBRARY_API const char* rocksdb_iter_timestamp(
728736extern ROCKSDB_LIBRARY_API void rocksdb_iter_get_error (
729737 const rocksdb_iterator_t * , char * * errptr );
730738
739+ #if !defined(ROCKSDB_C_API_IMPLEMENTATION )
740+ extern ROCKSDB_LIBRARY_API rocksdb_slice_t rocksdb_iter_key_fast (
741+ const rocksdb_iterator_t * );
742+ extern ROCKSDB_LIBRARY_API rocksdb_slice_t rocksdb_iter_value_fast (
743+ const rocksdb_iterator_t * );
744+ extern ROCKSDB_LIBRARY_API rocksdb_slice_t rocksdb_iter_timestamp_fast (
745+ const rocksdb_iterator_t * );
746+ #endif
747+
731748extern ROCKSDB_LIBRARY_API void rocksdb_wal_iter_next (
732749 rocksdb_wal_iterator_t * iter );
733750extern ROCKSDB_LIBRARY_API unsigned char rocksdb_wal_iter_valid (
You can’t perform that action at this time.
0 commit comments