Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-6593

NPE when outer joining tables with many fields and unmatching rows

    XMLWordPrintableJSON

Details

    Description

      The fix for CALCITE-3094 started generating the following code for a join when the resulting field count is >= 100.

      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;
      } 

      But left or right might be null if one of the sides of the join is empty, which leads to a NPE:

      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) 

      Attachments

        Issue Links

          Activity

            People

              rubenql Ruben Q L
              rrueda Rodrigo Rueda
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: