You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "KaiXinXIaoLei (JIRA)" <ji...@apache.org> on 2018/03/01 01:23:00 UTC
[jira] [Created] (SPARK-23540) The `where exists' action in
optimized logical plan should be optimized
KaiXinXIaoLei created SPARK-23540:
-------------------------------------
Summary: The `where exists' action in optimized logical plan should be optimized
Key: SPARK-23540
URL: https://issues.apache.org/jira/browse/SPARK-23540
Project: Spark
Issue Type: Improvement
Components: SQL
Affects Versions: 2.3.0
Reporter: KaiXinXIaoLei
The optimized logical plan of query 'select * from tt1 where exists (select * from tt2 where tt1.i = tt2.i);` is :
>== Optimized Logical Plan ==
>Join LeftSemi, (i#143 = i#145)
>:- MetastoreRelation default, tt1
>+- MetastoreRelation default, tt2
But the query of `select * from tt1 left semi join tt2 on tt2.i = tt1.i` is :
>== Optimized Logical Plan ==
Join LeftSemi, (i#152 = i#150)
:- Filter isnotnull(i#150)
: +- MetastoreRelation default, tt1
+- Project [i#152|#152]
+- MetastoreRelation default, tt2
So i think the optimized logical plan of 'select * from tt1 where exists (select * from tt2 where tt1.i = tt2.i);` should be further optimization.
== Optimized Logical Plan ==
Join LeftSemi, (i#143 = i#145)
:- MetastoreRelation default, tt1
+- MetastoreRelation default, tt2
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org