You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Steshin (Jira)" <ji...@apache.org> on 2021/12/16 20:44:00 UTC

[jira] [Updated] (IGNITE-16147) Compilation failes on subquery

     [ https://issues.apache.org/jira/browse/IGNITE-16147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Steshin updated IGNITE-16147:
--------------------------------------
    Description: 
While researching CALCITE-685 (calcite 1.29, master branch), I met an calcite-runtime compilation error.

Request example:
{code:sql}
select e.department_id, (select 1 rom  employee e2 where e.department_id = -100 from employee e;
{code}

Stacktrace:
{code:java}
2021-12-16 21:42:38,032 [ForkJoinPool-1-worker-9] INFO  - open start - state modified
2021-12-16 21:42:43,612 [ForkJoinPool-1-worker-9] INFO  - Checkpoint start
2021-12-16 21:42:43,613 [ForkJoinPool-1-worker-9] INFO  - Checkpoint end - txts: 279

Error while executing SQL "select e.department_id,
       ( select e2.employee_id
         from  employee e2
         where e.department_id = 1000
       )
from employee e
": Error while compiling generated Java code:
public static class Record2_0 implements java.io.Serializable {
  public boolean f0;
  public int f1;
  public Record2_0() {}
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Record2_0)) {
      return false;
    }
    return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
  }

  public int hashCode() {
    int h = 0;
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
    return h;
  }

  public int compareTo(Record2_0 that) {
    int c;
    c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
    if (c != 0) {
      return c;
    }
    c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
    if (c != 0) {
      return c;
    }
    return 0;
  }

  public String toString() {
    return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
  }

}

public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            final Object[] current = (Object[]) inputEnumerator.current();
            return new Object[] {
                current[0],
                current[7],
                org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            while (inputEnumerator.moveNext()) {
              if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
                return true;
              }
            }
            return false;
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
          }

        };
    }

  };
  java.util.List accumulatorAdders = new java.util.LinkedList();
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        return org.apache.calcite.runtime.Unit.INSTANCE;
      }
    }
,
    accumulatorAdders);
  java.util.List accumulatorAdders0 = new java.util.LinkedList();
  accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
    public Record2_0 apply(Record2_0 acc, Object[] in) {
      if (acc.f0) {
        throw new IllegalStateException(
          "more than one value in agg SINGLE_VALUE");
      }
      acc.f0 = true;
      acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
      return acc;
    }
    public Record2_0 apply(Object acc, Object in) {
      return apply(
        (Record2_0) acc,
        (Object[]) in);
    }
  }
  );
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        boolean a0s0;
        int a0s1;
        a0s0 = false;
        a0s1 = 0;
        Record2_0 record0;
        record0 = new Record2_0();
        record0.f0 = a0s0;
        record0.f1 = a0s1;
        return record0;
      }
    }
,
    accumulatorAdders0);
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
    public boolean apply(int left, boolean right) {
      return true;
    }
    public boolean apply(Integer left, Boolean right) {
      return apply(
        left.intValue(),
        right.booleanValue());
    }
    public boolean apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Integer left, Boolean right) {
      return new Object[] {
          left,
          right};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] a0) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
    }
    public Object apply(Object a0) {
      return apply(
        (Object[]) a0);
    }
  }
  , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(boolean key, Record2_0 acc) {
      return new Object[] {
          key,
          acc.f1};
    }
    public Object[] apply(Boolean key, Record2_0 acc) {
      return apply(
        key.booleanValue(),
        acc);
    }
    public Object[] apply(Object key, Object acc) {
      return apply(
        (Boolean) key,
        (Record2_0) acc);
    }
  }
  )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] left) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
    }
    public boolean apply(Object left) {
      return apply(
        (Object[]) left);
    }
  }
  , new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] right) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
    }
    public boolean apply(Object right) {
      return apply(
        (Object[]) right);
    }
  }
  , null, new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Object[] left, Object[] right) {
      return new Object[] {
          left[0],
          left[1],
          left[2],
          right == null ? null : right[0],
          right == null ? null : right[1]};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Object[]) left,
        (Object[]) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
    public int compare(Boolean v0, Boolean v1) {
      final int c;
      c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
      if (c != 0) {
        return c;
      }
      return 0;
    }

    public int compare(Object o0, Object o1) {
      return this.compare((Boolean) o0, (Boolean) o1);
    }

  });
  return new org.apache.calcite.linq4j.AbstractEnumerable(){
      public org.apache.calcite.linq4j.Enumerator enumerator() {
        return new org.apache.calcite.linq4j.Enumerator(){
            public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
            public void reset() {
              inputEnumerator.reset();
            }

            public boolean moveNext() {
              return inputEnumerator.moveNext();
            }

            public void close() {
              inputEnumerator.close();
            }

            public Object current() {
              final Object[] current = (Object[]) inputEnumerator.current();
              final Object input_value = current[1];
              final Object input_value0 = current[4];
              return new Object[] {
                  input_value,
                  input_value0};
            }

          };
      }

    };
}


public Class getElementType() {
  return java.lang.Object[].class;
}



java.sql.SQLException: Error while executing SQL "select e.department_id,
       ( select e2.employee_id
         from  employee e2
         where e.department_id = 1000
       )
from employee e
": Error while compiling generated Java code:
public static class Record2_0 implements java.io.Serializable {
  public boolean f0;
  public int f1;
  public Record2_0() {}
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Record2_0)) {
      return false;
    }
    return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
  }

  public int hashCode() {
    int h = 0;
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
    return h;
  }

  public int compareTo(Record2_0 that) {
    int c;
    c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
    if (c != 0) {
      return c;
    }
    c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
    if (c != 0) {
      return c;
    }
    return 0;
  }

  public String toString() {
    return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
  }

}

public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            final Object[] current = (Object[]) inputEnumerator.current();
            return new Object[] {
                current[0],
                current[7],
                org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            while (inputEnumerator.moveNext()) {
              if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
                return true;
              }
            }
            return false;
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
          }

        };
    }

  };
  java.util.List accumulatorAdders = new java.util.LinkedList();
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        return org.apache.calcite.runtime.Unit.INSTANCE;
      }
    }
,
    accumulatorAdders);
  java.util.List accumulatorAdders0 = new java.util.LinkedList();
  accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
    public Record2_0 apply(Record2_0 acc, Object[] in) {
      if (acc.f0) {
        throw new IllegalStateException(
          "more than one value in agg SINGLE_VALUE");
      }
      acc.f0 = true;
      acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
      return acc;
    }
    public Record2_0 apply(Object acc, Object in) {
      return apply(
        (Record2_0) acc,
        (Object[]) in);
    }
  }
  );
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        boolean a0s0;
        int a0s1;
        a0s0 = false;
        a0s1 = 0;
        Record2_0 record0;
        record0 = new Record2_0();
        record0.f0 = a0s0;
        record0.f1 = a0s1;
        return record0;
      }
    }
,
    accumulatorAdders0);
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
    public boolean apply(int left, boolean right) {
      return true;
    }
    public boolean apply(Integer left, Boolean right) {
      return apply(
        left.intValue(),
        right.booleanValue());
    }
    public boolean apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Integer left, Boolean right) {
      return new Object[] {
          left,
          right};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] a0) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
    }
    public Object apply(Object a0) {
      return apply(
        (Object[]) a0);
    }
  }
  , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(boolean key, Record2_0 acc) {
      return new Object[] {
          key,
          acc.f1};
    }
    public Object[] apply(Boolean key, Record2_0 acc) {
      return apply(
        key.booleanValue(),
        acc);
    }
    public Object[] apply(Object key, Object acc) {
      return apply(
        (Boolean) key,
        (Record2_0) acc);
    }
  }
  )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] left) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
    }
    public boolean apply(Object left) {
      return apply(
        (Object[]) left);
    }
  }
  , new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] right) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
    }
    public boolean apply(Object right) {
      return apply(
        (Object[]) right);
    }
  }
  , null, new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Object[] left, Object[] right) {
      return new Object[] {
          left[0],
          left[1],
          left[2],
          right == null ? null : right[0],
          right == null ? null : right[1]};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Object[]) left,
        (Object[]) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
    public int compare(Boolean v0, Boolean v1) {
      final int c;
      c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
      if (c != 0) {
        return c;
      }
      return 0;
    }

    public int compare(Object o0, Object o1) {
      return this.compare((Boolean) o0, (Boolean) o1);
    }

  });
  return new org.apache.calcite.linq4j.AbstractEnumerable(){
      public org.apache.calcite.linq4j.Enumerator enumerator() {
        return new org.apache.calcite.linq4j.Enumerator(){
            public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
            public void reset() {
              inputEnumerator.reset();
            }

            public boolean moveNext() {
              return inputEnumerator.moveNext();
            }

            public void close() {
              inputEnumerator.close();
            }

            public Object current() {
              final Object[] current = (Object[]) inputEnumerator.current();
              final Object input_value = current[1];
              final Object input_value0 = current[4];
              return new Object[] {
                  input_value,
                  input_value0};
            }

          };
      }

    };
}


public Class getElementType() {
  return java.lang.Object[].class;
}



	at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
	at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
	at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
	at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:542)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1562)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1501)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1560)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1550)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.returnsCount(CalciteAssert.java:1546)
	at org.apache.calcite.test.JdbcTest.testCorrelatedScalarSubQuery(JdbcTest.java:5134)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutInvocation.proceed(TimeoutInvocation.java:46)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
	at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)
	Suppressed: org.apache.calcite.util.TestUtil$ExtraInformation: With materializationsEnabled=false, limit=0
		at org.apache.calcite.util.TestUtil.rethrow(TestUtil.java:346)
		at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:574)
		... 64 more
Caused by: java.lang.RuntimeException: Error while compiling generated Java code:
public static class Record2_0 implements java.io.Serializable {
  public boolean f0;
  public int f1;
  public Record2_0() {}
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Record2_0)) {
      return false;
    }
    return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
  }

  public int hashCode() {
    int h = 0;
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
    return h;
  }

  public int compareTo(Record2_0 that) {
    int c;
    c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
    if (c != 0) {
      return c;
    }
    c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
    if (c != 0) {
      return c;
    }
    return 0;
  }

  public String toString() {
    return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
  }

}

public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            final Object[] current = (Object[]) inputEnumerator.current();
            return new Object[] {
                current[0],
                current[7],
                org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            while (inputEnumerator.moveNext()) {
              if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
                return true;
              }
            }
            return false;
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
          }

        };
    }

  };
  java.util.List accumulatorAdders = new java.util.LinkedList();
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        return org.apache.calcite.runtime.Unit.INSTANCE;
      }
    }
,
    accumulatorAdders);
  java.util.List accumulatorAdders0 = new java.util.LinkedList();
  accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
    public Record2_0 apply(Record2_0 acc, Object[] in) {
      if (acc.f0) {
        throw new IllegalStateException(
          "more than one value in agg SINGLE_VALUE");
      }
      acc.f0 = true;
      acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
      return acc;
    }
    public Record2_0 apply(Object acc, Object in) {
      return apply(
        (Record2_0) acc,
        (Object[]) in);
    }
  }
  );
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        boolean a0s0;
        int a0s1;
        a0s0 = false;
        a0s1 = 0;
        Record2_0 record0;
        record0 = new Record2_0();
        record0.f0 = a0s0;
        record0.f1 = a0s1;
        return record0;
      }
    }
,
    accumulatorAdders0);
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
    public boolean apply(int left, boolean right) {
      return true;
    }
    public boolean apply(Integer left, Boolean right) {
      return apply(
        left.intValue(),
        right.booleanValue());
    }
    public boolean apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Integer left, Boolean right) {
      return new Object[] {
          left,
          right};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] a0) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
    }
    public Object apply(Object a0) {
      return apply(
        (Object[]) a0);
    }
  }
  , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(boolean key, Record2_0 acc) {
      return new Object[] {
          key,
          acc.f1};
    }
    public Object[] apply(Boolean key, Record2_0 acc) {
      return apply(
        key.booleanValue(),
        acc);
    }
    public Object[] apply(Object key, Object acc) {
      return apply(
        (Boolean) key,
        (Record2_0) acc);
    }
  }
  )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] left) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
    }
    public boolean apply(Object left) {
      return apply(
        (Object[]) left);
    }
  }
  , new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] right) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
    }
    public boolean apply(Object right) {
      return apply(
        (Object[]) right);
    }
  }
  , null, new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Object[] left, Object[] right) {
      return new Object[] {
          left[0],
          left[1],
          left[2],
          right == null ? null : right[0],
          right == null ? null : right[1]};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Object[]) left,
        (Object[]) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
    public int compare(Boolean v0, Boolean v1) {
      final int c;
      c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
      if (c != 0) {
        return c;
      }
      return 0;
    }

    public int compare(Object o0, Object o1) {
      return this.compare((Boolean) o0, (Boolean) o1);
    }

  });
  return new org.apache.calcite.linq4j.AbstractEnumerable(){
      public org.apache.calcite.linq4j.Enumerator enumerator() {
        return new org.apache.calcite.linq4j.Enumerator(){
            public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
            public void reset() {
              inputEnumerator.reset();
            }

            public boolean moveNext() {
              return inputEnumerator.moveNext();
            }

            public void close() {
              inputEnumerator.close();
            }

            public Object current() {
              final Object[] current = (Object[]) inputEnumerator.current();
              final Object input_value = current[1];
              final Object input_value0 = current[4];
              return new Object[] {
                  input_value,
                  input_value0};
            }

          };
      }

    };
}


public Class getElementType() {
  return java.lang.Object[].class;
}



	at org.apache.calcite.avatica.Helper.wrap(Helper.java:37)
	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:130)
	at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1130)
	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:324)
	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:220)
	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
	at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
	at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
	at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:623)
	at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
	... 66 more
Caused by: org.codehaus.commons.compiler.CompileException: Line 169, Column 111: No applicable constructor/method found for actual parameters "org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, Baz$13, Baz$14, void, Baz$15, org.apache.calcite.linq4j.JoinType, Baz$16"; candidates are: "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Predicate2, org.apache.calcite.linq4j.function.Function2, org.apache.calcite.linq4j.JoinType, java.util.Comparator)", "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function2, org.apache.calcite.linq4j.JoinType, java.util.Comparator)", "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function2, boolean, boolean)"
	at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12679)
	at org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:9390)
	at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:9250)
	at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:9168)
	at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5089)
	at org.codehaus.janino.UnitCompiler.access$9000(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$15.visitMethodInvocation(UnitCompiler.java:4631)
	at org.codehaus.janino.UnitCompiler$15.visitMethodInvocation(UnitCompiler.java:4604)
	at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:5443)
	at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604)
	at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2622)
	at org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1539)
	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1523)
	at org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3840)
	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523)
	at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531)
	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218)
	at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379)
	at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:412)
	at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:391)
	at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:386)
	at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1692)
	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:359)
	at org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:333)
	at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:330)
	at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:367)
	at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:330)
	at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:245)
	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:294)
	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:288)
	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:267)
	at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:52)
	at org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:428)
	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.getBindable(EnumerableInterpretable.java:166)
	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:127)
	... 76 more
{code}


  was:
While researching CALCITE-685, I met an calcite-runtime compilation error.

Request example:
{code:sql}
select e.department_id, (select 1 rom  employee e2 where e.department_id = -100 from employee e;
{code}

Stacktrace:
{code:java}
2021-12-16 21:42:38,032 [ForkJoinPool-1-worker-9] INFO  - open start - state modified
2021-12-16 21:42:43,612 [ForkJoinPool-1-worker-9] INFO  - Checkpoint start
2021-12-16 21:42:43,613 [ForkJoinPool-1-worker-9] INFO  - Checkpoint end - txts: 279

Error while executing SQL "select e.department_id,
       ( select e2.employee_id
         from  employee e2
         where e.department_id = 1000
       )
from employee e
": Error while compiling generated Java code:
public static class Record2_0 implements java.io.Serializable {
  public boolean f0;
  public int f1;
  public Record2_0() {}
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Record2_0)) {
      return false;
    }
    return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
  }

  public int hashCode() {
    int h = 0;
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
    return h;
  }

  public int compareTo(Record2_0 that) {
    int c;
    c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
    if (c != 0) {
      return c;
    }
    c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
    if (c != 0) {
      return c;
    }
    return 0;
  }

  public String toString() {
    return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
  }

}

public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            final Object[] current = (Object[]) inputEnumerator.current();
            return new Object[] {
                current[0],
                current[7],
                org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            while (inputEnumerator.moveNext()) {
              if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
                return true;
              }
            }
            return false;
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
          }

        };
    }

  };
  java.util.List accumulatorAdders = new java.util.LinkedList();
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        return org.apache.calcite.runtime.Unit.INSTANCE;
      }
    }
,
    accumulatorAdders);
  java.util.List accumulatorAdders0 = new java.util.LinkedList();
  accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
    public Record2_0 apply(Record2_0 acc, Object[] in) {
      if (acc.f0) {
        throw new IllegalStateException(
          "more than one value in agg SINGLE_VALUE");
      }
      acc.f0 = true;
      acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
      return acc;
    }
    public Record2_0 apply(Object acc, Object in) {
      return apply(
        (Record2_0) acc,
        (Object[]) in);
    }
  }
  );
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        boolean a0s0;
        int a0s1;
        a0s0 = false;
        a0s1 = 0;
        Record2_0 record0;
        record0 = new Record2_0();
        record0.f0 = a0s0;
        record0.f1 = a0s1;
        return record0;
      }
    }
,
    accumulatorAdders0);
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
    public boolean apply(int left, boolean right) {
      return true;
    }
    public boolean apply(Integer left, Boolean right) {
      return apply(
        left.intValue(),
        right.booleanValue());
    }
    public boolean apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Integer left, Boolean right) {
      return new Object[] {
          left,
          right};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] a0) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
    }
    public Object apply(Object a0) {
      return apply(
        (Object[]) a0);
    }
  }
  , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(boolean key, Record2_0 acc) {
      return new Object[] {
          key,
          acc.f1};
    }
    public Object[] apply(Boolean key, Record2_0 acc) {
      return apply(
        key.booleanValue(),
        acc);
    }
    public Object[] apply(Object key, Object acc) {
      return apply(
        (Boolean) key,
        (Record2_0) acc);
    }
  }
  )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] left) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
    }
    public boolean apply(Object left) {
      return apply(
        (Object[]) left);
    }
  }
  , new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] right) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
    }
    public boolean apply(Object right) {
      return apply(
        (Object[]) right);
    }
  }
  , null, new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Object[] left, Object[] right) {
      return new Object[] {
          left[0],
          left[1],
          left[2],
          right == null ? null : right[0],
          right == null ? null : right[1]};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Object[]) left,
        (Object[]) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
    public int compare(Boolean v0, Boolean v1) {
      final int c;
      c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
      if (c != 0) {
        return c;
      }
      return 0;
    }

    public int compare(Object o0, Object o1) {
      return this.compare((Boolean) o0, (Boolean) o1);
    }

  });
  return new org.apache.calcite.linq4j.AbstractEnumerable(){
      public org.apache.calcite.linq4j.Enumerator enumerator() {
        return new org.apache.calcite.linq4j.Enumerator(){
            public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
            public void reset() {
              inputEnumerator.reset();
            }

            public boolean moveNext() {
              return inputEnumerator.moveNext();
            }

            public void close() {
              inputEnumerator.close();
            }

            public Object current() {
              final Object[] current = (Object[]) inputEnumerator.current();
              final Object input_value = current[1];
              final Object input_value0 = current[4];
              return new Object[] {
                  input_value,
                  input_value0};
            }

          };
      }

    };
}


public Class getElementType() {
  return java.lang.Object[].class;
}



java.sql.SQLException: Error while executing SQL "select e.department_id,
       ( select e2.employee_id
         from  employee e2
         where e.department_id = 1000
       )
from employee e
": Error while compiling generated Java code:
public static class Record2_0 implements java.io.Serializable {
  public boolean f0;
  public int f1;
  public Record2_0() {}
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Record2_0)) {
      return false;
    }
    return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
  }

  public int hashCode() {
    int h = 0;
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
    return h;
  }

  public int compareTo(Record2_0 that) {
    int c;
    c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
    if (c != 0) {
      return c;
    }
    c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
    if (c != 0) {
      return c;
    }
    return 0;
  }

  public String toString() {
    return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
  }

}

public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            final Object[] current = (Object[]) inputEnumerator.current();
            return new Object[] {
                current[0],
                current[7],
                org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            while (inputEnumerator.moveNext()) {
              if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
                return true;
              }
            }
            return false;
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
          }

        };
    }

  };
  java.util.List accumulatorAdders = new java.util.LinkedList();
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        return org.apache.calcite.runtime.Unit.INSTANCE;
      }
    }
,
    accumulatorAdders);
  java.util.List accumulatorAdders0 = new java.util.LinkedList();
  accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
    public Record2_0 apply(Record2_0 acc, Object[] in) {
      if (acc.f0) {
        throw new IllegalStateException(
          "more than one value in agg SINGLE_VALUE");
      }
      acc.f0 = true;
      acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
      return acc;
    }
    public Record2_0 apply(Object acc, Object in) {
      return apply(
        (Record2_0) acc,
        (Object[]) in);
    }
  }
  );
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        boolean a0s0;
        int a0s1;
        a0s0 = false;
        a0s1 = 0;
        Record2_0 record0;
        record0 = new Record2_0();
        record0.f0 = a0s0;
        record0.f1 = a0s1;
        return record0;
      }
    }
,
    accumulatorAdders0);
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
    public boolean apply(int left, boolean right) {
      return true;
    }
    public boolean apply(Integer left, Boolean right) {
      return apply(
        left.intValue(),
        right.booleanValue());
    }
    public boolean apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Integer left, Boolean right) {
      return new Object[] {
          left,
          right};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] a0) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
    }
    public Object apply(Object a0) {
      return apply(
        (Object[]) a0);
    }
  }
  , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(boolean key, Record2_0 acc) {
      return new Object[] {
          key,
          acc.f1};
    }
    public Object[] apply(Boolean key, Record2_0 acc) {
      return apply(
        key.booleanValue(),
        acc);
    }
    public Object[] apply(Object key, Object acc) {
      return apply(
        (Boolean) key,
        (Record2_0) acc);
    }
  }
  )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] left) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
    }
    public boolean apply(Object left) {
      return apply(
        (Object[]) left);
    }
  }
  , new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] right) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
    }
    public boolean apply(Object right) {
      return apply(
        (Object[]) right);
    }
  }
  , null, new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Object[] left, Object[] right) {
      return new Object[] {
          left[0],
          left[1],
          left[2],
          right == null ? null : right[0],
          right == null ? null : right[1]};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Object[]) left,
        (Object[]) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
    public int compare(Boolean v0, Boolean v1) {
      final int c;
      c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
      if (c != 0) {
        return c;
      }
      return 0;
    }

    public int compare(Object o0, Object o1) {
      return this.compare((Boolean) o0, (Boolean) o1);
    }

  });
  return new org.apache.calcite.linq4j.AbstractEnumerable(){
      public org.apache.calcite.linq4j.Enumerator enumerator() {
        return new org.apache.calcite.linq4j.Enumerator(){
            public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
            public void reset() {
              inputEnumerator.reset();
            }

            public boolean moveNext() {
              return inputEnumerator.moveNext();
            }

            public void close() {
              inputEnumerator.close();
            }

            public Object current() {
              final Object[] current = (Object[]) inputEnumerator.current();
              final Object input_value = current[1];
              final Object input_value0 = current[4];
              return new Object[] {
                  input_value,
                  input_value0};
            }

          };
      }

    };
}


public Class getElementType() {
  return java.lang.Object[].class;
}



	at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
	at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
	at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
	at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:542)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1562)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1501)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1560)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1550)
	at org.apache.calcite.test.CalciteAssert$AssertQuery.returnsCount(CalciteAssert.java:1546)
	at org.apache.calcite.test.JdbcTest.testCorrelatedScalarSubQuery(JdbcTest.java:5134)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at org.junit.jupiter.engine.extension.TimeoutInvocation.proceed(TimeoutInvocation.java:46)
	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
	at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)
	Suppressed: org.apache.calcite.util.TestUtil$ExtraInformation: With materializationsEnabled=false, limit=0
		at org.apache.calcite.util.TestUtil.rethrow(TestUtil.java:346)
		at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:574)
		... 64 more
Caused by: java.lang.RuntimeException: Error while compiling generated Java code:
public static class Record2_0 implements java.io.Serializable {
  public boolean f0;
  public int f1;
  public Record2_0() {}
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof Record2_0)) {
      return false;
    }
    return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
  }

  public int hashCode() {
    int h = 0;
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
    h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
    return h;
  }

  public int compareTo(Record2_0 that) {
    int c;
    c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
    if (c != 0) {
      return c;
    }
    c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
    if (c != 0) {
      return c;
    }
    return 0;
  }

  public String toString() {
    return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
  }

}

public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            final Object[] current = (Object[]) inputEnumerator.current();
            return new Object[] {
                current[0],
                current[7],
                org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            return inputEnumerator.moveNext();
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
          }

        };
    }

  };
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
  final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
    public org.apache.calcite.linq4j.Enumerator enumerator() {
      return new org.apache.calcite.linq4j.Enumerator(){
          public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
          public void reset() {
            inputEnumerator.reset();
          }

          public boolean moveNext() {
            while (inputEnumerator.moveNext()) {
              if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
                return true;
              }
            }
            return false;
          }

          public void close() {
            inputEnumerator.close();
          }

          public Object current() {
            return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
          }

        };
    }

  };
  java.util.List accumulatorAdders = new java.util.LinkedList();
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        return org.apache.calcite.runtime.Unit.INSTANCE;
      }
    }
,
    accumulatorAdders);
  java.util.List accumulatorAdders0 = new java.util.LinkedList();
  accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
    public Record2_0 apply(Record2_0 acc, Object[] in) {
      if (acc.f0) {
        throw new IllegalStateException(
          "more than one value in agg SINGLE_VALUE");
      }
      acc.f0 = true;
      acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
      return acc;
    }
    public Record2_0 apply(Object acc, Object in) {
      return apply(
        (Record2_0) acc,
        (Object[]) in);
    }
  }
  );
  org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
    new org.apache.calcite.linq4j.function.Function0() {
      public Object apply() {
        boolean a0s0;
        int a0s1;
        a0s0 = false;
        a0s1 = 0;
        Record2_0 record0;
        record0 = new Record2_0();
        record0.f0 = a0s0;
        record0.f1 = a0s1;
        return record0;
      }
    }
,
    accumulatorAdders0);
  final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
    public boolean apply(int left, boolean right) {
      return true;
    }
    public boolean apply(Integer left, Boolean right) {
      return apply(
        left.intValue(),
        right.booleanValue());
    }
    public boolean apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Integer left, Boolean right) {
      return new Object[] {
          left,
          right};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Integer) left,
        (Boolean) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] a0) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
    }
    public Object apply(Object a0) {
      return apply(
        (Object[]) a0);
    }
  }
  , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(boolean key, Record2_0 acc) {
      return new Object[] {
          key,
          acc.f1};
    }
    public Object[] apply(Boolean key, Record2_0 acc) {
      return apply(
        key.booleanValue(),
        acc);
    }
    public Object[] apply(Object key, Object acc) {
      return apply(
        (Boolean) key,
        (Record2_0) acc);
    }
  }
  )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
    public boolean apply(Object[] v) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
    }
    public Object apply(Object v) {
      return apply(
        (Object[]) v);
    }
  }
  , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] left) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
    }
    public boolean apply(Object left) {
      return apply(
        (Object[]) left);
    }
  }
  , new org.apache.calcite.linq4j.function.Predicate1() {
    public boolean apply(Object[] right) {
      return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
    }
    public boolean apply(Object right) {
      return apply(
        (Object[]) right);
    }
  }
  , null, new org.apache.calcite.linq4j.function.Function2() {
    public Object[] apply(Object[] left, Object[] right) {
      return new Object[] {
          left[0],
          left[1],
          left[2],
          right == null ? null : right[0],
          right == null ? null : right[1]};
    }
    public Object[] apply(Object left, Object right) {
      return apply(
        (Object[]) left,
        (Object[]) right);
    }
  }
  , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
    public int compare(Boolean v0, Boolean v1) {
      final int c;
      c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
      if (c != 0) {
        return c;
      }
      return 0;
    }

    public int compare(Object o0, Object o1) {
      return this.compare((Boolean) o0, (Boolean) o1);
    }

  });
  return new org.apache.calcite.linq4j.AbstractEnumerable(){
      public org.apache.calcite.linq4j.Enumerator enumerator() {
        return new org.apache.calcite.linq4j.Enumerator(){
            public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
            public void reset() {
              inputEnumerator.reset();
            }

            public boolean moveNext() {
              return inputEnumerator.moveNext();
            }

            public void close() {
              inputEnumerator.close();
            }

            public Object current() {
              final Object[] current = (Object[]) inputEnumerator.current();
              final Object input_value = current[1];
              final Object input_value0 = current[4];
              return new Object[] {
                  input_value,
                  input_value0};
            }

          };
      }

    };
}


public Class getElementType() {
  return java.lang.Object[].class;
}



	at org.apache.calcite.avatica.Helper.wrap(Helper.java:37)
	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:130)
	at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1130)
	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:324)
	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:220)
	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
	at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
	at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
	at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:623)
	at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
	... 66 more
Caused by: org.codehaus.commons.compiler.CompileException: Line 169, Column 111: No applicable constructor/method found for actual parameters "org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, Baz$13, Baz$14, void, Baz$15, org.apache.calcite.linq4j.JoinType, Baz$16"; candidates are: "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Predicate2, org.apache.calcite.linq4j.function.Function2, org.apache.calcite.linq4j.JoinType, java.util.Comparator)", "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function2, org.apache.calcite.linq4j.JoinType, java.util.Comparator)", "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function2, boolean, boolean)"
	at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12679)
	at org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:9390)
	at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:9250)
	at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:9168)
	at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5089)
	at org.codehaus.janino.UnitCompiler.access$9000(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$15.visitMethodInvocation(UnitCompiler.java:4631)
	at org.codehaus.janino.UnitCompiler$15.visitMethodInvocation(UnitCompiler.java:4604)
	at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:5443)
	at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604)
	at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2622)
	at org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1539)
	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1523)
	at org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3840)
	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523)
	at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531)
	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218)
	at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379)
	at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:412)
	at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:391)
	at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:386)
	at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1692)
	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386)
	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:359)
	at org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:231)
	at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:333)
	at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:330)
	at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:367)
	at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:330)
	at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:245)
	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:294)
	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:288)
	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:267)
	at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:52)
	at org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:428)
	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.getBindable(EnumerableInterpretable.java:166)
	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:127)
	... 76 more
{code}



> Compilation failes on subquery
> ------------------------------
>
>                 Key: IGNITE-16147
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16147
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vladimir Steshin
>            Priority: Major
>
> While researching CALCITE-685 (calcite 1.29, master branch), I met an calcite-runtime compilation error.
> Request example:
> {code:sql}
> select e.department_id, (select 1 rom  employee e2 where e.department_id = -100 from employee e;
> {code}
> Stacktrace:
> {code:java}
> 2021-12-16 21:42:38,032 [ForkJoinPool-1-worker-9] INFO  - open start - state modified
> 2021-12-16 21:42:43,612 [ForkJoinPool-1-worker-9] INFO  - Checkpoint start
> 2021-12-16 21:42:43,613 [ForkJoinPool-1-worker-9] INFO  - Checkpoint end - txts: 279
> Error while executing SQL "select e.department_id,
>        ( select e2.employee_id
>          from  employee e2
>          where e.department_id = 1000
>        )
> from employee e
> ": Error while compiling generated Java code:
> public static class Record2_0 implements java.io.Serializable {
>   public boolean f0;
>   public int f1;
>   public Record2_0() {}
>   public boolean equals(Object o) {
>     if (this == o) {
>       return true;
>     }
>     if (!(o instanceof Record2_0)) {
>       return false;
>     }
>     return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
>   }
>   public int hashCode() {
>     int h = 0;
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
>     return h;
>   }
>   public int compareTo(Record2_0 that) {
>     int c;
>     c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
>     if (c != 0) {
>       return c;
>     }
>     c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
>     if (c != 0) {
>       return c;
>     }
>     return 0;
>   }
>   public String toString() {
>     return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
>   }
> }
> public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             return inputEnumerator.moveNext();
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             final Object[] current = (Object[]) inputEnumerator.current();
>             return new Object[] {
>                 current[0],
>                 current[7],
>                 org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
>           }
>         };
>     }
>   };
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             return inputEnumerator.moveNext();
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
>           }
>         };
>     }
>   };
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             while (inputEnumerator.moveNext()) {
>               if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
>                 return true;
>               }
>             }
>             return false;
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
>           }
>         };
>     }
>   };
>   java.util.List accumulatorAdders = new java.util.LinkedList();
>   org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
>     new org.apache.calcite.linq4j.function.Function0() {
>       public Object apply() {
>         return org.apache.calcite.runtime.Unit.INSTANCE;
>       }
>     }
> ,
>     accumulatorAdders);
>   java.util.List accumulatorAdders0 = new java.util.LinkedList();
>   accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
>     public Record2_0 apply(Record2_0 acc, Object[] in) {
>       if (acc.f0) {
>         throw new IllegalStateException(
>           "more than one value in agg SINGLE_VALUE");
>       }
>       acc.f0 = true;
>       acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
>       return acc;
>     }
>     public Record2_0 apply(Object acc, Object in) {
>       return apply(
>         (Record2_0) acc,
>         (Object[]) in);
>     }
>   }
>   );
>   org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
>     new org.apache.calcite.linq4j.function.Function0() {
>       public Object apply() {
>         boolean a0s0;
>         int a0s1;
>         a0s0 = false;
>         a0s1 = 0;
>         Record2_0 record0;
>         record0 = new Record2_0();
>         record0.f0 = a0s0;
>         record0.f1 = a0s1;
>         return record0;
>       }
>     }
> ,
>     accumulatorAdders0);
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] v) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
>     }
>     public Object apply(Object v) {
>       return apply(
>         (Object[]) v);
>     }
>   }
>   , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
>     public boolean apply(int left, boolean right) {
>       return true;
>     }
>     public boolean apply(Integer left, Boolean right) {
>       return apply(
>         left.intValue(),
>         right.booleanValue());
>     }
>     public boolean apply(Object left, Object right) {
>       return apply(
>         (Integer) left,
>         (Boolean) right);
>     }
>   }
>   , new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(Integer left, Boolean right) {
>       return new Object[] {
>           left,
>           right};
>     }
>     public Object[] apply(Object left, Object right) {
>       return apply(
>         (Integer) left,
>         (Boolean) right);
>     }
>   }
>   , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] a0) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
>     }
>     public Object apply(Object a0) {
>       return apply(
>         (Object[]) a0);
>     }
>   }
>   , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(boolean key, Record2_0 acc) {
>       return new Object[] {
>           key,
>           acc.f1};
>     }
>     public Object[] apply(Boolean key, Record2_0 acc) {
>       return apply(
>         key.booleanValue(),
>         acc);
>     }
>     public Object[] apply(Object key, Object acc) {
>       return apply(
>         (Boolean) key,
>         (Record2_0) acc);
>     }
>   }
>   )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] v) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
>     }
>     public Object apply(Object v) {
>       return apply(
>         (Object[]) v);
>     }
>   }
>   , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
>     public boolean apply(Object[] left) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
>     }
>     public boolean apply(Object left) {
>       return apply(
>         (Object[]) left);
>     }
>   }
>   , new org.apache.calcite.linq4j.function.Predicate1() {
>     public boolean apply(Object[] right) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
>     }
>     public boolean apply(Object right) {
>       return apply(
>         (Object[]) right);
>     }
>   }
>   , null, new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(Object[] left, Object[] right) {
>       return new Object[] {
>           left[0],
>           left[1],
>           left[2],
>           right == null ? null : right[0],
>           right == null ? null : right[1]};
>     }
>     public Object[] apply(Object left, Object right) {
>       return apply(
>         (Object[]) left,
>         (Object[]) right);
>     }
>   }
>   , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
>     public int compare(Boolean v0, Boolean v1) {
>       final int c;
>       c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
>       if (c != 0) {
>         return c;
>       }
>       return 0;
>     }
>     public int compare(Object o0, Object o1) {
>       return this.compare((Boolean) o0, (Boolean) o1);
>     }
>   });
>   return new org.apache.calcite.linq4j.AbstractEnumerable(){
>       public org.apache.calcite.linq4j.Enumerator enumerator() {
>         return new org.apache.calcite.linq4j.Enumerator(){
>             public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
>             public void reset() {
>               inputEnumerator.reset();
>             }
>             public boolean moveNext() {
>               return inputEnumerator.moveNext();
>             }
>             public void close() {
>               inputEnumerator.close();
>             }
>             public Object current() {
>               final Object[] current = (Object[]) inputEnumerator.current();
>               final Object input_value = current[1];
>               final Object input_value0 = current[4];
>               return new Object[] {
>                   input_value,
>                   input_value0};
>             }
>           };
>       }
>     };
> }
> public Class getElementType() {
>   return java.lang.Object[].class;
> }
> java.sql.SQLException: Error while executing SQL "select e.department_id,
>        ( select e2.employee_id
>          from  employee e2
>          where e.department_id = 1000
>        )
> from employee e
> ": Error while compiling generated Java code:
> public static class Record2_0 implements java.io.Serializable {
>   public boolean f0;
>   public int f1;
>   public Record2_0() {}
>   public boolean equals(Object o) {
>     if (this == o) {
>       return true;
>     }
>     if (!(o instanceof Record2_0)) {
>       return false;
>     }
>     return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
>   }
>   public int hashCode() {
>     int h = 0;
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
>     return h;
>   }
>   public int compareTo(Record2_0 that) {
>     int c;
>     c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
>     if (c != 0) {
>       return c;
>     }
>     c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
>     if (c != 0) {
>       return c;
>     }
>     return 0;
>   }
>   public String toString() {
>     return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
>   }
> }
> public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             return inputEnumerator.moveNext();
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             final Object[] current = (Object[]) inputEnumerator.current();
>             return new Object[] {
>                 current[0],
>                 current[7],
>                 org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
>           }
>         };
>     }
>   };
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             return inputEnumerator.moveNext();
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
>           }
>         };
>     }
>   };
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             while (inputEnumerator.moveNext()) {
>               if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
>                 return true;
>               }
>             }
>             return false;
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
>           }
>         };
>     }
>   };
>   java.util.List accumulatorAdders = new java.util.LinkedList();
>   org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
>     new org.apache.calcite.linq4j.function.Function0() {
>       public Object apply() {
>         return org.apache.calcite.runtime.Unit.INSTANCE;
>       }
>     }
> ,
>     accumulatorAdders);
>   java.util.List accumulatorAdders0 = new java.util.LinkedList();
>   accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
>     public Record2_0 apply(Record2_0 acc, Object[] in) {
>       if (acc.f0) {
>         throw new IllegalStateException(
>           "more than one value in agg SINGLE_VALUE");
>       }
>       acc.f0 = true;
>       acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
>       return acc;
>     }
>     public Record2_0 apply(Object acc, Object in) {
>       return apply(
>         (Record2_0) acc,
>         (Object[]) in);
>     }
>   }
>   );
>   org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
>     new org.apache.calcite.linq4j.function.Function0() {
>       public Object apply() {
>         boolean a0s0;
>         int a0s1;
>         a0s0 = false;
>         a0s1 = 0;
>         Record2_0 record0;
>         record0 = new Record2_0();
>         record0.f0 = a0s0;
>         record0.f1 = a0s1;
>         return record0;
>       }
>     }
> ,
>     accumulatorAdders0);
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] v) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
>     }
>     public Object apply(Object v) {
>       return apply(
>         (Object[]) v);
>     }
>   }
>   , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
>     public boolean apply(int left, boolean right) {
>       return true;
>     }
>     public boolean apply(Integer left, Boolean right) {
>       return apply(
>         left.intValue(),
>         right.booleanValue());
>     }
>     public boolean apply(Object left, Object right) {
>       return apply(
>         (Integer) left,
>         (Boolean) right);
>     }
>   }
>   , new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(Integer left, Boolean right) {
>       return new Object[] {
>           left,
>           right};
>     }
>     public Object[] apply(Object left, Object right) {
>       return apply(
>         (Integer) left,
>         (Boolean) right);
>     }
>   }
>   , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] a0) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
>     }
>     public Object apply(Object a0) {
>       return apply(
>         (Object[]) a0);
>     }
>   }
>   , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(boolean key, Record2_0 acc) {
>       return new Object[] {
>           key,
>           acc.f1};
>     }
>     public Object[] apply(Boolean key, Record2_0 acc) {
>       return apply(
>         key.booleanValue(),
>         acc);
>     }
>     public Object[] apply(Object key, Object acc) {
>       return apply(
>         (Boolean) key,
>         (Record2_0) acc);
>     }
>   }
>   )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] v) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
>     }
>     public Object apply(Object v) {
>       return apply(
>         (Object[]) v);
>     }
>   }
>   , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
>     public boolean apply(Object[] left) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
>     }
>     public boolean apply(Object left) {
>       return apply(
>         (Object[]) left);
>     }
>   }
>   , new org.apache.calcite.linq4j.function.Predicate1() {
>     public boolean apply(Object[] right) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
>     }
>     public boolean apply(Object right) {
>       return apply(
>         (Object[]) right);
>     }
>   }
>   , null, new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(Object[] left, Object[] right) {
>       return new Object[] {
>           left[0],
>           left[1],
>           left[2],
>           right == null ? null : right[0],
>           right == null ? null : right[1]};
>     }
>     public Object[] apply(Object left, Object right) {
>       return apply(
>         (Object[]) left,
>         (Object[]) right);
>     }
>   }
>   , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
>     public int compare(Boolean v0, Boolean v1) {
>       final int c;
>       c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
>       if (c != 0) {
>         return c;
>       }
>       return 0;
>     }
>     public int compare(Object o0, Object o1) {
>       return this.compare((Boolean) o0, (Boolean) o1);
>     }
>   });
>   return new org.apache.calcite.linq4j.AbstractEnumerable(){
>       public org.apache.calcite.linq4j.Enumerator enumerator() {
>         return new org.apache.calcite.linq4j.Enumerator(){
>             public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
>             public void reset() {
>               inputEnumerator.reset();
>             }
>             public boolean moveNext() {
>               return inputEnumerator.moveNext();
>             }
>             public void close() {
>               inputEnumerator.close();
>             }
>             public Object current() {
>               final Object[] current = (Object[]) inputEnumerator.current();
>               final Object input_value = current[1];
>               final Object input_value0 = current[4];
>               return new Object[] {
>                   input_value,
>                   input_value0};
>             }
>           };
>       }
>     };
> }
> public Class getElementType() {
>   return java.lang.Object[].class;
> }
> 	at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
> 	at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
> 	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:163)
> 	at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227)
> 	at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:542)
> 	at org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1562)
> 	at org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1501)
> 	at org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1560)
> 	at org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1550)
> 	at org.apache.calcite.test.CalciteAssert$AssertQuery.returnsCount(CalciteAssert.java:1546)
> 	at org.apache.calcite.test.JdbcTest.testCorrelatedScalarSubQuery(JdbcTest.java:5134)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
> 	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
> 	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
> 	at org.junit.jupiter.engine.extension.TimeoutInvocation.proceed(TimeoutInvocation.java:46)
> 	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
> 	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
> 	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
> 	at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
> 	at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
> 	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
> 	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
> 	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
> 	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
> 	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
> 	at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
> 	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
> 	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
> 	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
> 	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
> 	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
> 	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
> 	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
> 	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
> 	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
> 	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
> 	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
> 	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
> 	at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
> 	at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
> 	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
> 	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)
> 	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)
> 	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)
> 	Suppressed: org.apache.calcite.util.TestUtil$ExtraInformation: With materializationsEnabled=false, limit=0
> 		at org.apache.calcite.util.TestUtil.rethrow(TestUtil.java:346)
> 		at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:574)
> 		... 64 more
> Caused by: java.lang.RuntimeException: Error while compiling generated Java code:
> public static class Record2_0 implements java.io.Serializable {
>   public boolean f0;
>   public int f1;
>   public Record2_0() {}
>   public boolean equals(Object o) {
>     if (this == o) {
>       return true;
>     }
>     if (!(o instanceof Record2_0)) {
>       return false;
>     }
>     return this.f0 == ((Record2_0) o).f0 && this.f1 == ((Record2_0) o).f1;
>   }
>   public int hashCode() {
>     int h = 0;
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f1);
>     return h;
>   }
>   public int compareTo(Record2_0 that) {
>     int c;
>     c = org.apache.calcite.runtime.Utilities.compare(this.f0, that.f0);
>     if (c != 0) {
>       return c;
>     }
>     c = org.apache.calcite.runtime.Utilities.compare(this.f1, that.f1);
>     if (c != 0) {
>       return c;
>     }
>     return 0;
>   }
>   public String toString() {
>     return "{f0=" + this.f0 + ", f1=" + this.f1 + "}";
>   }
> }
> public org.apache.calcite.linq4j.Enumerable bind(final org.apache.calcite.DataContext root) {
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable child = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             return inputEnumerator.moveNext();
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             final Object[] current = (Object[]) inputEnumerator.current();
>             return new Object[] {
>                 current[0],
>                 current[7],
>                 org.apache.calcite.runtime.SqlFunctions.toInt(current[7]) == 1000};
>           }
>         };
>     }
>   };
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable0 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable left0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable0.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             return inputEnumerator.moveNext();
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[0]);
>           }
>         };
>     }
>   };
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable00 = org.apache.calcite.schema.Schemas.queryable(root, root.getRootSchema().getSubSchema("foodmart2"), java.lang.Object[].class, "employee").asEnumerable();
>   final org.apache.calcite.linq4j.AbstractEnumerable child0 = new org.apache.calcite.linq4j.AbstractEnumerable(){
>     public org.apache.calcite.linq4j.Enumerator enumerator() {
>       return new org.apache.calcite.linq4j.Enumerator(){
>           public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable00.enumerator();
>           public void reset() {
>             inputEnumerator.reset();
>           }
>           public boolean moveNext() {
>             while (inputEnumerator.moveNext()) {
>               if (org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000) {
>                 return true;
>               }
>             }
>             return false;
>           }
>           public void close() {
>             inputEnumerator.close();
>           }
>           public Object current() {
>             return org.apache.calcite.runtime.SqlFunctions.toInt(((Object[]) inputEnumerator.current())[7]) == 1000;
>           }
>         };
>     }
>   };
>   java.util.List accumulatorAdders = new java.util.LinkedList();
>   org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
>     new org.apache.calcite.linq4j.function.Function0() {
>       public Object apply() {
>         return org.apache.calcite.runtime.Unit.INSTANCE;
>       }
>     }
> ,
>     accumulatorAdders);
>   java.util.List accumulatorAdders0 = new java.util.LinkedList();
>   accumulatorAdders0.add(new org.apache.calcite.linq4j.function.Function2() {
>     public Record2_0 apply(Record2_0 acc, Object[] in) {
>       if (acc.f0) {
>         throw new IllegalStateException(
>           "more than one value in agg SINGLE_VALUE");
>       }
>       acc.f0 = true;
>       acc.f1 = org.apache.calcite.runtime.SqlFunctions.toInt(in[0]);
>       return acc;
>     }
>     public Record2_0 apply(Object acc, Object in) {
>       return apply(
>         (Record2_0) acc,
>         (Object[]) in);
>     }
>   }
>   );
>   org.apache.calcite.adapter.enumerable.AggregateLambdaFactory lambdaFactory0 = new org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory(
>     new org.apache.calcite.linq4j.function.Function0() {
>       public Object apply() {
>         boolean a0s0;
>         int a0s1;
>         a0s0 = false;
>         a0s1 = 0;
>         Record2_0 record0;
>         record0 = new Record2_0();
>         record0.f0 = a0s0;
>         record0.f1 = a0s1;
>         return record0;
>       }
>     }
> ,
>     accumulatorAdders0);
>   final org.apache.calcite.linq4j.Enumerable _inputEnumerable1 = org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(child.orderBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] v) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[2]);
>     }
>     public Object apply(Object v) {
>       return apply(
>         (Object[]) v);
>     }
>   }
>   , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), org.apache.calcite.linq4j.EnumerableDefaults.nestedLoopJoin(left0, child0.distinct(), new org.apache.calcite.linq4j.function.Predicate2() {
>     public boolean apply(int left, boolean right) {
>       return true;
>     }
>     public boolean apply(Integer left, Boolean right) {
>       return apply(
>         left.intValue(),
>         right.booleanValue());
>     }
>     public boolean apply(Object left, Object right) {
>       return apply(
>         (Integer) left,
>         (Boolean) right);
>     }
>   }
>   , new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(Integer left, Boolean right) {
>       return new Object[] {
>           left,
>           right};
>     }
>     public Object[] apply(Object left, Object right) {
>       return apply(
>         (Integer) left,
>         (Boolean) right);
>     }
>   }
>   , org.apache.calcite.linq4j.JoinType.INNER).groupBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] a0) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(a0[1]);
>     }
>     public Object apply(Object a0) {
>       return apply(
>         (Object[]) a0);
>     }
>   }
>   , lambdaFactory0.accumulatorInitializer(), lambdaFactory0.accumulatorAdder(), lambdaFactory0.resultSelector(new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(boolean key, Record2_0 acc) {
>       return new Object[] {
>           key,
>           acc.f1};
>     }
>     public Object[] apply(Boolean key, Record2_0 acc) {
>       return apply(
>         key.booleanValue(),
>         acc);
>     }
>     public Object[] apply(Object key, Object acc) {
>       return apply(
>         (Boolean) key,
>         (Record2_0) acc);
>     }
>   }
>   )).orderBy(new org.apache.calcite.linq4j.function.Function1() {
>     public boolean apply(Object[] v) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(v[0]);
>     }
>     public Object apply(Object v) {
>       return apply(
>         (Object[]) v);
>     }
>   }
>   , org.apache.calcite.linq4j.function.Functions.nullsComparator(false, false)), new org.apache.calcite.linq4j.function.Predicate1() {
>     public boolean apply(Object[] left) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(left[2]);
>     }
>     public boolean apply(Object left) {
>       return apply(
>         (Object[]) left);
>     }
>   }
>   , new org.apache.calcite.linq4j.function.Predicate1() {
>     public boolean apply(Object[] right) {
>       return org.apache.calcite.runtime.SqlFunctions.toBoolean(right[0]);
>     }
>     public boolean apply(Object right) {
>       return apply(
>         (Object[]) right);
>     }
>   }
>   , null, new org.apache.calcite.linq4j.function.Function2() {
>     public Object[] apply(Object[] left, Object[] right) {
>       return new Object[] {
>           left[0],
>           left[1],
>           left[2],
>           right == null ? null : right[0],
>           right == null ? null : right[1]};
>     }
>     public Object[] apply(Object left, Object right) {
>       return apply(
>         (Object[]) left,
>         (Object[]) right);
>     }
>   }
>   , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
>     public int compare(Boolean v0, Boolean v1) {
>       final int c;
>       c = org.apache.calcite.runtime.Utilities.compare(v0, v1);
>       if (c != 0) {
>         return c;
>       }
>       return 0;
>     }
>     public int compare(Object o0, Object o1) {
>       return this.compare((Boolean) o0, (Boolean) o1);
>     }
>   });
>   return new org.apache.calcite.linq4j.AbstractEnumerable(){
>       public org.apache.calcite.linq4j.Enumerator enumerator() {
>         return new org.apache.calcite.linq4j.Enumerator(){
>             public final org.apache.calcite.linq4j.Enumerator inputEnumerator = _inputEnumerable1.enumerator();
>             public void reset() {
>               inputEnumerator.reset();
>             }
>             public boolean moveNext() {
>               return inputEnumerator.moveNext();
>             }
>             public void close() {
>               inputEnumerator.close();
>             }
>             public Object current() {
>               final Object[] current = (Object[]) inputEnumerator.current();
>               final Object input_value = current[1];
>               final Object input_value0 = current[4];
>               return new Object[] {
>                   input_value,
>                   input_value0};
>             }
>           };
>       }
>     };
> }
> public Class getElementType() {
>   return java.lang.Object[].class;
> }
> 	at org.apache.calcite.avatica.Helper.wrap(Helper.java:37)
> 	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:130)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1130)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:324)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:220)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
> 	at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:249)
> 	at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:623)
> 	at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675)
> 	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
> 	... 66 more
> Caused by: org.codehaus.commons.compiler.CompileException: Line 169, Column 111: No applicable constructor/method found for actual parameters "org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, Baz$13, Baz$14, void, Baz$15, org.apache.calcite.linq4j.JoinType, Baz$16"; candidates are: "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Predicate2, org.apache.calcite.linq4j.function.Function2, org.apache.calcite.linq4j.JoinType, java.util.Comparator)", "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function2, org.apache.calcite.linq4j.JoinType, java.util.Comparator)", "public static org.apache.calcite.linq4j.Enumerable org.apache.calcite.linq4j.EnumerableDefaults.mergeJoin(org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.Enumerable, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function1, org.apache.calcite.linq4j.function.Function2, boolean, boolean)"
> 	at org.codehaus.janino.UnitCompiler.compileError(UnitCompiler.java:12679)
> 	at org.codehaus.janino.UnitCompiler.findMostSpecificIInvocable(UnitCompiler.java:9390)
> 	at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:9250)
> 	at org.codehaus.janino.UnitCompiler.findIMethod(UnitCompiler.java:9168)
> 	at org.codehaus.janino.UnitCompiler.compileGet2(UnitCompiler.java:5089)
> 	at org.codehaus.janino.UnitCompiler.access$9000(UnitCompiler.java:231)
> 	at org.codehaus.janino.UnitCompiler$15.visitMethodInvocation(UnitCompiler.java:4631)
> 	at org.codehaus.janino.UnitCompiler$15.visitMethodInvocation(UnitCompiler.java:4604)
> 	at org.codehaus.janino.Java$MethodInvocation.accept(Java.java:5443)
> 	at org.codehaus.janino.UnitCompiler.compileGet(UnitCompiler.java:4604)
> 	at org.codehaus.janino.UnitCompiler.compileGetValue(UnitCompiler.java:5729)
> 	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:2622)
> 	at org.codehaus.janino.UnitCompiler.access$2700(UnitCompiler.java:231)
> 	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1539)
> 	at org.codehaus.janino.UnitCompiler$6.visitLocalVariableDeclarationStatement(UnitCompiler.java:1523)
> 	at org.codehaus.janino.Java$LocalVariableDeclarationStatement.accept(Java.java:3840)
> 	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:1523)
> 	at org.codehaus.janino.UnitCompiler.compileStatements(UnitCompiler.java:1607)
> 	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:3531)
> 	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:3218)
> 	at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1379)
> 	at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java:1352)
> 	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:800)
> 	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:412)
> 	at org.codehaus.janino.UnitCompiler.access$400(UnitCompiler.java:231)
> 	at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:391)
> 	at org.codehaus.janino.UnitCompiler$2.visitPackageMemberClassDeclaration(UnitCompiler.java:386)
> 	at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java:1692)
> 	at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java:386)
> 	at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java:359)
> 	at org.codehaus.janino.UnitCompiler.access$000(UnitCompiler.java:231)
> 	at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:333)
> 	at org.codehaus.janino.UnitCompiler$1.visitCompilationUnit(UnitCompiler.java:330)
> 	at org.codehaus.janino.Java$CompilationUnit.accept(Java.java:367)
> 	at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java:330)
> 	at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java:245)
> 	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:294)
> 	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:288)
> 	at org.codehaus.janino.ClassBodyEvaluator.cook(ClassBodyEvaluator.java:267)
> 	at org.codehaus.commons.compiler.Cookable.cook(Cookable.java:52)
> 	at org.codehaus.janino.ClassBodyEvaluator.createInstance(ClassBodyEvaluator.java:428)
> 	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.getBindable(EnumerableInterpretable.java:166)
> 	at org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:127)
> 	... 76 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)