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

Ramin Gharib reassigned FLINK-41345:
------------------------------------

    Assignee: Ramin Gharib

> Add VARIANT_OBJECT, VARIANT_ARRAY, VARIANT_NULL and TO_VARIANT
> --------------------------------------------------------------
>
>                 Key: FLINK-41345
>                 URL: https://issues.apache.org/jira/browse/FLINK-41345
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table SQL / API, Table SQL / Runtime
>            Reporter: Ramin Gharib
>            Assignee: Ramin Gharib
>            Priority: Major
>
> {code:sql}
> VARIANT_OBJECT([key, value, ...])   -- VARIANT
> VARIANT_ARRAY([value, ...])         -- VARIANT
> VARIANT_NULL()                      -- VARIANT NOT NULL
> TO_VARIANT(value)                   -- VARIANT NOT NULL
> VARIANT_OBJECT('order_id', order_id, 'ts', ts)   -- 
> {"order_id":17,"ts":"2026-10-10T08:00:00"}
> VARIANT_ARRAY(order_id, ts)                      -- [17,"2026-10-10T08:00:00"]
> TO_VARIANT(v['gift'])                            -- null, a variant null, 
> because gift is missing
> {code}
> Scope:
> * A value can be any type that CAST(x AS VARIANT) accepts, and keeps that 
> type. The values of VARIANT_ARRAY need no common type.
> * In VARIANT_OBJECT and VARIANT_ARRAY, a SQL NULL value gives NULL. In 
> VARIANT_OBJECT, a NULL key or a duplicate key is an error.
> * VARIANT_NULL() returns the same value as PARSE_JSON('null').
> * TO_VARIANT is CAST(x AS VARIANT), except that SQL NULL gives a variant 
> null. A VARIANT comes back unchanged.
> * Table API and PyFlink expressions, SQL and Table API tests, docs.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to