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,
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

Reply via email to