[
https://issues.apache.org/jira/browse/PIG-3375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Cheolsoo Park updated PIG-3375:
-------------------------------
Status: Patch Available (was: Open)
> CASE does not preserve the order of when branches
> -------------------------------------------------
>
> Key: PIG-3375
> URL: https://issues.apache.org/jira/browse/PIG-3375
> Project: Pig
> Issue Type: Bug
> Reporter: Cheolsoo Park
> Assignee: Cheolsoo Park
> Fix For: 0.12
>
> Attachments: PIG-3375.patch
>
>
> Currently CASE expression builds nested BinCond expressions in the following
> order: from top to bottom when branches => from in to out bin conds.
> This can be confusing if non-mutually exclusive conditions are used in when
> branches. For example,
> {code}
> CASE
> WHEN x > 100 THEN 'a'
> WHEN x > 50 THEN 'b'
> ELSE 'c'
> END
> {code}
> is converted to
> {code}
> x > 50 ? 'b' : ( x > 100 ? 'a' : 'c' )
> {code}
> Now if x is 1000, the result is 'b', which is not quite expected.
> Instead, we should construct nested BinCond expressions in the same order as
> that of when branches, i.e.
> {code}
> x > 100 ? 'a' : ( x > 50 ? 'b' : 'c' )
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira