Github user fhueske commented on a diff in the pull request:
https://github.com/apache/flink/pull/5240#discussion_r162947812
--- Diff:
flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/BatchTableEnvironment.scala
---
@@ -107,6 +111,16 @@ abstract class BatchTableEnvironment(
}
}
+ /**
+ * Creates a table from a descriptor that describes the resulting table
schema, the source
+ * connector, source encoding, and other properties.
+ *
+ * @param schema schema descriptor describing the table to create
+ */
+ def createTable(schema: Schema): BatchTableSourceDescriptor = {
--- End diff --
I'm not sure about the approach of returning a `TableSourceDescriptor`. I
think it would be better if the table creation and registration would be
completed within this method, i.e., the table should be completely defined by
the argument of the method.
For example
```
tEnv.registerTableSource(
"MyTable",
TableSource.create(tEnv)
.withSchema(
Schema()
.field(...)
.field(...))
.withConnector()
...
.toTableSource()
)
```
In this design, we would reuse existing `registerTableSource` method and
`TableSource.create` is a static method that returns a `TableSourceDescriptor`.
Not sure if this is the best approach, but I like that the table is completely
defined within the method call.
---