[
https://issues.apache.org/jira/browse/CALCITE-5685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17722102#comment-17722102
]
ZheHu commented on CALCITE-5685:
--------------------------------
Before going further, I want to make sure I'm doing it right. I've seen related
work on BigQuery functions, it's clever to defer type check from parsing to
validating, which all based on current SqlType in Calcite. Back to this case,
I've implement UNSIGNED as one type(not sure how to achieve this without
adopting MySQL type system), to make CAST function work as expected. Here is my
work so far
[mysql-convert|https://github.com/ILuffZhe/calcite/commit/9ba88d44ab51f4ff6368a55cd9335c4c63d31aba].
I'll try to find out whether there is one more elegant way to do it.
> Support MySQL CONVERT function that works on data types
> -------------------------------------------------------
>
> Key: CALCITE-5685
> URL: https://issues.apache.org/jira/browse/CALCITE-5685
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.34.0
> Reporter: ZheHu
> Assignee: ZheHu
> Priority: Minor
>
> CONVERT function in MySQL has two usage:
> # convert(s USING transcodingName): as described in
> [CALCITE-5664|https://issues.apache.org/jira/projects/CALCITE/issues/CALCITE-5664]
> # convert(value, type): equivalent to CAST function that converts value to
> specific type.
> Here are some examples:
> * convert(150, CHAR)
> * convert(now(), DATE)
> * convert('9.5', DECIMAL(10, 2))
> * convert(15, SIGNED)
> * convert(-2, UNSIGNED)
> Noted: for CONVERT or CAST function in MySQL, they only support converting to
> some specific data
> types(binary、char、date、time、datetime、decimal、signed、unsigned. Moreover, the
> last two aren't JDBC sql Types).
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)