drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jinfeng Ni (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-2199) Wrong results while using case expression with decimal data type
Date Wed, 11 Feb 2015 03:04:11 GMT

    [ https://issues.apache.org/jira/browse/DRILL-2199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14315487#comment-14315487

Jinfeng Ni commented on DRILL-2199:


> 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

View raw message