Jacky Lau created FLINK-32530: --------------------------------- Summary: array_position semantic should align with array_contains instead of spark Key: FLINK-32530 URL: https://issues.apache.org/jira/browse/FLINK-32530 Project: Flink Issue Type: Improvement Components: Table SQL / Planner Affects Versions: 1.18.0 Reporter: Jacky Lau Fix For: 1.18.0
when i supports array_contains to calcite https://issues.apache.org/jira/browse/CALCITE-5707 i found the spark and flink's behavior is different. {code:java} spark: array_contains(array[1, null], null) -> null flink: array_contains(array[1, null], null) -> true {code} so array_remove is also different(the array_remove isĀ supported by me, which aligns with flink). {code:java} spark: array_remove(array[1, null], null) -> null flink: array_remove(array[1, null], null) -> 1 {code} while array_position is align with spark, i think it is not correct. {code:java} spark: array_position(array[1, null], null) -> 2 flink: array_position(array[1, null], null) -> 2 {code} and i test on postgre which is also 2 {code:java} postgre: select array_position(ARRAY[1, null], null); {code} so the semantic should only follow one way to handle null element. so i think it should be changed -- This message was sent by Atlassian Jira (v8.20.10#820010)