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)