[
https://issues.apache.org/jira/browse/FLINK-32679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17824995#comment-17824995
]
Jeyhun Karimov commented on FLINK-32679:
----------------------------------------
Hi [~grandfisher] the mentioned query does pushes the join conditions down the
join operator (I verified below with the current master -
d6a4eb966fbc47277e07b79e7c64939a62eb1d54). Or am I missing something?
{code:java}
Calc(select=[CAST(0 AS INTEGER) AS id, b, CAST(0 AS INTEGER) AS id0, b0, CAST(0
AS INTEGER) AS id1, b1, CAST(0 AS INTEGER) AS id2, b2, CAST(0 AS INTEGER) AS
id3, b3])
+- Join(joinType=[InnerJoin], where=[true], select=[b, b0, b1, b2, b3],
leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
:- Exchange(distribution=[single])
: +- Join(joinType=[InnerJoin], where=[true], select=[b, b0, b1, b2],
leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
: :- Exchange(distribution=[single])
: : +- Join(joinType=[InnerJoin], where=[true], select=[b, b0, b1],
leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
: : :- Exchange(distribution=[single])
: : : +- Join(joinType=[InnerJoin], where=[true], select=[b, b0],
leftInputSpec=[NoUniqueKey], rightInputSpec=[NoUniqueKey])
: : : :- Exchange(distribution=[single])
: : : : +- Calc(select=[b], where=[(id = 0)])
: : : : +- TableSourceScan(table=[[default_catalog,
default_database, v1]], fields=[id, b])
: : : +- Exchange(distribution=[single])
: : : +- Calc(select=[b], where=[(id = 0)])
: : : +- TableSourceScan(table=[[default_catalog,
default_database, v2]], fields=[id, b])
: : +- Exchange(distribution=[single])
: : +- Calc(select=[b], where=[(0 = id)])
: : +- TableSourceScan(table=[[default_catalog,
default_database, v3]], fields=[id, b])
: +- Exchange(distribution=[single])
: +- Calc(select=[b], where=[(0 = id)])
: +- TableSourceScan(table=[[default_catalog, default_database,
v4]], fields=[id, b])
+- Exchange(distribution=[single])
+- Calc(select=[b], where=[(0 = id)])
+- TableSourceScan(table=[[default_catalog, default_database, v5]],
fields=[id, b]){code}
> Filter conditions cannot be pushed to JOIN in some case
> -------------------------------------------------------
>
> Key: FLINK-32679
> URL: https://issues.apache.org/jira/browse/FLINK-32679
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / Planner
> Reporter: grandfisher
> Priority: Major
>
> There is a case
> {code:java}
> SELECT a.id, b.id, c.id, d.id, e.id
> , f.id
> FROM `table-v1` a
> INNER JOIN `table-v2` b ON a.id = b.id
> INNER JOIN `table-v3` c ON b.id = c.id
> INNER JOIN `table-v4` d ON c.id = d.id
> INNER JOIN `table-v5` e ON d.id = e.id
> INNER JOIN `table-v6` f ON a.id = f.id
> WHERE f.id = 0
> {code}
> In this sql, each table should have a condition {*}id=0{*}, but actually only
> table *f* and *a* has this condition.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)