You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ja...@apache.org on 2020/02/18 06:58:27 UTC

[flink] branch release-1.10 updated: [FLINK-16068][table-planner-blink] Fix DDL fails when both computed column and keyword-escaped column exist (#11101)

This is an automated email from the ASF dual-hosted git repository.

jark pushed a commit to branch release-1.10
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/release-1.10 by this push:
     new b3c035d  [FLINK-16068][table-planner-blink] Fix DDL fails when both computed column and keyword-escaped column exist (#11101)
b3c035d is described below

commit b3c035da1f0f7ef88233f4957bcf9c2c1f06310f
Author: Benchao Li <li...@gmail.com>
AuthorDate: Tue Feb 18 14:44:24 2020 +0800

    [FLINK-16068][table-planner-blink] Fix DDL fails when both computed column and keyword-escaped column exist (#11101)
---
 .../apache/flink/table/planner/calcite/SqlExprToRexConverter.java   | 6 ++++++
 .../apache/flink/table/planner/plan/schema/CatalogSourceTable.scala | 2 +-
 .../org/apache/flink/table/planner/catalog/CatalogTableITCase.scala | 6 +++---
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/calcite/SqlExprToRexConverter.java b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/calcite/SqlExprToRexConverter.java
index 19524ab..f45eb10 100644
--- a/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/calcite/SqlExprToRexConverter.java
+++ b/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/calcite/SqlExprToRexConverter.java
@@ -27,11 +27,17 @@ public interface SqlExprToRexConverter {
 
 	/**
 	 * Converts a SQL expression to a {@link RexNode} expression.
+	 *
+	 * @param expr a SQL expression which must be quoted and expanded,
+	 *             e.g. "`my_catalog`.`my_database`.`my_udf`(`f0`) + 1".
 	 */
 	RexNode convertToRexNode(String expr);
 
 	/**
 	 * Converts an array of SQL expressions to an array of {@link RexNode} expressions.
+	 *
+	 * @param exprs SQL expressions which must be quoted and expanded,
+	 *              e.g. "`my_catalog`.`my_database`.`my_udf`(`f0`) + 1".
 	 */
 	RexNode[] convertToRexNodes(String[] exprs);
 
diff --git a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/schema/CatalogSourceTable.scala b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/schema/CatalogSourceTable.scala
index 90ace18..96d35a9 100644
--- a/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/schema/CatalogSourceTable.scala
+++ b/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/schema/CatalogSourceTable.scala
@@ -105,7 +105,7 @@ class CatalogSourceTable[T](
             if (columnExprs.contains(name)) {
               columnExprs(name)
             } else {
-              name
+              s"`$name`"
             }
           }.toArray
       val rexNodes = toRexFactory.create(newRelTable.getRowType).convertToRexNodes(fieldExprs)
diff --git a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/catalog/CatalogTableITCase.scala b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/catalog/CatalogTableITCase.scala
index b16322d..6b16dfc 100644
--- a/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/catalog/CatalogTableITCase.scala
+++ b/flink-table/flink-table-planner-blink/src/test/scala/org/apache/flink/table/planner/catalog/CatalogTableITCase.scala
@@ -420,7 +420,7 @@ class CatalogTableITCase(isStreamingMode: Boolean) extends AbstractTestBase {
       """
         |create table t1(
         |  a int,
-        |  b varchar,
+        |  `time` varchar,
         |  c as my_udf(a)
         |) with (
         |  'connector' = 'COLLECTION'
@@ -430,7 +430,7 @@ class CatalogTableITCase(isStreamingMode: Boolean) extends AbstractTestBase {
       """
         |create table t2(
         |  a int,
-        |  b varchar,
+        |  `time` varchar,
         |  c int not null
         |) with (
         |  'connector' = 'COLLECTION'
@@ -439,7 +439,7 @@ class CatalogTableITCase(isStreamingMode: Boolean) extends AbstractTestBase {
     val query =
       """
         |insert into t2
-        |select t1.a, t1.b, t1.c from t1
+        |select t1.a, t1.`time`, t1.c from t1
       """.stripMargin
     tableEnv.sqlUpdate(sourceDDL)
     tableEnv.sqlUpdate(sinkDDL)