You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2026/09/24 02:02:00 UTC
[jira] [Updated] (FLINK-40753) Correlated subqueries over SQL VALUES fail during decorrelation
[ https://issues.apache.org/jira/browse/FLINK-40753?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated FLINK-40753:
-----------------------------------
Labels: pull-request-available (was: )
> Correlated subqueries over SQL VALUES fail during decorrelation
> ---------------------------------------------------------------
>
> Key: FLINK-40753
> URL: https://issues.apache.org/jira/browse/FLINK-40753
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 2.4.0
> Environment: Flink 2.4-SNAPSHOT, upstream master at 43c220f6dc3.
> Java 21 on macOS.
> Reproduced in both batch and streaming modes using TableEnvironment.explainSql().
> Reporter: FangHao
> Assignee: FangHao
> Priority: Major
> Labels: pull-request-available
>
> Correlated EXISTS / NOT EXISTS subqueries over SQL VALUES fail during planning in both batch and streaming modes. This is reproducible through the Java TableEnvironment without the Python DataFrame API, on upstream master at 43c220f6dc3.
> Reproducer:
> {code:sql}
> SELECT l.id
> FROM (VALUES (1), (2)) AS l(id)
> WHERE NOT EXISTS (
> SELECT 1
> FROM (VALUES (1), (2)) AS r(right_id)
> WHERE l.id = r.right_id
> );
> {code}
> Expected: the query plans successfully and returns no rows.
> Actual:
> {code}
> org.apache.flink.table.api.TableException:
> unexpected correlate variable $cor0 in the plan
> {code}
> SubQueryDecorrelator.decorrelateRel(Values) returns a null Frame, which signals that decorrelation cannot continue. A Values node does not require modification, but it should return an identity Frame so its parent filter/project can still be decorrelated.
> Once this path is enabled, project decorrelation must also handle RelOptUtil.createProject simplifying a projection to Values, rather than assuming the result is always a LogicalProject.
> A fix has been validated locally with batch/streaming plan tests and batch execution tests covering NULL keys, duplicate rows, empty inputs, projections, filters, and computed keys.
> Discovered while implementing FLINK-40419. Reviewer discussion:
> https://github.com/apache/flink/pull/29201#discussion_r4068948306
> I would like to work on this fix. Could a committer assign this issue to me?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)