Skip to content

Commit f9176e4

Browse files
committed
fix [multi cf] put random binary column, qualifier unexpectedly expands its original size
1 parent e112694 commit f9176e4

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2176,9 +2176,12 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
21762176
for (KeyValue kv : keyValueList) {
21772177
singleOpResultNum++;
21782178
if (isTableGroup) {
2179-
KeyValue new_kv = modifyQualifier(kv,
2180-
(Bytes.toString(family) + "." + Bytes.toString(kv.getQualifier()))
2181-
.getBytes());
2179+
byte [] old_qualifier = kv.getQualifier();
2180+
byte [] new_qualifier = new byte[family.length + 1/* length of "." */ + old_qualifier.length];
2181+
System.arraycopy(family, 0, new_qualifier, 0, family.length);
2182+
new_qualifier[family.length] = 0x2E; // 0x2E in utf-8 is "."
2183+
System.arraycopy(old_qualifier, 0, new_qualifier, family.length +1,old_qualifier.length );
2184+
KeyValue new_kv = modifyQualifier(kv, new_qualifier);
21822185
batch
21832186
.addOperation(buildMutation(new_kv, INSERT_OR_UPDATE, true, put.getTTL()));
21842187
} else {

0 commit comments

Comments
 (0)