Paul Rogers created IMPALA-7740:
-----------------------------------

             Summary: Incorrect doc description for nvl2()
                 Key: IMPALA-7740
                 URL: https://issues.apache.org/jira/browse/IMPALA-7740
             Project: IMPALA
          Issue Type: Bug
          Components: Docs
    Affects Versions: Impala 3.0
            Reporter: Paul Rogers


Impala offers the NVL2() function from 
[Oracle|https://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_2049.htm#OLADM625].
 A clearer definition is 
[here|https://www.techonthenet.com/oracle/functions/nvl2.php]:

{quote}
The syntax for the NVL2 function in Oracle/PLSQL is:

{{NVL2( string1, value_if_not_null, value_if_null )}}
{quote}

Contrast that with the [Impala 
description|https://impala.apache.org/docs/build3x/html/topics/impala_conditional_functions.html]:

{quote}
Enhanced variant of the nvl() function. Tests an expression and returns 
different result values depending on whether it is NULL or not. _If the first 
argument is NULL, returns the second argument. If the first argument is not 
NULL, returns the third argument._ Equivalent to the nvl2() function from 
Oracle Database.
{quote}

(Emphasis added.) The description is exactly backward. To see this:

{noformat}
select n, nvl2(n, 10, 20) from ints;
+------+---------------------------+
| n    | if(n is not null, 10, 20) |
+------+---------------------------+
| NULL | 20                        |
| 0    | 10                        |
+------+---------------------------+
{noformat}

Hence, the implementation follows Oracle, the documentation is wrong.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to