You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Flink Jira Bot (Jira)" <ji...@apache.org> on 2023/09/02 22:36:00 UTC

[jira] [Updated] (FLINK-31377) BinaryArrayData getArray/getMap should Handle null correctly AssertionError: valueArraySize (-6) should >= 0

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

Flink Jira Bot updated FLINK-31377:
-----------------------------------
      Labels: auto-deprioritized-major pull-request-available  (was: pull-request-available stale-major)
    Priority: Minor  (was: Major)

This issue was labeled "stale-major" 7 days ago and has not received any updates so it is being deprioritized. If this ticket is actually Major, please raise the priority and ask a committer to assign you the issue or revive the public discussion.


> BinaryArrayData getArray/getMap should Handle null correctly AssertionError: valueArraySize (-6) should >= 0 
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-31377
>                 URL: https://issues.apache.org/jira/browse/FLINK-31377
>             Project: Flink
>          Issue Type: Bug
>    Affects Versions: 1.18.0
>            Reporter: Jacky Lau
>            Priority: Minor
>              Labels: auto-deprioritized-major, pull-request-available
>
> you can reproduce this error below. and reason is in ARRAY_CONTAINS
> {code:java}
> if the needle is a Map NOT NULL,and the array has null element.
> this bellowing will cause getElementOrNull(ArrayData array, int pos) only can handle not null. so it throw exception
> /*elementGetter = ArrayData.createElementGetter(needleDataType.getLogicalType());*/,
> {code}
>  
> {code:java}
> // code placeholder
> Stream<TestSetSpec> getTestSetSpecs() {
>     return Stream.of(
>             TestSetSpec.forFunction(BuiltInFunctionDefinitions.ARRAY_CONTAINS)
>                     .onFieldsWithData(
>                             new Map[] {
>                                 null,
>                                 CollectionUtil.map(entry(1, "a"), entry(2, "b")),
>                                 CollectionUtil.map(entry(3, "c"), entry(4, "d")),
>                             },
>                             null)
>                     .andDataTypes(
>                             DataTypes.ARRAY(DataTypes.MAP(DataTypes.INT(), DataTypes.STRING())),
>                             DataTypes.STRING())
>                     .testResult(
>                             $("f0").arrayContains(
>                                             CollectionUtil.map(entry(3, "c"), entry(4, "d"))),
>                             "ARRAY_CONTAINS(f0, MAP[3, 'c', 4, 'd'])",
>                             true,
>                             DataTypes.BOOLEAN()));
> }
> {code}



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