Skip to content

Commit dee9af4

Browse files
miyuan-ljrstuBirdFly
authored andcommitted
test (#59)
1 parent ac8a0ca commit dee9af4

File tree

2 files changed

+401
-0
lines changed

2 files changed

+401
-0
lines changed

src/main/java/com/alipay/oceanbase/hbase/filter/HBaseFilterUtils.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.hadoop.hbase.filter.*;
2222
import org.apache.hadoop.hbase.util.Bytes;
2323

24+
import java.lang.reflect.Field;
2425
import java.util.List;
2526

2627
@InterfaceAudience.Private
@@ -46,6 +47,12 @@ public static String toParseableString(Filter filter) {
4647
return toParseableString((ColumnPaginationFilter) filter);
4748
} else if (filter instanceof ColumnPrefixFilter) {
4849
return toParseableString((ColumnPrefixFilter) filter);
50+
} else if (filter instanceof FirstKeyOnlyFilter) {
51+
return toParseableString((FirstKeyOnlyFilter) filter);
52+
} else if (filter instanceof KeyOnlyFilter) {
53+
return toParseableString((KeyOnlyFilter) filter);
54+
} else if (filter instanceof TimestampsFilter) {
55+
return toParseableString((TimestampsFilter) filter);
4956
} else if (filter instanceof SkipFilter) {
5057
return toParseableString((SkipFilter) filter);
5158
} else if (filter instanceof WhileMatchFilter) {
@@ -132,6 +139,43 @@ private static String toParseableString(ColumnPrefixFilter filter) {
132139
return filter.getClass().getSimpleName() + "('" + Bytes.toString(filter.getPrefix()) + "')";
133140
}
134141

142+
private static String toParseableString(FirstKeyOnlyFilter filter) {
143+
return filter.getClass().getSimpleName() + "()";
144+
}
145+
146+
private static String toParseableString(KeyOnlyFilter filter) {
147+
boolean lenAsVal;
148+
try {
149+
Field field = filter.getClass().getDeclaredField("lenAsVal");
150+
field.setAccessible(true);
151+
lenAsVal = (boolean)field.get(filter);
152+
} catch (NoSuchFieldException | IllegalAccessException e) {
153+
throw new RuntimeException(e);
154+
}
155+
return filter.getClass().getSimpleName() + "(" + lenAsVal + ")";
156+
}
157+
158+
private static String toParseableString(TimestampsFilter filter) {
159+
StringBuilder paramBuilder = new StringBuilder();
160+
List<Long> timestamps = filter.getTimestamps();
161+
boolean canHint;
162+
try {
163+
Field field = filter.getClass().getDeclaredField("canHint");
164+
field.setAccessible(true);
165+
canHint = (boolean)field.get(filter);
166+
} catch (NoSuchFieldException | IllegalAccessException e) {
167+
throw new RuntimeException(e);
168+
}
169+
for (int i = 0; i < timestamps.size(); i ++) {
170+
Long timestamp = timestamps.get(i);
171+
paramBuilder.append(timestamp);
172+
paramBuilder.append(",");
173+
}
174+
String param = paramBuilder.toString();
175+
return filter.getClass().getSimpleName() + "("
176+
+ param + canHint + ")";
177+
}
178+
135179
private static String toParseableString(ColumnCountGetFilter filter) {
136180
return filter.getClass().getSimpleName() + '(' + filter.getLimit() + ')';
137181
}

0 commit comments

Comments
 (0)