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

James Turton updated DRILL-8136:
--------------------------------
    Description: 
The existing implicit casting system is built on simplistic total ordering of 
data types[1] that yields oddities such as TINYINT being regarded as the 
closest numeric type to VARCHAR. This, in turn, hurts the range of data types 
with which SQL functions can be used. E.g. `select sqrt('3.1415926')` works in 
many RDBMSes but not in Drill while `select '123' + 456` does work in Drill. In 
addition the limitations of the existing type precedence list mean that it has 
been supplmented with ad hoc secondary casting rules that go in the opposite 
direction. 

This Issue proposes a new, more flexible definition of casting distance based 
on a weighted directed graph built over the Drill data types.

[1] 
https://drill.apache.org/docs/supported-data-types/#implicit-casting-precedence-of-data-types

  was:The existing implicit casting system is built on simplistic total 
ordering of data types that yields oddities such as TINYINT being regarded as 
the closest numeric type to VARCHAR. This, in turn, hurts the range of data 
types with which SQL functions can be used. E.g. `select sqrt('3.1415926')` 
works in many RDBMSes, and will in Drill too if we improve the implcit casting 
system.


> Overhaul implict type cast system
> ---------------------------------
>
>                 Key: DRILL-8136
>                 URL: https://issues.apache.org/jira/browse/DRILL-8136
>             Project: Apache Drill
>          Issue Type: Improvement
>            Reporter: Esther Buchwalter
>            Assignee: James Turton
>            Priority: Minor
>
> The existing implicit casting system is built on simplistic total ordering of 
> data types[1] that yields oddities such as TINYINT being regarded as the 
> closest numeric type to VARCHAR. This, in turn, hurts the range of data types 
> with which SQL functions can be used. E.g. `select sqrt('3.1415926')` works 
> in many RDBMSes but not in Drill while `select '123' + 456` does work in 
> Drill. In addition the limitations of the existing type precedence list mean 
> that it has been supplmented with ad hoc secondary casting rules that go in 
> the opposite direction. 
> This Issue proposes a new, more flexible definition of casting distance based 
> on a weighted directed graph built over the Drill data types.
> [1] 
> https://drill.apache.org/docs/supported-data-types/#implicit-casting-precedence-of-data-types



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to