Github user twalthr commented on a diff in the pull request: https://github.com/apache/flink/pull/5132#discussion_r159926701 --- Diff: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/StreamTableEnvironment.scala --- @@ -492,11 +509,16 @@ abstract class StreamTableEnvironment( throw new TableException( "The proctime attribute can only be defined once in a table schema.") } else { - // check that proctime is only appended - if (idx < fieldTypes.length) { - throw new TableException( - "The proctime attribute can only be appended to the table schema and not replace " + - "an existing field. Please move it to the end of the schema.") + // if the fields are referenced by position, + // it is only possible to append the time attribute at the end + if (isRefByPos) { + + // check that proctime is only appended + if (idx < fieldTypes.length) { + throw new TableException( + "The proctime attribute can only be appended to the table schema and not replace " + + "an existing field. Please move it to the end of the schema.") + } } proctime = Some(idx, name) --- End diff -- I keep the current behavior because this allows to have arbitrary table schemas.
---