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

Jinkun Liu commented on FLINK-39049:
------------------------------------

Hello [~sxnan] ,

Would it be possible to assign this to me?
I’d like to have a try.

Thanks in advance!

> Introduce built-in functions `VARIANT_VALUE` and `VARIANT_QUERY` to extract 
> values from a variant
> -------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-39049
>                 URL: https://issues.apache.org/jira/browse/FLINK-39049
>             Project: Flink
>          Issue Type: Sub-task
>          Components: Table SQL / API
>            Reporter: Jinkun Liu
>            Priority: Major
>
> |SQL Function|Table Function|Description|
> |VARIANT_VALUE(variant, path RETURNING type [ \{ NULL \\| ERROR \\| DEFAULT } 
> ON EMPTY ] [ \{ NULL \| ERROR \| DEFAULT }ON ERROR 
> ])|VARIANT.variantValue(STRING path [, type, onEmpty, defaultOnEmpty, 
> onError, defaultOnError])|Extracts a scalar as the given type from a variant.
>  
> This method queries the variant for the given path expression and returns the 
> value if the value at that path is scalar. Non-scalar values cannot be 
> returned.
>  
> For empty path expressions or errors a behavior can be defined to either 
> return null, raise an error, or return a defined default value instead. When 
> omitted, the default is NULL ON EMPTY or NULL ON ERROR, respectively. The 
> default value may be a literal or an expression. If the default value itself 
> raises an error, it falls through to the error behavior for ON EMPTY, and 
> raises an error for ON ERROR.
>  
>  
> For path contains special characters such as spaces, you can use ['property'] 
> or ["property"] to select the specified property in a parent object. Be sure 
> to put single or double quotes around the property name. When using 
> VARIANT_VALUE in SQL, the path is a character parameter which is already 
> single quoted, so you have to escape the single quotes around property name, 
> such as JSON_VALUE(' \{"a b": "true"}
> ', '$.[''a b'']').|
> |VARIANT_QUERY(variant, path RETURNING type [ \{ WITHOUT \\| WITH CONDITIONAL 
> \\| WITH UNCONDITIONAL }[ ARRAY ] WRAPPER ] [{ NULL \\| EMPTY ARRAY \\| EMPTY 
> OBJECT \\| ERROR } ON EMPTY ] [ \{ NULL \| EMPTY ARRAY \| EMPTY OBJECT \| 
> ERROR }
> ON ERROR ])|VARIANT.variantQuery(path, returnType [, variantQueryWrapper, 
> variantQueryOnEmptyOrError, variantQueryOnEmptyOrError ])|Extracts values as 
> type from a variant.
>  
> The wrappingBehavior determines whether the extracted value should be wrapped 
> into an array, and whether to do so unconditionally or only if the value 
> itself isn’t an array already.
>  
> onEmpty and onError determine the behavior in case the path expression is 
> empty, or in case an error was raised, respectively. By default, in both 
> cases null is returned. Other choices are to use an empty array, an empty 
> object, or to raise an error.|



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

Reply via email to