in holo-client/src/main/java/com/alibaba/hologres/client/utils/RecordChecker.java [54:132]
private static void checkObject(TableSchema schema, Column column, Object value) throws HoloClientException {
if (value == null) {
checkNull(schema, column);
} else if (value instanceof Short) {
checkShort(schema, column, (Short) value);
} else if (value instanceof Integer) {
checkInteger(schema, column, (Integer) value);
} else if (value instanceof Long) {
checkLong(schema, column, (Long) value);
} else if (value instanceof BigDecimal) {
checkBigDecimal(schema, column, (BigDecimal) value);
} else if (value instanceof Float) {
checkFloat(schema, column, (Float) value);
} else if (value instanceof Double) {
checkDouble(schema, column, (Double) value);
} else if (value instanceof Boolean) {
checkBoolean(schema, column, (Boolean) value);
} else if (value instanceof LocalDateTime) {
checkLocalDateTime(schema, column, (LocalDateTime) value);
} else if (value instanceof Timestamp) { // Timestamp must before Date.
checkTimeStamp(schema, column, (Timestamp) value);
} else if (value instanceof Time) { // Time must before Date.
checkTime(schema, column, (Time) value);
} else if (value instanceof Date) {
checkDate(schema, column, (Date) value);
} else if (value instanceof String[]) {
checkStringArray(schema, column, (String[]) value);
} else if (value instanceof int[]) {
checkIntegerArray(schema, column, (int[]) value);
} else if (value instanceof Integer[]) {
checkIntegerArray(schema, column, (Integer[]) value);
} else if (value instanceof long[]) {
checkLongArray(schema, column, (long[]) value);
} else if (value instanceof Long[]) {
checkLongArray(schema, column, (Long[]) value);
} else if (value instanceof float[]) {
checkFloatArray(schema, column, (float[]) value);
} else if (value instanceof Float[]) {
checkFloatArray(schema, column, (Float[]) value);
} else if (value instanceof double[]) {
checkDoubleArray(schema, column, (double[]) value);
} else if (value instanceof Double[]) {
checkDoubleArray(schema, column, (Double[]) value);
} else if (value instanceof boolean[]) {
checkBooleanArray(schema, column, (boolean[]) value);
} else if (value instanceof Boolean[]) {
checkBooleanArray(schema, column, (Boolean[]) value);
} else if (value instanceof List) {
List<?> list = (List<?>) value;
checkObject(schema, column, list.toArray());
} else if (value instanceof byte[]) {
switch (column.getType()) {
case Types.OTHER:
if ("roaringbitmap".equals(column.getTypeName())) {
checkRoaringbitmap(schema, column, (byte[]) value);
break;
}
case Types.BINARY:
checkBytea(schema, column, (byte[]) value);
default:
}
} else if (value instanceof String) {
switch (column.getType()) {
case Types.OTHER:
if ("json".equals(column.getTypeName())) {
checkJson(schema, column, (String) value);
break;
} else if ("jsonb".equals(column.getTypeName())) {
checkJsonb(schema, column, (String) value);
break;
}
default:
checkString(schema, column, value.toString());
}
} else {
checkString(schema, column, value.toString());
}
}