You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "krooswu (Jira)" <ji...@apache.org> on 2026/05/07 06:38:00 UTC

[jira] (CALCITE-7475) Babel parser allows postfix access after PostgreSQL-style :: infix cast

    [ https://issues.apache.org/jira/browse/CALCITE-7475 ]


    krooswu deleted comment on CALCITE-7475:
    ----------------------------------

was (Author: JIRAUSER308217):
hi,Mihai, do you envision making the {{::}} infix cast a *core operator* in Calcite (e.g., moving it to {{{}SqlStdOperatorTable{}}}) to support this syntax as a standard alternative to {{CAST}} across more dialects?

> Babel parser allows postfix access after PostgreSQL-style :: infix cast
> -----------------------------------------------------------------------
>
>                 Key: CALCITE-7475
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7475
>             Project: Calcite
>          Issue Type: Improvement
>          Components: babel
>    Affects Versions: 1.41.0
>            Reporter: Tamas Mate
>            Assignee: krooswu
>            Priority: Major
>              Labels: pull-request-available
>
> In the Babel parser, InfixCast currently continues with regular postfix parsing after expr "::" type.
> This means the parser accepts postfix forms around "::" that go beyond a plain infix cast.
> Existing tests already cover examples such as:
>  
> {code:java}
> select v.field::integer,
>   arr[1].field::varchar,
>   v.field.field2::integer,
>   v.field[2]::integer
> from t
> select v::varchar array[1].field from t
> select (v::varchar array)[1].field from t{code}
>  
>  
> The current behavior is subtle because parentheses change how the postfix is associated. The existing tests expect:
>  
>  
> {code:java}
> select v::varchar array[1].field from t{code}
> to unparse as
>  
>  
> {code:java}
> SELECT `V` :: (VARCHAR ARRAY[1].`FIELD`)
> FROM `T`{code}
> while
>  
>  
> {code:java}
> select (v::varchar array)[1].field from t{code}
> unparses as
>  
>  
> {code:java}
> SELECT (`V` :: VARCHAR ARRAY[1].`FIELD`)
> FROM `T`{code}
> This ticket is to decide whether postfix access after "::" should be supported in Babel at all, and if so, to document and test the intended precedence rules more explicitly.
>  



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