@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 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/rocksdb",
3
- "version": "7.0.19",
3
+ "version": "7.0.20",
4
4
  "description": "A low-level Node.js RocksDB binding",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
Binary file