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

Zoltan Haindrich updated HIVE-13555:
------------------------------------
    Attachment: HIVE-13555.2.patch

[~ashutoshc] i've made it more strict...I think it will be more safer this way 
too 

patch#2 will refuse to use different primitive type groups at the same time.

so: {{nullif('x',1)}} is invalid...for postgres this was invalid too, but psql 
interpreted {{nullif('1',1)}} as a valid...I think refusing to cast string all 
the way it's possible may cover user problems.

however...ibm things the 2 types should be casted in any way it's possible 
(patch#1)
https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/com.ibm.sqls.doc/ids_sqs_1446.htm

oracle does only note to cast numeric datatypes (#1 or #2)
https://docs.oracle.com/database/121/SQLRF/functions128.htm
however...this will do between all the other primitive types; I think that's 
fair - and i've adopted to only compare unknown types if they are the same.

i'm rejecting the VOID_GROUP as first argument...
because {{NULLIF(NULL,x)}} has no real use - and oracle have noted this 
explicitly...putting a null literal there must be a mistake.

I don't have a working set of sql servers to peek around now ;)


> Add nullif udf
> --------------
>
>                 Key: HIVE-13555
>                 URL: https://issues.apache.org/jira/browse/HIVE-13555
>             Project: Hive
>          Issue Type: Sub-task
>          Components: UDF
>            Reporter: Ashutosh Chauhan
>            Assignee: Zoltan Haindrich
>         Attachments: HIVE-13555.1.patch, HIVE-13555.2.patch
>
>
> {{nullif(exp1, exp2)}} is shorthand for: {{case when exp1 = exp2 then null 
> else exp1}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to