[ 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)