[ https://issues.apache.org/jira/browse/DRILL-2199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jinfeng Ni reassigned DRILL-2199: --------------------------------- Assignee: Mehant Baid (was: Jinfeng Ni) > 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: Mehant Baid > 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)