@nxtedition/rocksdb 7.1.32 → 7.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +402 -345
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +121 -64
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +28 -18
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +1 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +2 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +2 -1
- package/deps/rocksdb/rocksdb/db/c.cc +563 -673
- package/deps/rocksdb/rocksdb/db/c_test.c +168 -169
- package/deps/rocksdb/rocksdb/db/column_family.cc +16 -15
- package/deps/rocksdb/rocksdb/db/column_family.h +7 -7
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +17 -28
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +8 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +114 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/convenience.cc +3 -5
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +10 -14
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +9 -13
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +52 -72
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +12 -12
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +1 -2
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +1 -12
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +3 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +26 -0
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +12 -6
- package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +6 -7
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +10 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +15 -13
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +2 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +7 -4
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +8 -6
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +18 -23
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/db_test.cc +10 -5
- package/deps/rocksdb/rocksdb/db/db_test2.cc +172 -169
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +68 -66
- package/deps/rocksdb/rocksdb/db/db_test_util.h +1 -3
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +31 -39
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +182 -2
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +43 -40
- package/deps/rocksdb/rocksdb/db/dbformat.h +15 -0
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +35 -34
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +10 -11
- package/deps/rocksdb/rocksdb/db/error_handler.cc +6 -6
- package/deps/rocksdb/rocksdb/db/error_handler.h +93 -94
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -1
- package/deps/rocksdb/rocksdb/db/event_helpers.h +3 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +16 -17
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -0
- package/deps/rocksdb/rocksdb/db/file_indexer.h +2 -1
- package/deps/rocksdb/rocksdb/db/file_indexer_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/filename_test.cc +27 -29
- package/deps/rocksdb/rocksdb/db/flush_job.cc +7 -13
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +15 -21
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +7 -6
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +2 -2
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +59 -14
- package/deps/rocksdb/rocksdb/db/internal_stats.h +27 -11
- package/deps/rocksdb/rocksdb/db/job_context.h +5 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +21 -23
- package/deps/rocksdb/rocksdb/db/log_reader.cc +7 -11
- package/deps/rocksdb/rocksdb/db/log_reader.h +4 -6
- package/deps/rocksdb/rocksdb/db/log_test.cc +6 -12
- package/deps/rocksdb/rocksdb/db/log_writer.h +1 -1
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +0 -1
- package/deps/rocksdb/rocksdb/db/lookup_key.h +4 -1
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -1
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/memtable.cc +34 -22
- package/deps/rocksdb/rocksdb/db/memtable.h +4 -6
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +7 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +37 -13
- package/deps/rocksdb/rocksdb/db/merge_context.h +1 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +128 -14
- package/deps/rocksdb/rocksdb/db/merge_helper.h +15 -7
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +5 -6
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +55 -43
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +288 -299
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +22 -27
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +1 -1
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +7 -8
- package/deps/rocksdb/rocksdb/db/repair_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/snapshot_impl.cc +4 -5
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +10 -4
- package/deps/rocksdb/rocksdb/db/table_cache.cc +3 -4
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +6 -7
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +22 -22
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +12 -12
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +6 -8
- package/deps/rocksdb/rocksdb/db/trim_history_scheduler.h +2 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/version_edit.cc +2 -5
- package/deps/rocksdb/rocksdb/db/version_edit.h +8 -12
- package/deps/rocksdb/rocksdb/db/version_set.cc +74 -102
- package/deps/rocksdb/rocksdb/db/version_set.h +8 -10
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +0 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -45
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +6 -5
- package/deps/rocksdb/rocksdb/db/wal_manager.h +2 -2
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +144 -61
- package/deps/rocksdb/rocksdb/db/write_batch.cc +41 -24
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +2 -7
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +105 -104
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/write_controller.h +1 -0
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/write_thread.cc +8 -6
- package/deps/rocksdb/rocksdb/env/io_posix.h +6 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +134 -65
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +29 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +1 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +14 -4
- package/deps/rocksdb/rocksdb/table/get_context.cc +52 -7
- package/deps/rocksdb/rocksdb/table/get_context.h +1 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +13 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +36 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +23 -28
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +19 -17
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +10 -7
- package/index.js +14 -16
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -49,32 +49,32 @@ static void StartPhase(const char* name) {
|
|
|
49
49
|
}
|
|
50
50
|
#ifdef _MSC_VER
|
|
51
51
|
#pragma warning(push)
|
|
52
|
-
#pragma warning
|
|
52
|
+
#pragma warning(disable : 4996) // getenv security warning
|
|
53
53
|
#endif
|
|
54
54
|
static const char* GetTempDir(void) {
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
const char* ret = getenv("TEST_TMPDIR");
|
|
56
|
+
if (ret == NULL || ret[0] == '\0')
|
|
57
57
|
#ifdef OS_WIN
|
|
58
|
-
|
|
58
|
+
ret = getenv("TEMP");
|
|
59
59
|
#else
|
|
60
|
-
|
|
60
|
+
ret = "/tmp";
|
|
61
61
|
#endif
|
|
62
|
-
|
|
62
|
+
return ret;
|
|
63
63
|
}
|
|
64
64
|
#ifdef _MSC_VER
|
|
65
65
|
#pragma warning(pop)
|
|
66
66
|
#endif
|
|
67
67
|
|
|
68
|
-
#define CheckNoError(err)
|
|
69
|
-
if ((err) != NULL) {
|
|
68
|
+
#define CheckNoError(err) \
|
|
69
|
+
if ((err) != NULL) { \
|
|
70
70
|
fprintf(stderr, "%s:%d: %s: %s\n", __FILE__, __LINE__, phase, (err)); \
|
|
71
|
-
abort();
|
|
71
|
+
abort(); \
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
#define CheckCondition(cond)
|
|
75
|
-
if (!(cond)) {
|
|
74
|
+
#define CheckCondition(cond) \
|
|
75
|
+
if (!(cond)) { \
|
|
76
76
|
fprintf(stderr, "%s:%d: %s: %s\n", __FILE__, __LINE__, phase, #cond); \
|
|
77
|
-
abort();
|
|
77
|
+
abort(); \
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
static void CheckEqual(const char* expected, const char* v, size_t n) {
|
|
@@ -98,21 +98,15 @@ static void Free(char** ptr) {
|
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
static void CheckValue(
|
|
102
|
-
|
|
103
|
-
const char* expected,
|
|
104
|
-
char** actual,
|
|
105
|
-
size_t actual_length) {
|
|
101
|
+
static void CheckValue(char* err, const char* expected, char** actual,
|
|
102
|
+
size_t actual_length) {
|
|
106
103
|
CheckNoError(err);
|
|
107
104
|
CheckEqual(expected, *actual, actual_length);
|
|
108
105
|
Free(actual);
|
|
109
106
|
}
|
|
110
107
|
|
|
111
|
-
static void CheckGet(
|
|
112
|
-
|
|
113
|
-
const rocksdb_readoptions_t* options,
|
|
114
|
-
const char* key,
|
|
115
|
-
const char* expected) {
|
|
108
|
+
static void CheckGet(rocksdb_t* db, const rocksdb_readoptions_t* options,
|
|
109
|
+
const char* key, const char* expected) {
|
|
116
110
|
char* err = NULL;
|
|
117
111
|
size_t val_len;
|
|
118
112
|
char* val;
|
|
@@ -122,12 +116,9 @@ static void CheckGet(
|
|
|
122
116
|
Free(&val);
|
|
123
117
|
}
|
|
124
118
|
|
|
125
|
-
static void CheckGetCF(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
rocksdb_column_family_handle_t* handle,
|
|
129
|
-
const char* key,
|
|
130
|
-
const char* expected) {
|
|
119
|
+
static void CheckGetCF(rocksdb_t* db, const rocksdb_readoptions_t* options,
|
|
120
|
+
rocksdb_column_family_handle_t* handle, const char* key,
|
|
121
|
+
const char* expected) {
|
|
131
122
|
char* err = NULL;
|
|
132
123
|
size_t val_len;
|
|
133
124
|
char* val;
|
|
@@ -174,8 +165,8 @@ static void CheckMultiGetValues(size_t num_keys, char** values,
|
|
|
174
165
|
}
|
|
175
166
|
}
|
|
176
167
|
|
|
177
|
-
static void CheckIter(rocksdb_iterator_t* iter,
|
|
178
|
-
const char*
|
|
168
|
+
static void CheckIter(rocksdb_iterator_t* iter, const char* key,
|
|
169
|
+
const char* val) {
|
|
179
170
|
size_t len;
|
|
180
171
|
const char* str;
|
|
181
172
|
str = rocksdb_iter_key(iter, &len);
|
|
@@ -185,10 +176,9 @@ static void CheckIter(rocksdb_iterator_t* iter,
|
|
|
185
176
|
}
|
|
186
177
|
|
|
187
178
|
// Callback from rocksdb_writebatch_iterate()
|
|
188
|
-
static void CheckPut(void* ptr,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
int* state = (int*) ptr;
|
|
179
|
+
static void CheckPut(void* ptr, const char* k, size_t klen, const char* v,
|
|
180
|
+
size_t vlen) {
|
|
181
|
+
int* state = (int*)ptr;
|
|
192
182
|
CheckCondition(*state < 2);
|
|
193
183
|
switch (*state) {
|
|
194
184
|
case 0:
|
|
@@ -205,7 +195,7 @@ static void CheckPut(void* ptr,
|
|
|
205
195
|
|
|
206
196
|
// Callback from rocksdb_writebatch_iterate()
|
|
207
197
|
static void CheckDel(void* ptr, const char* k, size_t klen) {
|
|
208
|
-
int* state = (int*)
|
|
198
|
+
int* state = (int*)ptr;
|
|
209
199
|
CheckCondition(*state == 2);
|
|
210
200
|
CheckEqual("bar", k, klen);
|
|
211
201
|
(*state)++;
|
|
@@ -213,14 +203,16 @@ static void CheckDel(void* ptr, const char* k, size_t klen) {
|
|
|
213
203
|
|
|
214
204
|
static void CmpDestroy(void* arg) { (void)arg; }
|
|
215
205
|
|
|
216
|
-
static int CmpCompare(void* arg, const char* a, size_t alen,
|
|
217
|
-
|
|
206
|
+
static int CmpCompare(void* arg, const char* a, size_t alen, const char* b,
|
|
207
|
+
size_t blen) {
|
|
218
208
|
(void)arg;
|
|
219
209
|
size_t n = (alen < blen) ? alen : blen;
|
|
220
210
|
int r = memcmp(a, b, n);
|
|
221
211
|
if (r == 0) {
|
|
222
|
-
if (alen < blen)
|
|
223
|
-
|
|
212
|
+
if (alen < blen)
|
|
213
|
+
r = -1;
|
|
214
|
+
else if (alen > blen)
|
|
215
|
+
r = +1;
|
|
224
216
|
}
|
|
225
217
|
return r;
|
|
226
218
|
}
|
|
@@ -405,11 +397,9 @@ static const char* MergeOperatorName(void* arg) {
|
|
|
405
397
|
return "TestMergeOperator";
|
|
406
398
|
}
|
|
407
399
|
static char* MergeOperatorFullMerge(
|
|
408
|
-
void* arg,
|
|
409
|
-
const char*
|
|
410
|
-
const
|
|
411
|
-
const char* const* operands_list, const size_t* operands_list_length,
|
|
412
|
-
int num_operands,
|
|
400
|
+
void* arg, const char* key, size_t key_length, const char* existing_value,
|
|
401
|
+
size_t existing_value_length, const char* const* operands_list,
|
|
402
|
+
const size_t* operands_list_length, int num_operands,
|
|
413
403
|
unsigned char* success, size_t* new_value_length) {
|
|
414
404
|
(void)arg;
|
|
415
405
|
(void)key;
|
|
@@ -425,12 +415,12 @@ static char* MergeOperatorFullMerge(
|
|
|
425
415
|
memcpy(result, "fake", 4);
|
|
426
416
|
return result;
|
|
427
417
|
}
|
|
428
|
-
static char* MergeOperatorPartialMerge(
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
418
|
+
static char* MergeOperatorPartialMerge(void* arg, const char* key,
|
|
419
|
+
size_t key_length,
|
|
420
|
+
const char* const* operands_list,
|
|
421
|
+
const size_t* operands_list_length,
|
|
422
|
+
int num_operands, unsigned char* success,
|
|
423
|
+
size_t* new_value_length) {
|
|
434
424
|
(void)arg;
|
|
435
425
|
(void)key;
|
|
436
426
|
(void)key_length;
|
|
@@ -444,18 +434,16 @@ static char* MergeOperatorPartialMerge(
|
|
|
444
434
|
return result;
|
|
445
435
|
}
|
|
446
436
|
|
|
447
|
-
static void CheckTxnGet(
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
CheckEqual(expected, val, val_len);
|
|
458
|
-
Free(&val);
|
|
437
|
+
static void CheckTxnGet(rocksdb_transaction_t* txn,
|
|
438
|
+
const rocksdb_readoptions_t* options, const char* key,
|
|
439
|
+
const char* expected) {
|
|
440
|
+
char* err = NULL;
|
|
441
|
+
size_t val_len;
|
|
442
|
+
char* val;
|
|
443
|
+
val = rocksdb_transaction_get(txn, options, key, strlen(key), &val_len, &err);
|
|
444
|
+
CheckNoError(err);
|
|
445
|
+
CheckEqual(expected, val, val_len);
|
|
446
|
+
Free(&val);
|
|
459
447
|
}
|
|
460
448
|
|
|
461
449
|
static void CheckTxnGetCF(rocksdb_transaction_t* txn,
|
|
@@ -502,11 +490,9 @@ static void CheckTxnPinGetCF(rocksdb_transaction_t* txn,
|
|
|
502
490
|
rocksdb_pinnableslice_destroy(p);
|
|
503
491
|
}
|
|
504
492
|
|
|
505
|
-
static void CheckTxnDBGet(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
const char* key,
|
|
509
|
-
const char* expected) {
|
|
493
|
+
static void CheckTxnDBGet(rocksdb_transactiondb_t* txn_db,
|
|
494
|
+
const rocksdb_readoptions_t* options, const char* key,
|
|
495
|
+
const char* expected) {
|
|
510
496
|
char* err = NULL;
|
|
511
497
|
size_t val_len;
|
|
512
498
|
char* val;
|
|
@@ -632,7 +618,7 @@ int main(int argc, char** argv) {
|
|
|
632
618
|
rocksdb_t* db;
|
|
633
619
|
rocksdb_comparator_t* cmp;
|
|
634
620
|
rocksdb_cache_t* cache;
|
|
635
|
-
rocksdb_dbpath_t
|
|
621
|
+
rocksdb_dbpath_t* dbpath;
|
|
636
622
|
rocksdb_env_t* env;
|
|
637
623
|
rocksdb_options_t* options;
|
|
638
624
|
rocksdb_compactoptions_t* coptions;
|
|
@@ -649,30 +635,20 @@ int main(int argc, char** argv) {
|
|
|
649
635
|
char* err = NULL;
|
|
650
636
|
int run = -1;
|
|
651
637
|
|
|
652
|
-
snprintf(dbname, sizeof(dbname),
|
|
653
|
-
|
|
654
|
-
GetTempDir(),
|
|
655
|
-
((int) geteuid()));
|
|
638
|
+
snprintf(dbname, sizeof(dbname), "%s/rocksdb_c_test-%d", GetTempDir(),
|
|
639
|
+
((int)geteuid()));
|
|
656
640
|
|
|
657
|
-
snprintf(dbbackupname, sizeof(dbbackupname),
|
|
658
|
-
|
|
659
|
-
GetTempDir(),
|
|
660
|
-
((int) geteuid()));
|
|
641
|
+
snprintf(dbbackupname, sizeof(dbbackupname), "%s/rocksdb_c_test-%d-backup",
|
|
642
|
+
GetTempDir(), ((int)geteuid()));
|
|
661
643
|
|
|
662
644
|
snprintf(dbcheckpointname, sizeof(dbcheckpointname),
|
|
663
|
-
"%s/rocksdb_c_test-%d-checkpoint",
|
|
664
|
-
GetTempDir(),
|
|
665
|
-
((int) geteuid()));
|
|
645
|
+
"%s/rocksdb_c_test-%d-checkpoint", GetTempDir(), ((int)geteuid()));
|
|
666
646
|
|
|
667
|
-
snprintf(sstfilename, sizeof(sstfilename),
|
|
668
|
-
|
|
669
|
-
GetTempDir(),
|
|
670
|
-
((int)geteuid()));
|
|
647
|
+
snprintf(sstfilename, sizeof(sstfilename), "%s/rocksdb_c_test-%d-sst",
|
|
648
|
+
GetTempDir(), ((int)geteuid()));
|
|
671
649
|
|
|
672
|
-
snprintf(dbpathname, sizeof(dbpathname),
|
|
673
|
-
|
|
674
|
-
GetTempDir(),
|
|
675
|
-
((int) geteuid()));
|
|
650
|
+
snprintf(dbpathname, sizeof(dbpathname), "%s/rocksdb_c_test-%d-dbpath",
|
|
651
|
+
GetTempDir(), ((int)geteuid()));
|
|
676
652
|
|
|
677
653
|
StartPhase("create_objects");
|
|
678
654
|
cmp = rocksdb_comparator_create(NULL, CmpDestroy, CmpCompare, CmpName);
|
|
@@ -746,7 +722,8 @@ int main(int argc, char** argv) {
|
|
|
746
722
|
rocksdb_destroy_db(options, dbbackupname, &err);
|
|
747
723
|
CheckNoError(err);
|
|
748
724
|
|
|
749
|
-
rocksdb_backup_engine_t
|
|
725
|
+
rocksdb_backup_engine_t* be =
|
|
726
|
+
rocksdb_backup_engine_open(options, dbbackupname, &err);
|
|
750
727
|
CheckNoError(err);
|
|
751
728
|
|
|
752
729
|
rocksdb_backup_engine_create_new_backup(be, db, &err);
|
|
@@ -759,7 +736,8 @@ int main(int argc, char** argv) {
|
|
|
759
736
|
rocksdb_backup_engine_create_new_backup(be, db, &err);
|
|
760
737
|
CheckNoError(err);
|
|
761
738
|
|
|
762
|
-
const rocksdb_backup_engine_info_t* bei =
|
|
739
|
+
const rocksdb_backup_engine_info_t* bei =
|
|
740
|
+
rocksdb_backup_engine_get_backup_info(be);
|
|
763
741
|
CheckCondition(rocksdb_backup_engine_info_count(bei) > 1);
|
|
764
742
|
rocksdb_backup_engine_info_destroy(bei);
|
|
765
743
|
|
|
@@ -778,9 +756,11 @@ int main(int argc, char** argv) {
|
|
|
778
756
|
rocksdb_destroy_db(options, dbname, &err);
|
|
779
757
|
CheckNoError(err);
|
|
780
758
|
|
|
781
|
-
rocksdb_restore_options_t
|
|
759
|
+
rocksdb_restore_options_t* restore_options =
|
|
760
|
+
rocksdb_restore_options_create();
|
|
782
761
|
rocksdb_restore_options_set_keep_log_files(restore_options, 0);
|
|
783
|
-
rocksdb_backup_engine_restore_db_from_latest_backup(be, dbname, dbname,
|
|
762
|
+
rocksdb_backup_engine_restore_db_from_latest_backup(be, dbname, dbname,
|
|
763
|
+
restore_options, &err);
|
|
784
764
|
CheckNoError(err);
|
|
785
765
|
rocksdb_restore_options_destroy(restore_options);
|
|
786
766
|
|
|
@@ -799,7 +779,8 @@ int main(int argc, char** argv) {
|
|
|
799
779
|
rocksdb_destroy_db(options, dbcheckpointname, &err);
|
|
800
780
|
CheckNoError(err);
|
|
801
781
|
|
|
802
|
-
rocksdb_checkpoint_t* checkpoint =
|
|
782
|
+
rocksdb_checkpoint_t* checkpoint =
|
|
783
|
+
rocksdb_checkpoint_object_create(db, &err);
|
|
803
784
|
CheckNoError(err);
|
|
804
785
|
|
|
805
786
|
rocksdb_checkpoint_create(checkpoint, dbcheckpointname, 0, &err);
|
|
@@ -976,10 +957,10 @@ int main(int argc, char** argv) {
|
|
|
976
957
|
StartPhase("writebatch_vectors");
|
|
977
958
|
{
|
|
978
959
|
rocksdb_writebatch_t* wb = rocksdb_writebatch_create();
|
|
979
|
-
const char* k_list[2] = {
|
|
980
|
-
const size_t k_sizes[2] = {
|
|
981
|
-
const char* v_list[3] = {
|
|
982
|
-
const size_t v_sizes[3] = {
|
|
960
|
+
const char* k_list[2] = {"z", "ap"};
|
|
961
|
+
const size_t k_sizes[2] = {1, 2};
|
|
962
|
+
const char* v_list[3] = {"x", "y", "z"};
|
|
963
|
+
const size_t v_sizes[3] = {1, 1, 1};
|
|
983
964
|
rocksdb_writebatch_putv(wb, 2, k_list, k_sizes, 3, v_list, v_sizes);
|
|
984
965
|
rocksdb_write(db, woptions, wb, &err);
|
|
985
966
|
CheckNoError(err);
|
|
@@ -1041,13 +1022,17 @@ int main(int argc, char** argv) {
|
|
|
1041
1022
|
CheckCondition(count == 3);
|
|
1042
1023
|
size_t size;
|
|
1043
1024
|
char* value;
|
|
1044
|
-
value = rocksdb_writebatch_wi_get_from_batch(wbi, options, "box", 3, &size,
|
|
1025
|
+
value = rocksdb_writebatch_wi_get_from_batch(wbi, options, "box", 3, &size,
|
|
1026
|
+
&err);
|
|
1045
1027
|
CheckValue(err, "c", &value, size);
|
|
1046
|
-
value = rocksdb_writebatch_wi_get_from_batch(wbi, options, "bar", 3, &size,
|
|
1028
|
+
value = rocksdb_writebatch_wi_get_from_batch(wbi, options, "bar", 3, &size,
|
|
1029
|
+
&err);
|
|
1047
1030
|
CheckValue(err, NULL, &value, size);
|
|
1048
|
-
value = rocksdb_writebatch_wi_get_from_batch_and_db(wbi, db, roptions,
|
|
1031
|
+
value = rocksdb_writebatch_wi_get_from_batch_and_db(wbi, db, roptions,
|
|
1032
|
+
"foo", 3, &size, &err);
|
|
1049
1033
|
CheckValue(err, "hello", &value, size);
|
|
1050
|
-
value = rocksdb_writebatch_wi_get_from_batch_and_db(wbi, db, roptions,
|
|
1034
|
+
value = rocksdb_writebatch_wi_get_from_batch_and_db(wbi, db, roptions,
|
|
1035
|
+
"box", 3, &size, &err);
|
|
1051
1036
|
CheckValue(err, "c", &value, size);
|
|
1052
1037
|
rocksdb_write_writebatch_wi(db, woptions, wbi, &err);
|
|
1053
1038
|
CheckNoError(err);
|
|
@@ -1064,10 +1049,10 @@ int main(int argc, char** argv) {
|
|
|
1064
1049
|
StartPhase("writebatch_wi_vectors");
|
|
1065
1050
|
{
|
|
1066
1051
|
rocksdb_writebatch_wi_t* wb = rocksdb_writebatch_wi_create(0, 1);
|
|
1067
|
-
const char* k_list[2] = {
|
|
1068
|
-
const size_t k_sizes[2] = {
|
|
1069
|
-
const char* v_list[3] = {
|
|
1070
|
-
const size_t v_sizes[3] = {
|
|
1052
|
+
const char* k_list[2] = {"z", "ap"};
|
|
1053
|
+
const size_t k_sizes[2] = {1, 2};
|
|
1054
|
+
const char* v_list[3] = {"x", "y", "z"};
|
|
1055
|
+
const size_t v_sizes[3] = {1, 1, 1};
|
|
1071
1056
|
rocksdb_writebatch_wi_putv(wb, 2, k_list, k_sizes, 3, v_list, v_sizes);
|
|
1072
1057
|
rocksdb_write_writebatch_wi(db, woptions, wb, &err);
|
|
1073
1058
|
CheckNoError(err);
|
|
@@ -1156,13 +1141,14 @@ int main(int argc, char** argv) {
|
|
|
1156
1141
|
|
|
1157
1142
|
StartPhase("multiget");
|
|
1158
1143
|
{
|
|
1159
|
-
const char* keys[3] = {
|
|
1160
|
-
const size_t keys_sizes[3] = {
|
|
1144
|
+
const char* keys[3] = {"box", "foo", "notfound"};
|
|
1145
|
+
const size_t keys_sizes[3] = {3, 3, 8};
|
|
1161
1146
|
char* vals[3];
|
|
1162
1147
|
size_t vals_sizes[3];
|
|
1163
1148
|
char* errs[3];
|
|
1164
1149
|
const char* expected[3] = {"c", "hello", NULL};
|
|
1165
|
-
rocksdb_multi_get(db, roptions, 3, keys, keys_sizes, vals, vals_sizes,
|
|
1150
|
+
rocksdb_multi_get(db, roptions, 3, keys, keys_sizes, vals, vals_sizes,
|
|
1151
|
+
errs);
|
|
1166
1152
|
CheckMultiGetValues(3, vals, vals_sizes, errs, expected);
|
|
1167
1153
|
}
|
|
1168
1154
|
|
|
@@ -1180,10 +1166,10 @@ int main(int argc, char** argv) {
|
|
|
1180
1166
|
char keybuf[100];
|
|
1181
1167
|
char valbuf[100];
|
|
1182
1168
|
uint64_t sizes[2];
|
|
1183
|
-
const char* start[2] = {
|
|
1184
|
-
size_t start_len[2] = {
|
|
1185
|
-
const char* limit[2] = {
|
|
1186
|
-
size_t limit_len[2] = {
|
|
1169
|
+
const char* start[2] = {"a", "k00000000000000010000"};
|
|
1170
|
+
size_t start_len[2] = {1, 21};
|
|
1171
|
+
const char* limit[2] = {"k00000000000000010000", "z"};
|
|
1172
|
+
size_t limit_len[2] = {21, 1};
|
|
1187
1173
|
rocksdb_writeoptions_set_sync(woptions, 0);
|
|
1188
1174
|
for (i = 0; i < n; i++) {
|
|
1189
1175
|
snprintf(keybuf, sizeof(keybuf), "k%020d", i);
|
|
@@ -1393,8 +1379,8 @@ int main(int argc, char** argv) {
|
|
|
1393
1379
|
factory);
|
|
1394
1380
|
db = CheckCompaction(db, options_with_filter_factory, roptions, woptions);
|
|
1395
1381
|
|
|
1396
|
-
rocksdb_options_set_compaction_filter_factory(
|
|
1397
|
-
|
|
1382
|
+
rocksdb_options_set_compaction_filter_factory(options_with_filter_factory,
|
|
1383
|
+
NULL);
|
|
1398
1384
|
rocksdb_options_destroy(options_with_filter_factory);
|
|
1399
1385
|
}
|
|
1400
1386
|
|
|
@@ -1449,7 +1435,8 @@ int main(int argc, char** argv) {
|
|
|
1449
1435
|
rocksdb_close(db);
|
|
1450
1436
|
|
|
1451
1437
|
size_t cflen;
|
|
1452
|
-
char** column_fams =
|
|
1438
|
+
char** column_fams =
|
|
1439
|
+
rocksdb_list_column_families(db_options, dbname, &cflen, &err);
|
|
1453
1440
|
CheckNoError(err);
|
|
1454
1441
|
CheckEqual("default", column_fams[0], 7);
|
|
1455
1442
|
CheckEqual("cf1", column_fams[1], 3);
|
|
@@ -1465,7 +1452,8 @@ int main(int argc, char** argv) {
|
|
|
1465
1452
|
LoadAndCheckLatestOptions(dbname, env, false, cache, NULL, 2, cf_names,
|
|
1466
1453
|
NULL);
|
|
1467
1454
|
|
|
1468
|
-
db = rocksdb_open_column_families(db_options, dbname, 2, cf_names, cf_opts,
|
|
1455
|
+
db = rocksdb_open_column_families(db_options, dbname, 2, cf_names, cf_opts,
|
|
1456
|
+
handles, &err);
|
|
1469
1457
|
CheckNoError(err);
|
|
1470
1458
|
|
|
1471
1459
|
rocksdb_put_cf(db, woptions, handles[1], "foo", 3, "hello", 5, &err);
|
|
@@ -1483,11 +1471,10 @@ int main(int argc, char** argv) {
|
|
|
1483
1471
|
&err);
|
|
1484
1472
|
CheckNoError(err);
|
|
1485
1473
|
|
|
1486
|
-
rocksdb_flushoptions_t
|
|
1474
|
+
rocksdb_flushoptions_t* flush_options = rocksdb_flushoptions_create();
|
|
1487
1475
|
rocksdb_flushoptions_set_wait(flush_options, 1);
|
|
1488
1476
|
rocksdb_flush_cf(db, flush_options, handles[1], &err);
|
|
1489
|
-
CheckNoError(err)
|
|
1490
|
-
rocksdb_flushoptions_destroy(flush_options);
|
|
1477
|
+
CheckNoError(err) rocksdb_flushoptions_destroy(flush_options);
|
|
1491
1478
|
|
|
1492
1479
|
CheckGetCF(db, roptions, handles[1], "foo", "hello");
|
|
1493
1480
|
CheckPinGetCF(db, roptions, handles[1], "foo", "hello");
|
|
@@ -1524,27 +1511,29 @@ int main(int argc, char** argv) {
|
|
|
1524
1511
|
rocksdb_flush_wal(db, 1, &err);
|
|
1525
1512
|
CheckNoError(err);
|
|
1526
1513
|
|
|
1527
|
-
const char* keys[3] = {
|
|
1528
|
-
const rocksdb_column_family_handle_t* get_handles[3] = {
|
|
1529
|
-
|
|
1514
|
+
const char* keys[3] = {"box", "box", "barfooxx"};
|
|
1515
|
+
const rocksdb_column_family_handle_t* get_handles[3] = {
|
|
1516
|
+
handles[0], handles[1], handles[1]};
|
|
1517
|
+
const size_t keys_sizes[3] = {3, 3, 8};
|
|
1530
1518
|
char* vals[3];
|
|
1531
1519
|
size_t vals_sizes[3];
|
|
1532
1520
|
char* errs[3];
|
|
1533
|
-
rocksdb_multi_get_cf(db, roptions, get_handles, 3, keys, keys_sizes, vals,
|
|
1521
|
+
rocksdb_multi_get_cf(db, roptions, get_handles, 3, keys, keys_sizes, vals,
|
|
1522
|
+
vals_sizes, errs);
|
|
1534
1523
|
|
|
1535
1524
|
int i;
|
|
1536
1525
|
for (i = 0; i < 3; i++) {
|
|
1537
1526
|
CheckEqual(NULL, errs[i], 0);
|
|
1538
1527
|
switch (i) {
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1528
|
+
case 0:
|
|
1529
|
+
CheckEqual(NULL, vals[i], vals_sizes[i]); // wrong cf
|
|
1530
|
+
break;
|
|
1531
|
+
case 1:
|
|
1532
|
+
CheckEqual("c", vals[i], vals_sizes[i]); // bingo
|
|
1533
|
+
break;
|
|
1534
|
+
case 2:
|
|
1535
|
+
CheckEqual(NULL, vals[i], vals_sizes[i]); // normal not found
|
|
1536
|
+
break;
|
|
1548
1537
|
}
|
|
1549
1538
|
Free(&vals[i]);
|
|
1550
1539
|
}
|
|
@@ -1592,7 +1581,8 @@ int main(int argc, char** argv) {
|
|
|
1592
1581
|
}
|
|
1593
1582
|
}
|
|
1594
1583
|
|
|
1595
|
-
rocksdb_iterator_t* iter =
|
|
1584
|
+
rocksdb_iterator_t* iter =
|
|
1585
|
+
rocksdb_create_iterator_cf(db, roptions, handles[1]);
|
|
1596
1586
|
CheckCondition(!rocksdb_iter_valid(iter));
|
|
1597
1587
|
rocksdb_iter_seek_to_first(iter);
|
|
1598
1588
|
CheckCondition(rocksdb_iter_valid(iter));
|
|
@@ -1605,9 +1595,11 @@ int main(int argc, char** argv) {
|
|
|
1605
1595
|
CheckNoError(err);
|
|
1606
1596
|
rocksdb_iter_destroy(iter);
|
|
1607
1597
|
|
|
1608
|
-
rocksdb_column_family_handle_t* iters_cf_handles[2] = {
|
|
1598
|
+
rocksdb_column_family_handle_t* iters_cf_handles[2] = {handles[0],
|
|
1599
|
+
handles[1]};
|
|
1609
1600
|
rocksdb_iterator_t* iters_handles[2];
|
|
1610
|
-
rocksdb_create_iterators(db, roptions, iters_cf_handles, iters_handles, 2,
|
|
1601
|
+
rocksdb_create_iterators(db, roptions, iters_cf_handles, iters_handles, 2,
|
|
1602
|
+
&err);
|
|
1611
1603
|
CheckNoError(err);
|
|
1612
1604
|
|
|
1613
1605
|
iter = iters_handles[0];
|
|
@@ -1652,7 +1644,8 @@ int main(int argc, char** argv) {
|
|
|
1652
1644
|
{
|
|
1653
1645
|
// Create new database
|
|
1654
1646
|
rocksdb_options_set_allow_mmap_reads(options, 1);
|
|
1655
|
-
rocksdb_options_set_prefix_extractor(
|
|
1647
|
+
rocksdb_options_set_prefix_extractor(
|
|
1648
|
+
options, rocksdb_slicetransform_create_fixed_prefix(3));
|
|
1656
1649
|
rocksdb_options_set_hash_skip_list_rep(options, 5000, 4, 4);
|
|
1657
1650
|
rocksdb_options_set_plain_table_factory(options, 4, 10, 0.75, 16);
|
|
1658
1651
|
rocksdb_options_set_allow_concurrent_memtable_write(options, 0);
|
|
@@ -1747,8 +1740,9 @@ int main(int argc, char** argv) {
|
|
|
1747
1740
|
// amount of memory used within memtables should grow
|
|
1748
1741
|
CheckCondition(rocksdb_approximate_memory_usage_get_mem_table_total(mu2) >=
|
|
1749
1742
|
rocksdb_approximate_memory_usage_get_mem_table_total(mu1));
|
|
1750
|
-
CheckCondition(
|
|
1751
|
-
|
|
1743
|
+
CheckCondition(
|
|
1744
|
+
rocksdb_approximate_memory_usage_get_mem_table_unflushed(mu2) >=
|
|
1745
|
+
rocksdb_approximate_memory_usage_get_mem_table_unflushed(mu1));
|
|
1752
1746
|
|
|
1753
1747
|
rocksdb_memory_consumers_destroy(consumers);
|
|
1754
1748
|
rocksdb_approximate_memory_usage_destroy(mu1);
|
|
@@ -2839,53 +2833,57 @@ int main(int argc, char** argv) {
|
|
|
2839
2833
|
db = rocksdb_open(options, dbname, &err);
|
|
2840
2834
|
CheckNoError(err);
|
|
2841
2835
|
|
|
2842
|
-
rocksdb_put(db, woptions, "a",
|
|
2843
|
-
|
|
2844
|
-
rocksdb_put(db, woptions, "
|
|
2845
|
-
|
|
2836
|
+
rocksdb_put(db, woptions, "a", 1, "0", 1, &err);
|
|
2837
|
+
CheckNoError(err);
|
|
2838
|
+
rocksdb_put(db, woptions, "foo", 3, "bar", 3, &err);
|
|
2839
|
+
CheckNoError(err);
|
|
2840
|
+
rocksdb_put(db, woptions, "foo1", 4, "bar1", 4, &err);
|
|
2841
|
+
CheckNoError(err);
|
|
2842
|
+
rocksdb_put(db, woptions, "g1", 2, "0", 1, &err);
|
|
2843
|
+
CheckNoError(err);
|
|
2846
2844
|
|
|
2847
2845
|
// testing basic case with no iterate_upper_bound and no prefix_extractor
|
|
2848
2846
|
{
|
|
2849
|
-
|
|
2850
|
-
|
|
2847
|
+
rocksdb_readoptions_set_iterate_upper_bound(roptions, NULL, 0);
|
|
2848
|
+
rocksdb_iterator_t* iter = rocksdb_create_iterator(db, roptions);
|
|
2851
2849
|
|
|
2852
|
-
|
|
2853
|
-
|
|
2854
|
-
|
|
2850
|
+
rocksdb_iter_seek(iter, "foo", 3);
|
|
2851
|
+
CheckCondition(rocksdb_iter_valid(iter));
|
|
2852
|
+
CheckIter(iter, "foo", "bar");
|
|
2855
2853
|
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
|
|
2854
|
+
rocksdb_iter_next(iter);
|
|
2855
|
+
CheckCondition(rocksdb_iter_valid(iter));
|
|
2856
|
+
CheckIter(iter, "foo1", "bar1");
|
|
2859
2857
|
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2858
|
+
rocksdb_iter_next(iter);
|
|
2859
|
+
CheckCondition(rocksdb_iter_valid(iter));
|
|
2860
|
+
CheckIter(iter, "g1", "0");
|
|
2863
2861
|
|
|
2864
|
-
|
|
2862
|
+
rocksdb_iter_destroy(iter);
|
|
2865
2863
|
}
|
|
2866
2864
|
|
|
2867
2865
|
// testing iterate_upper_bound and forward iterator
|
|
2868
2866
|
// to make sure it stops at bound
|
|
2869
2867
|
{
|
|
2870
|
-
|
|
2871
|
-
|
|
2868
|
+
// iterate_upper_bound points beyond the last expected entry
|
|
2869
|
+
rocksdb_readoptions_set_iterate_upper_bound(roptions, "foo2", 4);
|
|
2872
2870
|
|
|
2873
|
-
|
|
2871
|
+
rocksdb_iterator_t* iter = rocksdb_create_iterator(db, roptions);
|
|
2874
2872
|
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2873
|
+
rocksdb_iter_seek(iter, "foo", 3);
|
|
2874
|
+
CheckCondition(rocksdb_iter_valid(iter));
|
|
2875
|
+
CheckIter(iter, "foo", "bar");
|
|
2878
2876
|
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2877
|
+
rocksdb_iter_next(iter);
|
|
2878
|
+
CheckCondition(rocksdb_iter_valid(iter));
|
|
2879
|
+
CheckIter(iter, "foo1", "bar1");
|
|
2882
2880
|
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2881
|
+
rocksdb_iter_next(iter);
|
|
2882
|
+
// should stop here...
|
|
2883
|
+
CheckCondition(!rocksdb_iter_valid(iter));
|
|
2886
2884
|
|
|
2887
|
-
|
|
2888
|
-
|
|
2885
|
+
rocksdb_iter_destroy(iter);
|
|
2886
|
+
rocksdb_readoptions_set_iterate_upper_bound(roptions, NULL, 0);
|
|
2889
2887
|
}
|
|
2890
2888
|
}
|
|
2891
2889
|
|
|
@@ -3009,7 +3007,7 @@ int main(int argc, char** argv) {
|
|
|
3009
3007
|
snapshot = rocksdb_transactiondb_create_snapshot(txn_db);
|
|
3010
3008
|
rocksdb_readoptions_set_snapshot(roptions, snapshot);
|
|
3011
3009
|
|
|
3012
|
-
rocksdb_transactiondb_put(txn_db, woptions, "foo", 3, "hey", 3,
|
|
3010
|
+
rocksdb_transactiondb_put(txn_db, woptions, "foo", 3, "hey", 3, &err);
|
|
3013
3011
|
CheckNoError(err);
|
|
3014
3012
|
|
|
3015
3013
|
CheckTxnDBGet(txn_db, roptions, "foo", "hello");
|
|
@@ -3021,7 +3019,8 @@ int main(int argc, char** argv) {
|
|
|
3021
3019
|
|
|
3022
3020
|
// iterate
|
|
3023
3021
|
rocksdb_transaction_put(txn, "bar", 3, "hi", 2, &err);
|
|
3024
|
-
rocksdb_iterator_t* iter =
|
|
3022
|
+
rocksdb_iterator_t* iter =
|
|
3023
|
+
rocksdb_transaction_create_iterator(txn, roptions);
|
|
3025
3024
|
CheckCondition(!rocksdb_iter_valid(iter));
|
|
3026
3025
|
rocksdb_iter_seek_to_first(iter);
|
|
3027
3026
|
CheckCondition(rocksdb_iter_valid(iter));
|