hequn8128 commented on a change in pull request #9977: [FLINK-14497][python]
Support primitive data types in Python user-defined functions
URL: https://github.com/apache/flink/pull/9977#discussion_r338377272
##########
File path:
flink-python/src/main/java/org/apache/flink/table/runtime/typeutils/BeamTypeUtils.java
##########
@@ -64,207 +73,237 @@
private static final String EMPTY_STRING = "";
- public static Coder toCoder(LogicalType logicalType) {
- return logicalType.accept(new LogicalTypeToCoderConverter());
+ public static TypeSerializer toFlinkTypeSerializer(LogicalType
logicalType) {
+ return logicalType.accept(new
LogicalTypeToTypeSerializerConverter());
}
- public static Coder toBlinkCoder(LogicalType logicalType) {
- return logicalType.accept(new
LogicalTypeToBlinkCoderConverter());
+ public static TypeSerializer toBlinkTypeSerializer(LogicalType
logicalType) {
+ return logicalType.accept(new
LogicalTypeToBlinkTypeSerializerConverter());
}
public static FlinkFnApi.Schema.FieldType toProtoType(LogicalType
logicalType) {
return logicalType.accept(new
LogicalTypeToProtoTypeConverter());
}
- private static class LogicalTypeToCoderConverter implements
LogicalTypeVisitor<Coder> {
+ private static class LogicalTypeToTypeSerializerConverter implements
LogicalTypeVisitor<TypeSerializer> {
@Override
- public Coder visit(CharType charType) {
- return null;
+ public TypeSerializer visit(CharType charType) {
+ return StringSerializer.INSTANCE;
}
@Override
- public Coder visit(VarCharType varCharType) {
- return null;
+ public TypeSerializer visit(VarCharType varCharType) {
+ return StringSerializer.INSTANCE;
}
@Override
- public Coder visit(BooleanType booleanType) {
- return null;
+ public TypeSerializer visit(BooleanType booleanType) {
+ return BooleanSerializer.INSTANCE;
}
@Override
- public Coder visit(BinaryType binaryType) {
- return null;
+ public TypeSerializer visit(BinaryType binaryType) {
+ return BytePrimitiveArraySerializer.INSTANCE;
}
@Override
- public Coder visit(VarBinaryType varBinaryType) {
- return null;
+ public TypeSerializer visit(VarBinaryType varBinaryType) {
+ return BytePrimitiveArraySerializer.INSTANCE;
}
@Override
- public Coder visit(DecimalType decimalType) {
+ public TypeSerializer visit(DecimalType decimalType) {
Review comment:
Maybe it's not good to return null? For example, we can throw
`UnsupportedOperationException` here.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services