You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "godfrey he (Jira)" <ji...@apache.org> on 2019/12/26 06:55:00 UTC
[jira] [Commented] (FLINK-15381) INSERT INTO VALUES statement fails
if a cast project is applied
[ https://issues.apache.org/jira/browse/FLINK-15381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17003492#comment-17003492 ]
godfrey he commented on FLINK-15381:
------------------------------------
the reason is: the original {{LogicalProject}} has collation trait ({{[1]}} which means the second field is ordered and its direction is ascending), but when {{LogicalProject}} converts to {{LogicalCalc}} in {{ProjectToCalcRule}}, the collation info of new Calc is empty. The root cause is the collation derive logic on {{RelSubset}} in {{RelMdCollation}} in not collect.
> INSERT INTO VALUES statement fails if a cast project is applied
> ---------------------------------------------------------------
>
> Key: FLINK-15381
> URL: https://issues.apache.org/jira/browse/FLINK-15381
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Reporter: Jark Wu
> Assignee: godfrey he
> Priority: Blocker
> Fix For: 1.10.0
>
>
> The following query will fail:
> {code:scala}
> @Test
> def test(): Unit = {
> val sinkDDL =
> """
> |create table t2(
> | a int,
> | b string
> |) with (
> | 'connector' = 'COLLECTION'
> |)
> """.stripMargin
> val query =
> """
> |insert into t2 select cast(a as int), cast(b as varchar) from (values (3, 'c')) T(a,b)
> """.stripMargin
> tableEnv.sqlUpdate(sinkDDL)
> tableEnv.sqlUpdate(query)
> execJob("testJob")
> }
> {code}
> exception:
> {code}
> org.apache.flink.table.api.TableException: Cannot generate a valid execution plan for the given query:
> LogicalSink(name=[`default_catalog`.`default_database`.`t2`], fields=[a, b])
> +- LogicalProject(EXPR$0=[$0], EXPR$1=[CAST($1):VARCHAR(2147483647) CHARACTER SET "UTF-16LE" NOT NULL])
> +- LogicalValues(type=[RecordType(INTEGER a, CHAR(1) b)], tuples=[[{ 3, _UTF-16LE'c' }]])
> This exception indicates that the query uses an unsupported SQL feature.
> Please check the documentation for the set of currently supported SQL features.
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)