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)

Reply via email to