You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "DB Tsai (Jira)" <ji...@apache.org> on 2020/08/31 21:01:00 UTC

[jira] [Resolved] (SPARK-32721) Simplify if clauses with null and boolean

     [ https://issues.apache.org/jira/browse/SPARK-32721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

DB Tsai resolved SPARK-32721.
-----------------------------
    Fix Version/s: 3.1.0
       Resolution: Fixed

Issue resolved by pull request 29567
[https://github.com/apache/spark/pull/29567]

> Simplify if clauses with null and boolean
> -----------------------------------------
>
>                 Key: SPARK-32721
>                 URL: https://issues.apache.org/jira/browse/SPARK-32721
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 3.0.0
>            Reporter: Chao Sun
>            Assignee: Chao Sun
>            Priority: Major
>             Fix For: 3.1.0
>
>
> The following if clause:
> {code:sql}
> if(p, null, false) 
> {code}
> can be simplified to:
> {code:sql}
> and(p, null)
> {code}
> And similarly, the following clause:
> {code:sql}
> if(p, null, true)
> {code}
> can be simplified to:
> {code:sql}
> or(not(p), null)
> {code}
> iff predicate {{p}} is deterministic, i.e., can be evaluated to either true or false, but not null.
> {{and}} and {{or}} clauses are more optimization friendly. For instance, by converting {{if(col > 42, null, false)}} to {{and(col > 42, null)}}, we can potentially push the filter {{col > 42}} down to data sources to avoid unnecessary IO.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org