[
https://issues.apache.org/jira/browse/FLINK-31778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17712839#comment-17712839
]
Ilya Soin commented on FLINK-31778:
-----------------------------------
Hi [~jark], thanks for the input! As I understand, copying BinaryRowData
involves
[constructing|https://github.com/apache/flink/blob/d84bf8064c2d0b66d1e2cd7e668376c171316530/flink-table/flink-table-common/src/main/java/org/apache/flink/table/data/binary/BinaryRowData.java#L416]
a new instance anyway, but we can indeed reuse BinaryRowWriter.
Copying like this:
{code:java}
writer.stmt(methodCall(writerTerm, "complete"))
.assignStmt(returnVariable, methodCall(rowTerm, "copy")); {code}
solves the problem.
Shall we proceed with this?
> Casting array of rows produces incorrect result
> -----------------------------------------------
>
> Key: FLINK-31778
> URL: https://issues.apache.org/jira/browse/FLINK-31778
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 1.16.1, 1.15.4
> Reporter: Ilya Soin
> Priority: Major
> Attachments: image-2023-04-12-15-23-46-669.png, screenshot-2.png
>
>
> {code:java}
> select CAST(commissions AS ARRAY<ROW<amount DOUBLE>>) as commissions
> from (select ARRAY[ROW(123), ROW(234)] commissions){code}
> Expected output:
> {code:java}
> +----+--------------------------------+
> | op | commissions |
> +----+--------------------------------+
> | +I | [(123.0), (234.0)] |
> +----+--------------------------------+
> {code}
> Actual output:
> {code:java}
> +----+--------------------------------+
> | op | commissions |
> +----+--------------------------------+
> | +I | [(234.0), (234.0)] |
> +----+--------------------------------+ {code}
> Full working example:
> https://gist.github.com/soin08/5e0038dbefeba9192706e05a78ef3bc1
--
This message was sent by Atlassian Jira
(v8.20.10#820010)