Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-8136

Overhaul implict type casting logic

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 1.20.2
    • 1.21.0
    • None
    • None

    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 or DATE the closest type to FLOAT8. 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, confusingly, `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

      Attachments

        Activity

          People

            dzamo James Turton
            ebuchwalter Esther Buchwalter
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: