[
https://issues.apache.org/jira/browse/DRILL-2199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mehant Baid updated DRILL-2199:
-------------------------------
Attachment: DRILL-2199.patch
Uploaded patch to address the review comment.
> Wrong results while using case expression with decimal data type
> ----------------------------------------------------------------
>
> Key: DRILL-2199
> URL: https://issues.apache.org/jira/browse/DRILL-2199
> Project: Apache Drill
> Issue Type: Bug
> Reporter: Mehant Baid
> Assignee: Jinfeng Ni
> Attachments: DRILL-2199.patch
>
>
> Consider the below SQL statement:
> "select
> case when true then cast(employee_id as decimal(15, 5)) else cast('0.0' as
> decimal(5, 2)) end
> from cp.`employee.json` where employee_id = 1"
> This should return 1.00000 instead Drill returns 100000. In the case
> statement the first expression (condition expression) is nullable and the
> else expression is non-nullable. For our codegen to work correctly we make
> the non-nullable expression also nullable using convertToNullableXHolder()
> functions. These functions however do not preserve the scale and precision of
> the input, hence the output we get is the unscaled value of the decimal.
> Fix is to make the converToNullableDecimalHolder() functions preserve the
> scale and precision by returning the correct major type.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)