Github user twalthr commented on a diff in the pull request:

    https://github.com/apache/flink/pull/6323#discussion_r202506126
  
    --- Diff: 
flink-connectors/flink-connector-kafka-base/src/main/java/org/apache/flink/streaming/connectors/kafka/KafkaTableSource.java
 ---
    @@ -54,51 +56,105 @@
      * override {@link #createKafkaConsumer(String, Properties, 
DeserializationSchema)}}.
      */
     @Internal
    -public abstract class KafkaTableSource
    -   implements StreamTableSource<Row>, DefinedProctimeAttribute, 
DefinedRowtimeAttributes {
    +public abstract class KafkaTableSource implements
    +           StreamTableSource<Row>,
    +           DefinedProctimeAttribute,
    +           DefinedRowtimeAttributes,
    +           DefinedFieldMapping {
    +
    +   // common table source attributes
    +   // TODO make all attributes final once we drop support for 
format-specific table sources
     
        /** The schema of the table. */
        private final TableSchema schema;
     
    +   /** Field name of the processing time attribute, null if no processing 
time field is defined. */
    +   private String proctimeAttribute;
    +
    +   /** Descriptor for a rowtime attribute. */
    +   private List<RowtimeAttributeDescriptor> rowtimeAttributeDescriptors;
    +
    +   /** Mapping for the fields of the table schema to fields of the 
physical returned type or null. */
    +   private Map<String, String> fieldMapping;
    +
    +   // Kafka-specific attributes
    +
        /** The Kafka topic to consume. */
        private final String topic;
     
        /** Properties for the Kafka consumer. */
        private final Properties properties;
     
    -   /** Type information describing the result type. */
    -   private TypeInformation<Row> returnType;
    -
    -   /** Field name of the processing time attribute, null if no processing 
time field is defined. */
    -   private String proctimeAttribute;
    -
    -   /** Descriptor for a rowtime attribute. */
    -   private List<RowtimeAttributeDescriptor> rowtimeAttributeDescriptors;
    +   /** Deserialization schema for decoding records from Kafka. */
    +   private final DeserializationSchema<Row> deserializationSchema;
     
        /** The startup mode for the contained consumer (default is {@link 
StartupMode#GROUP_OFFSETS}). */
    -   private StartupMode startupMode = StartupMode.GROUP_OFFSETS;
    +   private StartupMode startupMode;
     
        /** Specific startup offsets; only relevant when startup mode is {@link 
StartupMode#SPECIFIC_OFFSETS}. */
        private Map<KafkaTopicPartition, Long> specificStartupOffsets;
     
        /**
         * Creates a generic Kafka {@link StreamTableSource}.
         *
    -    * @param topic                 Kafka topic to consume.
    -    * @param properties            Properties for the Kafka consumer.
    -    * @param schema                Schema of the produced table.
    -    * @param returnType            Type information of the produced 
physical DataStream.
    +    * @param schema                      Schema of the produced table.
    +    * @param proctimeAttribute           Field name of the processing time 
attribute, null if no
    +    *                                    processing time field is defined.
    +    * @param rowtimeAttributeDescriptors Descriptor for a rowtime attribute
    +    * @param fieldMapping                Mapping for the fields of the 
table schema to
    --- End diff --
    
    Backward compatibility. It could have been null in the past.


---

Reply via email to