[
https://issues.apache.org/jira/browse/DRILL-6193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16380938#comment-16380938
]
Hanumath Rao Maduri edited comment on DRILL-6193 at 2/28/18 9:18 PM:
---------------------------------------------------------------------
[~vvysotskyi] Thank you for your input. I have looked at that code. It looks
like we may require more changes than just overloading filter method in
DrillRelBuilder, because the filter method returns the RelBuilder and not just
the simplified predicates. Currently the client will call the build to build a
FilterNode. Unless we overload the build and use the original predicates to add
the removed join predicates, I think we cannot fix it. Please do let me know if
I am missing anything here.
was (Author: hanu.ncr):
[~vvysotskyi] Thank you for your input. I have looked at that code. It looks
like we may require more changes than just overloading filter method in
DrillRelBuilder, because the filter method returns the RelBuilder and the
simplified predicates. Currently the client will call the build to build a
FilterNode. Unless we overload the build and use the original predicates to add
the removed join predicates, I think we cannot fix it. Please do let me know if
I am missing anything here.
> Latest Calcite optimized out join condition and cause "This query cannot be
> planned possibly due to either a cartesian join or an inequality join"
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DRILL-6193
> URL: https://issues.apache.org/jira/browse/DRILL-6193
> Project: Apache Drill
> Issue Type: Bug
> Components: Query Planning & Optimization
> Affects Versions: 1.13.0
> Reporter: Chunhui Shi
> Assignee: Hanumath Rao Maduri
> Priority: Blocker
> Fix For: 1.13.0
>
>
> I got the same error on apache master's MapR profile on the tip(before Hive
> upgrade) and on changeset 9e944c97ee6f6c0d1705f09d531af35deed2e310, the last
> commit of Calcite upgrade with the failed query reported in functional test
> but now it is on parquet file:
>
> {quote}SELECT L.L_QUANTITY, L.L_DISCOUNT, L.L_EXTENDEDPRICE, L.L_TAX
>
> FROM cp.`tpch/lineitem.parquet` L, cp.`tpch/orders.parquet` O
> WHERE cast(L.L_ORDERKEY as int) = cast(O.O_ORDERKEY as int) AND
> cast(L.L_LINENUMBER as int) = 7 AND cast(L.L_ORDERKEY as int) = 10208 AND
> cast(O.O_ORDERKEY as int) = 10208;
> {quote}
> However, built Drill on commit ef0fafea214e866556fa39c902685d48a56001e1, the
> commit right before Calcite upgrade commits, the same query worked.
> This was caused by latest Calcite simplified the predicates and during this
> process, "cast(L.L_ORDERKEY as int) = cast(O.O_ORDERKEY as int) " was
> considered redundant and was removed, so the logical plan of this query is
> getting an always true condition for Join:
> {quote}DrillJoinRel(condition=[true], joinType=[inner])
> {quote}
> While in previous version we have
> {quote}DrillJoinRel(condition=[=($5, $0)], joinType=[inner])
> {quote}
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)