Rodrigo Rueda created CALCITE-6593: -------------------------------------- Summary: NPE when joining tables with many fields and one table is empty Key: CALCITE-6593 URL: https://issues.apache.org/jira/browse/CALCITE-6593 Project: Calcite Issue Type: Bug Components: core Affects Versions: 1.38.0 Reporter: Rodrigo Rueda Fix For: 1.38.0
The fix for CALCITE-3094 started generating the following code for a join when the resulting field count is >= 100. {code:java} public Object[] apply(Object[] left, Object[] right) { Object[] outputArray = new Object[102]; System.arraycopy(left, 0, outputArray, 0, 94); System.arraycopy(right, 0, outputArray, 94, 8); return outputArray; } {code} But left or right might be null if one of the sides of the join is empty, which leads to a NPE: {code:java} java.lang.NullPointerException at java.base/java.lang.System.arraycopy(Native Method) at Baz$3.apply(Unknown Source) at Baz$3.apply(Unknown Source) at Baz$3.apply(Unknown Source) at org.apache.calcite.linq4j.EnumerableDefaults$12$1.current(EnumerableDefaults.java:2078) at Baz$4$1.current(Unknown Source) {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)