Hi Flink developers, When implementing `JDBCTableSource` with `ProjectableTableSource` interface I'm confused by the `projectFields` method.
The java doc of the `projectFields` states that (It also has a typo... poduced -> produced): > Creates a copy of the {@link TableSource} that projects its output to the > given field indexes. > The field indexes relate to the physical poduced data type ({@link > TableSource#getProducedDataType()}) and not to the table schema ({@link > TableSource#getTableSchema} of the {@link TableSource}. So my understanding of this java doc is that, if the table schema of the source is {a: Int, b: Double, c: String, d: Long} and the produced data type of the source is {a: Int, c: String, d: Long}. Then if user writes "select c, d from my_table" then the project field indices should be {1, 2} instead of {2, 3} (because they should be related to the produced type and not to the schema). But the implementation of `CSVTableSource` says otherwise. The field indices are related to the schema, not to the produced data type. I pick the implementation of `CSVTableSource` to implement JDBC table source (as `CSVTableSource` obviously passed all the test cases). So which one is correct, my understanding on the java doc or the implementation of `CSVTableSource`? Thanks.