Skip to content

Commit 1f976b0

Browse files
julianhydeclaude
andcommitted
[CALCITE-7420] Some !ok directives in .iq files overflow or cause type mismatches against scott HSQLDB
For tests where running SQL against scott HSQLDB causes exceptions (TINYINT overflow, type mismatches, dynamic parameters, internal AssertionErrors), use !error, !type, or fix the SQL. - aggregate-expand-distinct-aggregates.iq: SUM(deptno) overflows in some groups (Value 150 out of range) - aggregate-filter.iq: SMALLINT overflow; count(distinct cast(...)) projects as anonymous column - aggregate-join-transpose.iq, filter-sub-query-to-correlate.iq: Remove captured exception stack traces (tests now pass) - filter-project-transpose.iq: Internal AssertionError (type mismatch SMALLINT/TINYINT in windowed aggregate) - join-project-transpose.iq: Type mismatches in joins (cast x to varchar, join on deptno instead of dname for rank comparison) - project-aggregate-merge.iq: TINYINT overflow (Value 7902 out of range for cast(mgr as tinyint)) - project-join-remove.iq: slacker column not in scott database - project-join-transpose.iq: slacker column not in scott database - reduce-expressions.iq: Wrong plan (VARCHAR(20)->VARCHAR(10), EMP->DEPT) - set-op.iq: TINYINT nullability mismatch in INTERSECT - sort-join-transpose.iq: Dynamic parameters (?) cause NPE Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent acc3119 commit 1f976b0

14 files changed

Lines changed: 152 additions & 2390 deletions

core/src/test/java/org/apache/calcite/test/RelOptRulesTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@
123123
import org.apache.calcite.sql.fun.SqlLibrary;
124124
import org.apache.calcite.sql.fun.SqlLibraryOperatorTableFactory;
125125
import org.apache.calcite.sql.fun.SqlStdOperatorTable;
126-
import org.apache.calcite.sql.test.SqlTestFactory;
127126
import org.apache.calcite.sql.type.OperandTypes;
128127
import org.apache.calcite.sql.type.ReturnTypes;
129128
import org.apache.calcite.sql.type.SqlTypeName;

core/src/test/resources/sql/rule/aggregate-expand-distinct-aggregates.iq

Lines changed: 2 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -180,160 +180,8 @@ SELECT deptno,
180180
SUM(deptno), SUM(DISTINCT sal), MAX(deptno), MAX(comm)
181181
FROM emp
182182
GROUP BY deptno;
183-
java.sql.SQLException: Error while executing SQL "SELECT deptno,
184-
SUM(deptno), SUM(DISTINCT sal), MAX(deptno), MAX(comm)
185-
FROM emp
186-
GROUP BY deptno": Value 150 out of range
187-
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
188-
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
189-
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:164)
190-
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
191-
at net.hydromatic.quidem.Quidem.checkResult(Quidem.java:317)
192-
at net.hydromatic.quidem.Quidem.access$2600(Quidem.java:54)
193-
at net.hydromatic.quidem.Quidem$ContextImpl.checkResult(Quidem.java:1778)
194-
at net.hydromatic.quidem.Quidem$CheckResultCommand.execute(Quidem.java:985)
195-
at net.hydromatic.quidem.Quidem$CompositeCommand.execute(Quidem.java:1522)
196-
at net.hydromatic.quidem.Quidem.execute(Quidem.java:204)
197-
at org.apache.calcite.test.QuidemTest.checkRun(QuidemTest.java:540)
198-
at org.apache.calcite.test.QuidemTest.test(QuidemTest.java:730)
199-
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
200-
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
201-
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
202-
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
203-
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
204-
at org.junit.jupiter.engine.extension.SameThreadTimeoutInvocation.proceed(SameThreadTimeoutInvocation.java:45)
205-
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
206-
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
207-
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestTemplateMethod(TimeoutExtension.java:94)
208-
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
209-
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
210-
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
211-
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
212-
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
213-
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
214-
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
215-
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
216-
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)
217-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
218-
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
219-
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
220-
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
221-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
222-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
223-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
224-
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
225-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
226-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
227-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
228-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
229-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
230-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.submit(ForkJoinPoolHierarchicalTestExecutorService.java:118)
231-
at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:226)
232-
at org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:204)
233-
at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:142)
234-
at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.lambda$execute$2(TestTemplateTestDescriptor.java:110)
235-
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
236-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
237-
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
238-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
239-
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
240-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
241-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
242-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
243-
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
244-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
245-
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
246-
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
247-
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
248-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
249-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
250-
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
251-
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
252-
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
253-
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
254-
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
255-
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
256-
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
257-
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
258-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
259-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
260-
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
261-
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
262-
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
263-
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
264-
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
265-
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
266-
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
267-
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
268-
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
269-
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
270-
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
271-
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
272-
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
273-
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
274-
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
275-
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
276-
at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:110)
277-
at org.junit.jupiter.engine.descriptor.TestTemplateTestDescriptor.execute(TestTemplateTestDescriptor.java:44)
278-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
279-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
280-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
281-
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
282-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
283-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
284-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
285-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
286-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
287-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
288-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
289-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
290-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
291-
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
292-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
293-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
294-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
295-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
296-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
297-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129)
298-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
299-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
300-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
301-
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
302-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
303-
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
304-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
305-
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
306-
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185)
307-
at java.base/java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:194)
308-
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
309-
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1310)
310-
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1841)
311-
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
312-
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
313-
Caused by: java.lang.ArithmeticException: Value 150 out of range
314-
at org.apache.calcite.linq4j.tree.Primitive.checkRoundedRange(Primitive.java:387)
315-
at org.apache.calcite.linq4j.tree.Primitive.numberValue(Primitive.java:554)
316-
at org.apache.calcite.linq4j.tree.Primitive.numberValueRoundDown(Primitive.java:539)
317-
at Baz$1.apply(Unknown Source)
318-
at Baz$1.apply(Unknown Source)
319-
at Baz$1.apply(Unknown Source)
320-
at org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory$AccumulatorAdderSeq.apply(BasicAggregateLambdaFactory.java:81)
321-
at org.apache.calcite.linq4j.EnumerableDefaults.groupByMultiple_(EnumerableDefaults.java:1206)
322-
at org.apache.calcite.linq4j.EnumerableDefaults.groupByMultiple(EnumerableDefaults.java:801)
323-
at Baz.bind(Unknown Source)
324-
at org.apache.calcite.jdbc.CalcitePrepare$CalciteSignature.enumerable(CalcitePrepare.java:367)
325-
at org.apache.calcite.jdbc.CalciteConnectionImpl.enumerable(CalciteConnectionImpl.java:335)
326-
at org.apache.calcite.jdbc.CalciteMetaImpl._createIterable(CalciteMetaImpl.java:609)
327-
at org.apache.calcite.jdbc.CalciteMetaImpl.createIterable(CalciteMetaImpl.java:600)
328-
at org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:184)
329-
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
330-
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
331-
at org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:669)
332-
at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:669)
333-
at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:677)
334-
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:157)
335-
... 123 more
336-
!ok
183+
Value 150 out of range
184+
!error
337185
LogicalAggregate(group=[{0}], EXPR$1=[SUM($0)], EXPR$2=[SUM(DISTINCT $1)], EXPR$3=[MAX($0)], EXPR$4=[MAX($2)])
338186
LogicalProject(DEPTNO=[$7], SAL=[$5], COMM=[$6])
339187
LogicalTableScan(table=[[CATALOG, SALES, EMP]])

0 commit comments

Comments
 (0)