flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-10156) Drop the Table.writeToSink() method
Date Thu, 11 Oct 2018 08:58:00 GMT

    [ https://issues.apache.org/jira/browse/FLINK-10156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16646156#comment-16646156

ASF GitHub Bot commented on FLINK-10156:

fhueske commented on a change in pull request #6805: [FLINK-10156][table] Deprecate Table.writeToSink()
URL: https://github.com/apache/flink/pull/6805#discussion_r224367981

 File path: flink-libraries/flink-table/src/main/scala/org/apache/flink/table/api/table.scala
 @@ -944,7 +956,12 @@ class Table(
     * @param tableName Name of the registered [[TableSink]] to which the [[Table]] is written.
   def insertInto(tableName: String): Unit = {
-    tableEnv.insertInto(this, tableName, this.tableEnv.queryConfig)
+    this.logicalPlan match {
+      case _: LogicalTableFunctionCall =>
+        throw new ValidationException("TableFunction can only be used in join and leftOuterJoin.")
+      case _ =>
+        tableEnv.insertInto(this, tableName, this.tableEnv.queryConfig)
 Review comment:
   This doesn't work because `this.tableEnv` is null if the Table was generated from a `TableFunctionCall`.

   So we cannot call `insertInto(tableName, this.tableEnv.queryConfig)` because it throws
an NPE.

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

> Drop the Table.writeToSink() method
> -----------------------------------
>                 Key: FLINK-10156
>                 URL: https://issues.apache.org/jira/browse/FLINK-10156
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API &amp; SQL
>            Reporter: Fabian Hueske
>            Assignee: Fabian Hueske
>            Priority: Major
>              Labels: pull-request-available
> I am proposing to drop the {{Table.writeToSink()}} method.
> *What is the method doing?*
> The {{Table.writeToSink(TableSink)}} method emits a {{Table}} via a {{TableSink}}, for
example to a Kafka topic, a file, or a database.
> *Why should it be removed?*
> The {{writeToSink()}} method was introduced before the Table API supported the {{Table.insertInto(String)}}
method. The {{insertInto()}} method writes a table into a table that was previously registered
with a {{TableSink}} in the catalog. It is the inverse method to the {{scan()}} method and
the equivalent to an {{INSERT INTO ... SELECT}} SQL query.
> I think we should remove {{writeToSink()}} for the following reasons:
> 1. It offers the same functionality as {{insertInto()}}. Removing it would reduce duplicated
> 2. {{writeToSink()}} requires a {{TableSink}} instance. I think TableSinks (and TableSources)
should only be registered with the {{TableEnvironment}} and not be exposed to the "query part"
of the Table API / SQL.
> 3. Registering tables in a catalog and using them for input and output is more aligned
with SQL.

This message was sent by Atlassian JIRA

View raw message