[
https://issues.apache.org/jira/browse/FLINK-40463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18110296#comment-18110296
]
Chris Johnson commented on FLINK-40463:
---------------------------------------
Hi [~nithish], I've started working on this and should have a PR ready soon.
> Widen JSON_VALUE and JSON_QUERY RETURNING type support
> ------------------------------------------------------
>
> Key: FLINK-40463
> URL: https://issues.apache.org/jira/browse/FLINK-40463
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / Planner
> Reporter: Chris Johnson
> Priority: Major
>
> JSON_VALUE and JSON_QUERY both let users specify a return type with the
> RETURNING clause, but many common types are not supported.
> JSON_VALUE only allows VARCHAR, BOOLEAN, INTEGER, and DOUBLE as return types.
> It should also support TINYINT, SMALLINT, BIGINT, FLOAT, and DECIMAL.
> There are also two existing bugs in how INTEGER and DOUBLE results are
> converted. The code assumes the JSON library always returns the exact Java
> type it expects, but that is not the case -- for example, large numbers come
> back as Long instead of Integer, which causes a runtime error. The fix is to
> convert through java.lang.Number, which handles all numeric types correctly.
> JSON_QUERY only allows RETURNING ARRAY<VARCHAR>. Other array types like
> ARRAY<INT> or ARRAY<BOOLEAN> are rejected, even though the underlying JSON
> data is perfectly valid. This forces users to extract as ARRAY<VARCHAR> and
> then convert each element themselves.
> This ticket covers:
> # Adding the missing numeric return types to JSON_VALUE, and fixing the
> INTEGER/DOUBLE conversion bugs
> # Adding ARRAY<BOOLEAN> and ARRAY<numeric> support to JSON_QUERY
> # Fixing a copy-paste error where a JSON_QUERY error message incorrectly
> says "JSON_VALUE"
--
This message was sent by Atlassian Jira
(v8.20.10#820010)