@nxtedition/rocksdb 7.0.19 → 7.0.20
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/binding.cc +40 -0
- package/chained-batch.js +5 -0
- package/package.json +1 -1
- package/prebuilds/linux-x64/node.napi.node +0 -0
package/binding.cc
CHANGED
|
@@ -1630,6 +1630,22 @@ NAPI_METHOD(batch_do) {
|
|
|
1630
1630
|
NAPI_STATUS_THROWS(ToString(env, valueProperty, value));
|
|
1631
1631
|
|
|
1632
1632
|
ROCKS_STATUS_THROWS(batch.Put(column, key, value));
|
|
1633
|
+
} else if (type == "data") {
|
|
1634
|
+
napi_value valueProperty;
|
|
1635
|
+
NAPI_STATUS_THROWS(napi_get_named_property(env, element, "value", &valueProperty));
|
|
1636
|
+
NAPI_STATUS_THROWS(ToString(env, valueProperty, value));
|
|
1637
|
+
|
|
1638
|
+
ROCKS_STATUS_THROWS(batch.PutLogData(value));
|
|
1639
|
+
} else if (type == "merge") {
|
|
1640
|
+
napi_value keyProperty;
|
|
1641
|
+
NAPI_STATUS_THROWS(napi_get_named_property(env, element, "key", &keyProperty));
|
|
1642
|
+
NAPI_STATUS_THROWS(ToString(env, keyProperty, key));
|
|
1643
|
+
|
|
1644
|
+
napi_value valueProperty;
|
|
1645
|
+
NAPI_STATUS_THROWS(napi_get_named_property(env, element, "value", &valueProperty));
|
|
1646
|
+
NAPI_STATUS_THROWS(ToString(env, valueProperty, value));
|
|
1647
|
+
|
|
1648
|
+
ROCKS_STATUS_THROWS(batch.Merge(column, key, value));
|
|
1633
1649
|
} else {
|
|
1634
1650
|
ROCKS_STATUS_THROWS(rocksdb::Status::InvalidArgument());
|
|
1635
1651
|
}
|
|
@@ -1741,6 +1757,29 @@ NAPI_METHOD(batch_put_log_data) {
|
|
|
1741
1757
|
return 0;
|
|
1742
1758
|
}
|
|
1743
1759
|
|
|
1760
|
+
NAPI_METHOD(batch_merge) {
|
|
1761
|
+
NAPI_ARGV(5);
|
|
1762
|
+
|
|
1763
|
+
Database* database;
|
|
1764
|
+
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&database)));
|
|
1765
|
+
|
|
1766
|
+
rocksdb::WriteBatch* batch;
|
|
1767
|
+
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[1], (void**)(&batch)));
|
|
1768
|
+
|
|
1769
|
+
std::string key;
|
|
1770
|
+
NAPI_STATUS_THROWS(ToString(env, argv[2], key));
|
|
1771
|
+
|
|
1772
|
+
std::string val;
|
|
1773
|
+
NAPI_STATUS_THROWS(ToString(env, argv[3], val));
|
|
1774
|
+
|
|
1775
|
+
rocksdb::ColumnFamilyHandle* column;
|
|
1776
|
+
NAPI_STATUS_THROWS(GetColumnFamily(database, env, argv[4], &column));
|
|
1777
|
+
|
|
1778
|
+
ROCKS_STATUS_THROWS(batch->Merge(column, key, val));
|
|
1779
|
+
|
|
1780
|
+
return 0;
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1744
1783
|
NAPI_INIT() {
|
|
1745
1784
|
NAPI_EXPORT_FUNCTION(db_init);
|
|
1746
1785
|
NAPI_EXPORT_FUNCTION(db_open);
|
|
@@ -1770,4 +1809,5 @@ NAPI_INIT() {
|
|
|
1770
1809
|
NAPI_EXPORT_FUNCTION(batch_clear);
|
|
1771
1810
|
NAPI_EXPORT_FUNCTION(batch_write);
|
|
1772
1811
|
NAPI_EXPORT_FUNCTION(batch_put_log_data);
|
|
1812
|
+
NAPI_EXPORT_FUNCTION(batch_merge);
|
|
1773
1813
|
}
|
package/chained-batch.js
CHANGED
|
@@ -43,6 +43,11 @@ class ChainedBatch extends AbstractChainedBatch {
|
|
|
43
43
|
// TODO (fix): Check if open...
|
|
44
44
|
binding.batch_put_log_data(this[kDbContext], this[kBatchContext], data, options)
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
merge (key, value, options) {
|
|
48
|
+
// TODO (fix): Check if open...
|
|
49
|
+
binding.batch_merge(this[kDbContext], this[kBatchContext], key, value, options)
|
|
50
|
+
}
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
exports.ChainedBatch = ChainedBatch
|
package/package.json
CHANGED
|
Binary file
|