Skip to content

Commit

Permalink
Support StringAppendOperator(delimiter_char) constructor in java-api
Browse files Browse the repository at this point in the history
Summary:
Fixes #3336
Closes #3337

Differential Revision: D7196585

Pulled By: sagar0

fbshipit-source-id: a854f3fc906862ecba685b31946e4ef7c0b421c5
  • Loading branch information
javeme authored and facebook-github-bot committed Mar 9, 2018
1 parent c5302a8 commit f6156fb
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 5 deletions.
6 changes: 3 additions & 3 deletions java/rocksjni/merge_operator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@
/*
* Class: org_rocksdb_StringAppendOperator
* Method: newSharedStringAppendOperator
* Signature: ()J
* Signature: (C)J
*/
jlong Java_org_rocksdb_StringAppendOperator_newSharedStringAppendOperator
(JNIEnv* env, jclass jclazz) {
(JNIEnv* env, jclass jclazz, jchar jdelim) {
auto* sptr_string_append_op = new std::shared_ptr<rocksdb::MergeOperator>(
rocksdb::MergeOperators::CreateFromStringId("stringappend"));
rocksdb::MergeOperators::CreateStringAppendOperator((char) jdelim));
return reinterpret_cast<jlong>(sptr_string_append_op);
}

Expand Down
8 changes: 6 additions & 2 deletions java/src/main/java/org/rocksdb/StringAppendOperator.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@
*/
public class StringAppendOperator extends MergeOperator {
public StringAppendOperator() {
super(newSharedStringAppendOperator());
this(',');
}

private native static long newSharedStringAppendOperator();
public StringAppendOperator(char delim) {
super(newSharedStringAppendOperator(delim));
}

private native static long newSharedStringAppendOperator(final char delim);
@Override protected final native void disposeInternal(final long handle);
}
1 change: 1 addition & 0 deletions utilities/merge_operators.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class MergeOperators {
static std::shared_ptr<MergeOperator> CreateDeprecatedPutOperator();
static std::shared_ptr<MergeOperator> CreateUInt64AddOperator();
static std::shared_ptr<MergeOperator> CreateStringAppendOperator();
static std::shared_ptr<MergeOperator> CreateStringAppendOperator(char delim_char);
static std::shared_ptr<MergeOperator> CreateStringAppendTESTOperator();
static std::shared_ptr<MergeOperator> CreateMaxOperator();
static std::shared_ptr<MergeOperator> CreateBytesXOROperator();
Expand Down
4 changes: 4 additions & 0 deletions utilities/merge_operators/string_append/stringappend.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,8 @@ std::shared_ptr<MergeOperator> MergeOperators::CreateStringAppendOperator() {
return std::make_shared<StringAppendOperator>(',');
}

std::shared_ptr<MergeOperator> MergeOperators::CreateStringAppendOperator(char delim_char) {
return std::make_shared<StringAppendOperator>(delim_char);
}

} // namespace rocksdb

0 comments on commit f6156fb

Please sign in to comment.