You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Shengkai Fang (Jira)" <ji...@apache.org> on 2022/07/01 02:31:00 UTC
[jira] [Assigned] (FLINK-26361) "Unexpected correlate variable $cor0" when using hive dialect to write a subquery
[ https://issues.apache.org/jira/browse/FLINK-26361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shengkai Fang reassigned FLINK-26361:
-------------------------------------
Assignee: luoyuxia
> "Unexpected correlate variable $cor0" when using hive dialect to write a subquery
> ---------------------------------------------------------------------------------
>
> Key: FLINK-26361
> URL: https://issues.apache.org/jira/browse/FLINK-26361
> Project: Flink
> Issue Type: Sub-task
> Reporter: luoyuxia
> Assignee: luoyuxia
> Priority: Major
> Labels: pull-request-available
>
> With hive dialect, can be reproduced using such code:
> {code:java}
> tableEnv.executeSql("CREATE TABLE src (key string, value string)");
> tableEnv.executeSql("create view cv1 as \n"
> + "select * \n"
> + "from src b where exists\n"
> + " (select a.key \n"
> + " from src a \n"
> + " where b.value = a.value )");
> List<Row> results =
> CollectionUtil.iteratorToList(tableEnv.executeSql("select * from src where src"
> + ".key in (select key from cv1)").collect());
> {code}
> The plan for such sql is :
> {code:java}
> LogicalSink(table=[*anonymous_collect$1*], fields=[key, value])
> LogicalProject(key=[$0], value=[$1])
> LogicalFilter(condition=[IN($0, {
> LogicalProject(key=[$0])
> LogicalProject(key=[$0], value=[$1])
> LogicalFilter(condition=[EXISTS({
> LogicalProject(key=[$0])
> LogicalFilter(condition=[=($cor0.value, $1)])
> LogicalTableScan(table=[[test-catalog, default, src]])
> })])
> LogicalTableScan(table=[[test-catalog, default, src]])
> })])
> LogicalTableScan(table=[[test-catalog, default, src]])
> {code}
> The node LogicalFilter(condition=[=($cor0.value, $1)]) contains `$cor0`, but miss variablesSet. To fix it, we should pass variablesSet when create LogicalFilter.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)