in inlong-sort/sort-common/src/main/java/org/apache/inlong/sort/protocol/Metadata.java [71:133]
default String getMetadataType(MetaField metaField) {
if (!supportedMetaFields().contains(metaField)) {
throw new UnsupportedOperationException(String.format("Unsupport meta field for %s: %s",
this.getClass().getSimpleName(), metaField));
}
String metadataType;
switch (metaField) {
case TABLE_NAME:
case DATABASE_NAME:
case OP_TYPE:
case DATA_CANAL:
case DATA:
case DATA_DEBEZIUM:
case COLLECTION_NAME:
case SCHEMA_NAME:
case KEY:
case VALUE:
case HEADERS_TO_JSON_STR:
metadataType = "STRING";
break;
case OP_TS:
case TS:
case TIMESTAMP:
metadataType = "TIMESTAMP_LTZ(3)";
break;
case IS_DDL:
metadataType = "BOOLEAN";
break;
case SQL_TYPE:
metadataType = "MAP<STRING, INT>";
break;
case MYSQL_TYPE:
metadataType = "MAP<STRING, STRING>";
break;
case ORACLE_TYPE:
metadataType = "MAP<STRING, STRING>";
break;
case PK_NAMES:
metadataType = "ARRAY<STRING>";
break;
case HEADERS:
metadataType = "MAP<STRING, BINARY>";
break;
case BATCH_ID:
case PARTITION:
case OFFSET:
case AUDIT_DATA_TIME:
metadataType = "BIGINT";
break;
case UPDATE_BEFORE:
metadataType = "ARRAY<MAP<STRING, STRING>>";
break;
case DATA_BYTES:
case DATA_BYTES_DEBEZIUM:
case DATA_BYTES_CANAL:
metadataType = "BYTES";
break;
default:
throw new UnsupportedOperationException(String.format("Unsupport meta field for %s: %s",
this.getClass().getSimpleName(), metaField));
}
return metadataType;
}