Skip to content

Commit 0d83374

Browse files
authored
Merge pull request #212 from Zhou-jw/adjust_construct_newkv_in_buildBatchOperation
refactor constructing newkv in building batchOperation
2 parents cd3b9c7 + ee5dbc7 commit 0d83374

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

src/main/java/com/alipay/oceanbase/hbase/OHTable.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -849,13 +849,19 @@ private void processColumnFilters(NavigableSet<byte[]> columnFilters,
849849
for (Map.Entry<byte[], NavigableSet<byte[]>> entry : familyMap.entrySet()) {
850850
if (entry.getValue() != null) {
851851
for (byte[] columnName : entry.getValue()) {
852-
String columnNameStr = Bytes.toString(columnName);
853-
columnNameStr = Bytes.toString(entry.getKey()) + "." + columnNameStr;
854-
columnFilters.add(columnNameStr.getBytes());
852+
byte[] family = entry.getKey();
853+
byte[] newQualifier = new byte[family.length + 1/* length of "." */ + columnName.length];
854+
System.arraycopy(family, 0, newQualifier, 0, family.length);
855+
newQualifier[family.length] = 0x2E; // 0x2E in utf-8 is "."
856+
System.arraycopy(columnName, 0, newQualifier, family.length + 1, columnName.length);
857+
columnFilters.add(newQualifier);
855858
}
856859
} else {
857-
String columnNameStr = Bytes.toString(entry.getKey()) + ".";
858-
columnFilters.add(columnNameStr.getBytes());
860+
byte[] family = entry.getKey();
861+
byte[] newQualifier = new byte[family.length + 1/* length of "."*/];
862+
System.arraycopy(family, 0, newQualifier, 0, family.length);
863+
newQualifier[family.length] = 0x2E; // 0x2E in utf-8 is "."
864+
columnFilters.add(newQualifier);
859865
}
860866
}
861867
}
@@ -2180,7 +2186,7 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
21802186
byte[] newQualifier = new byte[family.length + 1/* length of "." */ + oldQualifier.length];
21812187
System.arraycopy(family, 0, newQualifier, 0, family.length);
21822188
newQualifier[family.length] = 0x2E; // 0x2E in utf-8 is "."
2183-
System.arraycopy(oldQualifier, 0, newQualifier, family.length +1, oldQualifier.length );
2189+
System.arraycopy(oldQualifier, 0, newQualifier, family.length + 1, oldQualifier.length);
21842190
KeyValue newKV = modifyQualifier(kv, newQualifier);
21852191
batch
21862192
.addOperation(buildMutation(newKV, INSERT_OR_UPDATE, true, put.getTTL()));
@@ -2226,13 +2232,16 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
22262232
for (KeyValue kv : keyValueList) {
22272233
singleOpResultNum++;
22282234
if (isTableGroup) {
2229-
KeyValue new_kv = modifyQualifier(kv,
2230-
(Bytes.toString(family) + "." + Bytes.toString(kv
2231-
.getQualifier())).getBytes());
2235+
byte[] oldQualifier = kv.getQualifier();
2236+
byte[] newQualifier = new byte[family.length + 1/* length of "." */ + oldQualifier.length];
2237+
System.arraycopy(family, 0, newQualifier, 0, family.length);
2238+
newQualifier[family.length] = 0x2E; // 0x2E in utf-8 is "."
2239+
System.arraycopy(oldQualifier, 0, newQualifier, family.length + 1, oldQualifier.length);
2240+
KeyValue newKV = modifyQualifier(kv, newQualifier);
22322241
if (disExec) {
2233-
batch.addOperation(buildDeleteQueryAndMutate(new_kv, DEL, true, Long.MAX_VALUE));
2242+
batch.addOperation(buildDeleteQueryAndMutate(newKV, DEL, true, Long.MAX_VALUE));
22342243
} else {
2235-
batch.addOperation(buildMutation(new_kv, DEL, true, Long.MAX_VALUE));
2244+
batch.addOperation(buildMutation(newKV, DEL, true, Long.MAX_VALUE));
22362245
}
22372246
} else {
22382247
if (disExec) {

0 commit comments

Comments
 (0)