Jark Wu created FLINK-17887:
-------------------------------

             Summary: 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
             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}






--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to