in connectors/rocketmq-connect-doris/src/main/java/org/apache/rocketmq/connect/doris/sink/DorisDialect.java [67:124]
private static void bindValue(Map<String, String> keyValue, Field field, Object value) {
switch (field.getSchema().getFieldType()) {
case INT8:
case BOOLEAN:
case FLOAT64:
case INT32:
case INT64:
case FLOAT32:
if (value == null) {
keyValue.put(field.getName(), "null");
} else {
keyValue.put(field.getName(), value.toString());
}
break;
case STRING:
if (value == null) {
keyValue.put(field.getName(), "null");
} else {
keyValue.put(field.getName(), (String) value);
}
break;
case BYTES:
if (value == null) {
keyValue.put(field.getName(), "null");
} else {
final byte[] bytes;
if (value instanceof ByteBuffer) {
final ByteBuffer buffer = ((ByteBuffer) value).slice();
bytes = new byte[buffer.remaining()];
buffer.get(bytes);
} else if (value instanceof BigDecimal) {
keyValue.put(field.getName(), value.toString());
break;
} else {
bytes = (byte[]) value;
}
keyValue.put(field.getName(), Arrays.toString(bytes));
}
break;
case DATETIME:
if (value == null) {
keyValue.put(field.getName(), "null");
} else {
java.sql.Date date;
if (value instanceof java.util.Date) {
date = new java.sql.Date(((java.util.Date) value).getTime());
} else {
date = new java.sql.Date((int) value);
}
keyValue.put(
field.getName(), date.toString()
);
}
break;
default:
throw new TableAlterOrCreateException("Field type not found " + field);
}
}