You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jing Zhang (Jira)" <ji...@apache.org> on 2021/11/26 03:52:00 UTC

[jira] [Commented] (CALCITE-4888) Fix type inferring when call RelBuilder.in with arguments that are different types.

    [ https://issues.apache.org/jira/browse/CALCITE-4888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17449368#comment-17449368 ] 

Jing Zhang commented on CALCITE-4888:
-------------------------------------

[~julianhyde]Thanks a lot for reply.
> As always, I recommend describing problems in the way that they manifest to end user. In this case, the does not directly affect people who are using SQL; the problem occurs when people call RelBuilder.in with arguments that are different types.

Make senses, I've updated the description based on your suggestion.

> If the types of the RelBuilder.in arguments are not compatible (e.g. INTEGER and BOOLEAN, or INTEGER and DATE) then RelBuilder should throw. There should be a test for that.

Make senses, I've updated the pr to add the tests cover this case.

> But what are the implications if, after casting, the arguments are no longer literals?

Would you please explain more about why the arguments would be no longer literals after casting type?

> Fix type inferring when call RelBuilder.in with arguments that are different types.
> -----------------------------------------------------------------------------------
>
>                 Key: CALCITE-4888
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4888
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Jing Zhang
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: image-2021-11-23-10-31-05-137.png
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> A problem would occur when people call RelBuilder.in with arguments that are different types.
> If the types of the RelBuilder.in arguments are not compatible (e.g. INTEGER and BOOLEAN, or INTEGER and DATE) then RelBuilder should throw. There should be a test for that.
> If the types are similar but not the same (e.g. INTEGER and SMALLINT or CHAR(5) and CHAR(7)) what should be behavior be? RelBuilder should introduce casts to the least restrictive type.
> Please note that: the update does not directly affect user who are using SQL. It would only effect user who build RelNode or RexNode by RelBuilder.in or RexBuilder.makeIn.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)