[
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)