[
https://issues.apache.org/jira/browse/FLINK-31377?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated FLINK-31377:
-----------------------------------
Labels: pull-request-available (was: )
> 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: jackylau
> Priority: Major
> Labels: 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)