[ https://issues.apache.org/jira/browse/FLINK-8854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16395220#comment-16395220 ]
ASF GitHub Bot commented on FLINK-8854: --------------------------------------- Github user xccui commented on a diff in the pull request: https://github.com/apache/flink/pull/5662#discussion_r173791129 --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/descriptors/SchemaValidator.scala --- @@ -148,6 +148,13 @@ object SchemaValidator { val schema = properties.getTableSchema(SCHEMA) + // add all source fields first because rowtime might reference one of them + toScala(sourceSchema).map(_.getColumnNames).foreach { names => --- End diff -- Not really. I was justing refactoring #5610. For convenience, I used the existing class `org.apache.flink.formats.avro.generated.User` in a test case, but it gets so many fields to be mapped. 😄 > Mapping of SchemaValidator.deriveFieldMapping() is incorrect. > ------------------------------------------------------------- > > Key: FLINK-8854 > URL: https://issues.apache.org/jira/browse/FLINK-8854 > Project: Flink > Issue Type: Bug > Components: Table API & SQL > Affects Versions: 1.5.0 > Reporter: Fabian Hueske > Assignee: Timo Walther > Priority: Blocker > Fix For: 1.5.0, 1.6.0 > > > The field mapping returned by {{SchemaValidator.deriveFieldMapping()}} is not > correct. > It should not only include all fields of the table schema, but also all > fields of the format schema (mapped to themselves). Otherwise, it is not > possible to use a timestamp extractor on a field that is not in table schema. > For example this configuration would fail: > {code} > sources: > - name: TaxiRides > schema: > - name: rideId > type: LONG > - name: rowTime > type: TIMESTAMP > rowtime: > timestamps: > type: "from-field" > from: "rideTime" > watermarks: > type: "periodic-bounded" > delay: "60000" > connector: > .... > format: > property-version: 1 > type: json > schema: "ROW(rideId LONG, rideTime TIMESTAMP)" > {code} > because {{rideTime}} is not in the table schema. -- This message was sent by Atlassian JIRA (v7.6.3#76005)