[ https://issues.apache.org/jira/browse/FLINK-17887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jark Wu reassigned FLINK-17887: ------------------------------- Assignee: Jark Wu > Improve interface of ScanFormatFactory and SinkFormatFactory > ------------------------------------------------------------ > > Key: FLINK-17887 > URL: https://issues.apache.org/jira/browse/FLINK-17887 > Project: Flink > Issue Type: Sub-task > Components: Table SQL / API > Reporter: Jark Wu > Assignee: Jark Wu > Priority: Major > Fix For: 1.11.0 > > > There is some problem with current ScanForamtFactory and SinkFormatFactory > interfaces: > 1) {{ScanFormat#createScanFormat}} only accepts {{ScanTableSource.Context}}, > which means it can’t work in lookup source. > 2) The naming of {{ScanFormat}} also indicates it is only used in scan > source. But a lookup source should be able to work with format too. > 3) It’s confusing that {{ScanFormatFactory#createScanFormat}} and > {{ScanFormat#createScanFormat}} (create itself?) > The proposed new interface strucutre: > {code:java} > interface DeserializationFormatFactory { > DeserializationSchemaProvider createDeserializationSchemaProvider( > DynamicTableFactory.Context context, ReadableConfig formatOptions); > } > interface SerializationFormatFactory { > SerializationSchemaProvider createSerializationSchemaProvider( > DynamicTableFactory.Context context, ReadableConfig formatOptions); > } > interface DeserializationSchemaProvider { > DeserializationSchema createDeserializationSchema( > DynamicTableSource.Context context, DataType producedDataType) > } > interface SerializationSchemaProvider{ > SerializationSchema createSerializationSchema( > DynamicTableSink.Context context, DataType consumedDataType); > } > {code} > The top-level user-facing interfaces are still > {{DeserializationFormatFactory}} and {{SerializationFormatFactory}}. This is > also good for future evolution, e.g. introducing new {{EncoderFormatFactory}} > and {{DecoderFormatFactory}} if we have a new runtime {{Encoder}} {{Decoder}} > in the future. This also solves our concerns: no concepts of SourceFormat and > SinkFormat . -- This message was sent by Atlassian Jira (v8.3.4#803005)