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)