@@ -55,6 +55,7 @@ using rocksdb::MergeOperator;
55
55
using rocksdb::NewBloomFilterPolicy;
56
56
using rocksdb::NewLRUCache;
57
57
using rocksdb::Options;
58
+ using rocksdb::BlockBasedTableOptions;
58
59
using rocksdb::RandomAccessFile;
59
60
using rocksdb::Range;
60
61
using rocksdb::ReadOptions;
@@ -81,6 +82,7 @@ struct rocksdb_fifo_compaction_options_t { CompactionOptionsFIFO rep; };
81
82
struct rocksdb_readoptions_t { ReadOptions rep; };
82
83
struct rocksdb_writeoptions_t { WriteOptions rep; };
83
84
struct rocksdb_options_t { Options rep; };
85
+ struct rocksdb_block_based_table_options_t { BlockBasedTableOptions rep; };
84
86
struct rocksdb_seqfile_t { SequentialFile* rep; };
85
87
struct rocksdb_randomfile_t { RandomAccessFile* rep; };
86
88
struct rocksdb_writablefile_t { WritableFile* rep; };
@@ -1053,6 +1055,74 @@ const char* rocksdb_writebatch_data(rocksdb_writebatch_t* b, size_t* size) {
1053
1055
return b->rep .Data ().c_str ();
1054
1056
}
1055
1057
1058
+ rocksdb_block_based_table_options_t *
1059
+ rocksdb_block_based_options_create () {
1060
+ return new rocksdb_block_based_table_options_t ;
1061
+ }
1062
+
1063
+ void rocksdb_block_based_options_destroy (
1064
+ rocksdb_block_based_table_options_t * options) {
1065
+ delete options;
1066
+ }
1067
+
1068
+ void rocksdb_block_based_options_set_block_size (
1069
+ rocksdb_block_based_table_options_t * options, size_t block_size) {
1070
+ options->rep .block_size = block_size;
1071
+ }
1072
+
1073
+ void rocksdb_block_based_options_set_block_size_deviation (
1074
+ rocksdb_block_based_table_options_t * options, int block_size_deviation) {
1075
+ options->rep .block_size_deviation = block_size_deviation;
1076
+ }
1077
+
1078
+ void rocksdb_block_based_options_set_block_restart_interval (
1079
+ rocksdb_block_based_table_options_t * options, int block_restart_interval) {
1080
+ options->rep .block_restart_interval = block_restart_interval;
1081
+ }
1082
+
1083
+ void rocksdb_block_based_options_set_filter_policy (
1084
+ rocksdb_block_based_table_options_t * options,
1085
+ rocksdb_filterpolicy_t * filter_policy) {
1086
+ options->rep .filter_policy .reset (filter_policy);
1087
+ }
1088
+
1089
+ void rocksdb_block_based_options_set_no_block_cache (
1090
+ rocksdb_block_based_table_options_t * options,
1091
+ unsigned char no_block_cache) {
1092
+ options->rep .no_block_cache = no_block_cache;
1093
+ }
1094
+
1095
+ void rocksdb_block_based_options_set_block_cache (
1096
+ rocksdb_block_based_table_options_t * options,
1097
+ rocksdb_cache_t * block_cache) {
1098
+ if (block_cache) {
1099
+ options->rep .block_cache = block_cache->rep ;
1100
+ }
1101
+ }
1102
+
1103
+ void rocksdb_block_based_options_set_block_cache_compressed (
1104
+ rocksdb_block_based_table_options_t * options,
1105
+ rocksdb_cache_t * block_cache_compressed) {
1106
+ if (block_cache_compressed) {
1107
+ options->rep .block_cache_compressed = block_cache_compressed->rep ;
1108
+ }
1109
+ }
1110
+
1111
+ void rocksdb_block_based_options_set_whole_key_filtering (
1112
+ rocksdb_block_based_table_options_t * options, unsigned char v) {
1113
+ options->rep .whole_key_filtering = v;
1114
+ }
1115
+
1116
+ void rocksdb_options_set_block_based_table_factory (
1117
+ rocksdb_options_t *opt,
1118
+ rocksdb_block_based_table_options_t * table_options) {
1119
+ if (table_options) {
1120
+ opt->rep .table_factory .reset (
1121
+ rocksdb::NewBlockBasedTableFactory (table_options->rep ));
1122
+ }
1123
+ }
1124
+
1125
+
1056
1126
rocksdb_options_t * rocksdb_options_create () {
1057
1127
return new rocksdb_options_t ;
1058
1128
}
@@ -1111,12 +1181,6 @@ void rocksdb_options_set_compaction_filter_factory_v2(
1111
1181
opt->rep .compaction_filter_factory_v2 = std::shared_ptr<CompactionFilterFactoryV2>(compaction_filter_factory_v2);
1112
1182
}
1113
1183
1114
- void rocksdb_options_set_filter_policy (
1115
- rocksdb_options_t * opt,
1116
- rocksdb_filterpolicy_t * policy) {
1117
- opt->rep .filter_policy = policy;
1118
- }
1119
-
1120
1184
void rocksdb_options_set_create_if_missing (
1121
1185
rocksdb_options_t * opt, unsigned char v) {
1122
1186
opt->rep .create_if_missing = v;
@@ -1160,26 +1224,6 @@ void rocksdb_options_set_max_open_files(rocksdb_options_t* opt, int n) {
1160
1224
opt->rep .max_open_files = n;
1161
1225
}
1162
1226
1163
- void rocksdb_options_set_cache (rocksdb_options_t * opt, rocksdb_cache_t * c) {
1164
- if (c) {
1165
- opt->rep .block_cache = c->rep ;
1166
- }
1167
- }
1168
-
1169
- void rocksdb_options_set_cache_compressed (rocksdb_options_t * opt, rocksdb_cache_t * c) {
1170
- if (c) {
1171
- opt->rep .block_cache_compressed = c->rep ;
1172
- }
1173
- }
1174
-
1175
- void rocksdb_options_set_block_size (rocksdb_options_t * opt, size_t s) {
1176
- opt->rep .block_size = s;
1177
- }
1178
-
1179
- void rocksdb_options_set_block_restart_interval (rocksdb_options_t * opt, int n) {
1180
- opt->rep .block_restart_interval = n;
1181
- }
1182
-
1183
1227
void rocksdb_options_set_target_file_size_base (
1184
1228
rocksdb_options_t * opt, uint64_t n) {
1185
1229
opt->rep .target_file_size_base = n;
@@ -1272,11 +1316,6 @@ void rocksdb_options_set_prefix_extractor(
1272
1316
opt->rep .prefix_extractor .reset (prefix_extractor);
1273
1317
}
1274
1318
1275
- void rocksdb_options_set_whole_key_filtering (
1276
- rocksdb_options_t * opt, unsigned char v) {
1277
- opt->rep .whole_key_filtering = v;
1278
- }
1279
-
1280
1319
void rocksdb_options_set_disable_data_sync (
1281
1320
rocksdb_options_t * opt, int disable_data_sync) {
1282
1321
opt->rep .disableDataSync = disable_data_sync;
@@ -1287,11 +1326,6 @@ void rocksdb_options_set_use_fsync(
1287
1326
opt->rep .use_fsync = use_fsync;
1288
1327
}
1289
1328
1290
- void rocksdb_options_set_db_stats_log_interval (
1291
- rocksdb_options_t * opt, int db_stats_log_interval) {
1292
- opt->rep .db_stats_log_interval = db_stats_log_interval;
1293
- }
1294
-
1295
1329
void rocksdb_options_set_db_log_dir (
1296
1330
rocksdb_options_t * opt, const char * db_log_dir) {
1297
1331
opt->rep .db_log_dir = db_log_dir;
@@ -1351,11 +1385,6 @@ void rocksdb_options_set_stats_dump_period_sec(
1351
1385
opt->rep .stats_dump_period_sec = v;
1352
1386
}
1353
1387
1354
- void rocksdb_options_set_block_size_deviation (
1355
- rocksdb_options_t * opt, int v) {
1356
- opt->rep .block_size_deviation = v;
1357
- }
1358
-
1359
1388
void rocksdb_options_set_advise_random_on_open (
1360
1389
rocksdb_options_t * opt, unsigned char v) {
1361
1390
opt->rep .advise_random_on_open = v;
@@ -1450,11 +1479,6 @@ void rocksdb_options_set_max_manifest_file_size(
1450
1479
opt->rep .max_manifest_file_size = v;
1451
1480
}
1452
1481
1453
- void rocksdb_options_set_no_block_cache (
1454
- rocksdb_options_t * opt, unsigned char v) {
1455
- opt->rep .no_block_cache = v;
1456
- }
1457
-
1458
1482
void rocksdb_options_set_table_cache_numshardbits (
1459
1483
rocksdb_options_t * opt, int v) {
1460
1484
opt->rep .table_cache_numshardbits = v;
@@ -1474,10 +1498,6 @@ void rocksdb_options_set_disable_auto_compactions(rocksdb_options_t* opt, int di
1474
1498
opt->rep .disable_auto_compactions = disable;
1475
1499
}
1476
1500
1477
- void rocksdb_options_set_disable_seek_compaction (rocksdb_options_t * opt, int disable) {
1478
- opt->rep .disable_seek_compaction = disable;
1479
- }
1480
-
1481
1501
void rocksdb_options_set_delete_obsolete_files_period_micros (
1482
1502
rocksdb_options_t * opt, uint64_t v) {
1483
1503
opt->rep .delete_obsolete_files_period_micros = v;
0 commit comments