[ 
https://issues.apache.org/jira/browse/CALCITE-3731?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17015739#comment-17015739
 ] 

Feng Zhu commented on CALCITE-3731:
-----------------------------------

Agree with [~zabetak], *IF* function's logic is the same as that of *CASE 
WHEN*. We can make some transformation and reuse the CASE operator.

In addition, current PR's implemention has a limitation in null policy.

For example,
{code:java}
SELECT IF(null, 1, 2)

-----
the result should be 2{code}
 

> Add IF function for BigQuery, Hive and Spark Dialects
> -----------------------------------------------------
>
>                 Key: CALCITE-3731
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3731
>             Project: Calcite
>          Issue Type: Improvement
>          Components: core
>            Reporter: vaibhav jain
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> Adding support for *IF* function for BigQuery, Hive and Spark Dialects.
> *Syntax*- IF(condition, true_result, false_result)
> If *condition* is true, returns *true_result*, else returns *false_result*.
> Document links:
> [BigQuery|https://cloud.google.com/bigquery/docs/reference/standard-sql/conditional_expressions]
> [Hive 
> |https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-ConditionalFunctions]
> [Spark Sql|https://spark.apache.org/docs/2.3.1/api/sql/index.html#if]



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

Reply via email to