This commit is contained in:
Zoltan Haindrich 2024-12-07 16:56:24 +00:00
parent 8f286b376e
commit 4e84219724
9 changed files with 201 additions and 715 deletions

View File

@ -13,11 +13,162 @@
( SELECT * FROM
( SELECT * FROM lotsocolumns, UNNEST(MV_TO_ARRAY(dimMultivalEnumerated)) as ut(dim3_unnest1) ) ,UNNEST(MV_TO_ARRAY(dimMultivalEnumerated)) as ut(dim3_unnest2)
), UNNEST(MV_TO_ARRAY(dimMultivalEnumerated)) as ut(dim3_unnest3) WHERE dimZipf=27 AND dim3_unnest1='Baz' AND dim3_unnest2='Hello' AND dim3_unnest3='World';
+---------+--------------+--------------+--------------+
| dimZipf | dim3_unnest1 | dim3_unnest2 | dim3_unnest3 |
+---------+--------------+--------------+--------------+
+---------+--------------+--------------+--------------+
(0 rows)
org.apache.calcite.avatica.AvaticaSqlException: Error -1 (00000) : Error while executing SQL " SELECT dimZipf, dim3_unnest1, dim3_unnest2, dim3_unnest3 FROM
( SELECT * FROM
( SELECT * FROM lotsocolumns, UNNEST(MV_TO_ARRAY(dimMultivalEnumerated)) as ut(dim3_unnest1) ) ,UNNEST(MV_TO_ARRAY(dimMultivalEnumerated)) as ut(dim3_unnest2)
), UNNEST(MV_TO_ARRAY(dimMultivalEnumerated)) as ut(dim3_unnest3) WHERE dimZipf=27 AND dim3_unnest1='Baz' AND dim3_unnest2='Hello' AND dim3_unnest3='World'": Remote driver error: UOE: Predicate does not support ARRAY types
at org.apache.calcite.avatica.Helper.createException(Helper.java:54)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:164)
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
at net.hydromatic.quidem.Quidem.checkResult(Quidem.java:299)
at net.hydromatic.quidem.Quidem.access$2600(Quidem.java:57)
at net.hydromatic.quidem.Quidem$ContextImpl.checkResult(Quidem.java:1636)
at net.hydromatic.quidem.Quidem$CheckResultCommand.execute(Quidem.java:941)
at net.hydromatic.quidem.Quidem$CompositeCommand.execute(Quidem.java:1437)
at net.hydromatic.quidem.Quidem.execute(Quidem.java:190)
at org.apache.druid.quidem.DruidQuidemTestBase$DruidQuidemRunner.run(DruidQuidemTestBase.java:158)
at org.apache.druid.quidem.DruidQuidemTestBase$DruidQuidemRunner.run(DruidQuidemTestBase.java:138)
at org.apache.druid.sql.calcite.QTestCase$1.run(QTestCase.java:73)
at org.apache.druid.sql.calcite.QueryTestRunner.run(QueryTestRunner.java:768)
at org.apache.druid.sql.calcite.QueryTestBuilder.run(QueryTestBuilder.java:304)
at org.apache.druid.sql.calcite.BaseCalciteQueryTest.testQuery(BaseCalciteQueryTest.java:780)
at org.apache.druid.sql.calcite.CalciteArraysQueryTest.testUnnestThriceWithFiltersOnDimAndAllUnnestColumns(CalciteArraysQueryTest.java:4747)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:728)
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.apache.druid.sql.calcite.NotYetSupported$NotYetSupportedProcessor.interceptTestMethod(NotYetSupported.java:131)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
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.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:218)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:214)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:139)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:69)
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 java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
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 java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
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.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
org.apache.druid.java.util.common.UOE: Predicate does not support ARRAY types
at org.apache.druid.query.filter.DruidPredicateFactory.makeArrayPredicate(DruidPredicateFactory.java:42)
at org.apache.druid.segment.filter.PredicateValueMatcherFactory.makeArrayProcessor(PredicateValueMatcherFactory.java:110)
at org.apache.druid.segment.filter.StringConstantValueMatcherFactory.makeArrayProcessor(StringConstantValueMatcherFactory.java:90)
at org.apache.druid.segment.filter.StringConstantValueMatcherFactory.makeArrayProcessor(StringConstantValueMatcherFactory.java:39)
at org.apache.druid.segment.ColumnProcessors.makeProcessorInternal(ColumnProcessors.java:290)
at org.apache.druid.segment.ColumnProcessors.makeProcessor(ColumnProcessors.java:77)
at org.apache.druid.segment.filter.SelectorFilter.makeMatcher(SelectorFilter.java:115)
at org.apache.druid.segment.join.PostJoinCursor.<init>(PostJoinCursor.java:56)
at org.apache.druid.segment.join.PostJoinCursor.wrap(PostJoinCursor.java:67)
at org.apache.druid.segment.UnnestCursorFactory$1.asCursor(UnnestCursorFactory.java:130)
at org.apache.druid.segment.UnnestCursorFactory$1.asCursor(UnnestCursorFactory.java:105)
at org.apache.druid.segment.UnnestCursorFactory$1.asCursor(UnnestCursorFactory.java:105)
at org.apache.druid.query.scan.ScanQueryEngine$1.make(ScanQueryEngine.java:143)
at org.apache.druid.java.util.common.guava.BaseSequence.toYielder(BaseSequence.java:66)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.query.spec.SpecificSegmentQueryRunner$1.toYielder(SpecificSegmentQueryRunner.java:113)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:185)
at org.apache.druid.query.spec.SpecificSegmentQueryRunner$2.wrap(SpecificSegmentQueryRunner.java:165)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.ConcatSequence.makeYielder(ConcatSequence.java:85)
at org.apache.druid.java.util.common.guava.ConcatSequence.toYielder(ConcatSequence.java:65)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.LazySequence.toYielder(LazySequence.java:46)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.MergeSequence.lambda$toYielder$0(MergeSequence.java:66)
at org.apache.druid.java.util.common.guava.BaseSequence.accumulate(BaseSequence.java:44)
at org.apache.druid.java.util.common.guava.MergeSequence.toYielder(MergeSequence.java:63)
at org.apache.druid.query.RetryQueryRunner$1.toYielder(RetryQueryRunner.java:133)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.query.CPUTimeMetricQueryRunner$1.wrap(CPUTimeMetricQueryRunner.java:77)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.ConcatSequence.toYielder(ConcatSequence.java:51)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.Yielders.each(Yielders.java:32)
at org.apache.druid.sql.avatica.DruidJdbcResultSet.lambda$execute$0(DruidJdbcResultSet.java:239)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
!ok
LogicalProject(dimZipf=[$0], dim3_unnest1=[CAST('Baz':VARCHAR):VARCHAR], dim3_unnest2=[$1], dim3_unnest3=[$3])
@ -57,10 +208,13 @@ DruidProject(dimZipf=[$0], dim3_unnest1=[CAST('Baz':VARCHAR):VARCHAR], dim3_unne
"name" : "lotsocolumns"
},
"filter" : {
"type" : "equals",
"column" : "dimZipf",
"matchValueType" : "LONG",
"matchValue" : 27
"type" : "bound",
"dimension" : "dimZipf",
"lower" : "27",
"upper" : "27",
"ordering" : {
"type" : "numeric"
}
}
},
"virtualColumn" : {
@ -70,10 +224,9 @@ DruidProject(dimZipf=[$0], dim3_unnest1=[CAST('Baz':VARCHAR):VARCHAR], dim3_unne
"outputType" : "ARRAY<STRING>"
},
"unnestFilter" : {
"type" : "equals",
"column" : "j0.unnest",
"matchValueType" : "STRING",
"matchValue" : "Baz"
"type" : "selector",
"dimension" : "j0.unnest",
"value" : "Baz"
}
},
"virtualColumn" : {
@ -83,10 +236,9 @@ DruidProject(dimZipf=[$0], dim3_unnest1=[CAST('Baz':VARCHAR):VARCHAR], dim3_unne
"outputType" : "ARRAY<STRING>"
},
"unnestFilter" : {
"type" : "equals",
"column" : "j0.unnest",
"matchValueType" : "STRING",
"matchValue" : "Hello"
"type" : "selector",
"dimension" : "j0.unnest",
"value" : "Hello"
}
},
"virtualColumn" : {
@ -96,10 +248,9 @@ DruidProject(dimZipf=[$0], dim3_unnest1=[CAST('Baz':VARCHAR):VARCHAR], dim3_unne
"outputType" : "ARRAY<STRING>"
},
"unnestFilter" : {
"type" : "equals",
"column" : "_j0.unnest",
"matchValueType" : "STRING",
"matchValue" : "World"
"type" : "selector",
"dimension" : "_j0.unnest",
"value" : "World"
}
},
"intervals" : {

View File

@ -92,27 +92,28 @@ org.apache.calcite.avatica.AvaticaSqlException: Error -1 (00000) : Error while e
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:95)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:91)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:60)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
org.apache.druid.java.util.common.UOE: Predicate does not support ARRAY types
at org.apache.druid.query.filter.DruidPredicateFactory.makeArrayPredicate(DruidPredicateFactory.java:42)
at org.apache.druid.segment.filter.PredicateValueMatcherFactory.makeArrayProcessor(PredicateValueMatcherFactory.java:110)
at org.apache.druid.segment.filter.StringConstantValueMatcherFactory.makeArrayProcessor(StringConstantValueMatcherFactory.java:90)
at org.apache.druid.segment.filter.StringConstantValueMatcherFactory.makeArrayProcessor(StringConstantValueMatcherFactory.java:1)
at org.apache.druid.segment.filter.StringConstantValueMatcherFactory.makeArrayProcessor(StringConstantValueMatcherFactory.java:39)
at org.apache.druid.segment.ColumnProcessors.makeProcessorInternal(ColumnProcessors.java:290)
at org.apache.druid.segment.ColumnProcessors.makeProcessor(ColumnProcessors.java:77)
at org.apache.druid.segment.filter.SelectorFilter.makeMatcher(SelectorFilter.java:115)
@ -124,16 +125,16 @@ org.apache.druid.java.util.common.UOE: Predicate does not support ARRAY types
at org.apache.druid.query.scan.ScanQueryEngine$1.make(ScanQueryEngine.java:143)
at org.apache.druid.java.util.common.guava.BaseSequence.toYielder(BaseSequence.java:66)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:1)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:1)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.query.spec.SpecificSegmentQueryRunner$1.toYielder(SpecificSegmentQueryRunner.java:113)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:1)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.query.spec.SpecificSegmentQueryRunner.doNamed(SpecificSegmentQueryRunner.java:185)
at org.apache.druid.query.spec.SpecificSegmentQueryRunner$2.wrap(SpecificSegmentQueryRunner.java:165)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
@ -143,27 +144,27 @@ org.apache.druid.java.util.common.UOE: Predicate does not support ARRAY types
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.LazySequence.toYielder(LazySequence.java:46)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:1)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.MergeSequence.lambda$1(MergeSequence.java:66)
at org.apache.druid.java.util.common.guava.MergeSequence.lambda$toYielder$0(MergeSequence.java:66)
at org.apache.druid.java.util.common.guava.BaseSequence.accumulate(BaseSequence.java:44)
at org.apache.druid.java.util.common.guava.MergeSequence.toYielder(MergeSequence.java:63)
at org.apache.druid.query.RetryQueryRunner$1.toYielder(RetryQueryRunner.java:133)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:1)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.query.CPUTimeMetricQueryRunner$1.wrap(CPUTimeMetricQueryRunner.java:77)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:88)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:1)
at org.apache.druid.java.util.common.guava.WrappingSequence$2.get(WrappingSequence.java:84)
at org.apache.druid.java.util.common.guava.SequenceWrapper.wrap(SequenceWrapper.java:55)
at org.apache.druid.java.util.common.guava.WrappingSequence.toYielder(WrappingSequence.java:83)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.ConcatSequence.toYielder(ConcatSequence.java:51)
at org.apache.druid.java.util.common.guava.MappedSequence.toYielder(MappedSequence.java:49)
at org.apache.druid.java.util.common.guava.Yielders.each(Yielders.java:32)
at org.apache.druid.sql.avatica.DruidJdbcResultSet.lambda$0(DruidJdbcResultSet.java:239)
at org.apache.druid.sql.avatica.DruidJdbcResultSet.lambda$execute$0(DruidJdbcResultSet.java:239)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

View File

@ -45,10 +45,9 @@ DruidAggregate(group=[{1}], EXPR$1=[COUNT()], druid=[logical])
"outputType" : "ARRAY<STRING>"
},
"unnestFilter" : {
"type" : "equals",
"column" : "j0.unnest",
"matchValueType" : "STRING",
"matchValue" : "b"
"type" : "selector",
"dimension" : "j0.unnest",
"value" : "b"
}
},
"intervals" : {

View File

@ -1,103 +0,0 @@
# testJoinWithInputRefCondition@NullHandling=default case-crc:9a6c217b
# quidem testcase reason: JOIN_FILTER_LOCATIONS
!set debug true
!set defaultTimeout 300000
!set maxScatterGatherBytes 9223372036854775807
!set plannerStrategy DECOUPLED
!set sqlCurrentTimestamp 2000-01-01T00:00:00Z
!set sqlQueryId dummy
!set outputformat mysql
!use druidtest:///
SELECT COUNT(*) FILTER (WHERE FLOOR(100) NOT IN (SELECT m1 FROM foo)) FROM foo;
+--------+
| EXPR$0 |
+--------+
| 6 |
+--------+
(1 row)
!ok
LogicalAggregate(group=[{}], EXPR$0=[COUNT() FILTER $0])
LogicalProject($f0=[IS NULL($9)])
LogicalJoin(condition=[=(CAST(FLOOR(100)):FLOAT NOT NULL, $8)], joinType=[left])
LogicalTableScan(table=[[druid, foo]])
LogicalAggregate(group=[{0}], i=[LITERAL_AGG(true)])
LogicalProject(m1=[$5])
LogicalTableScan(table=[[druid, foo]])
!logicalPlan
DruidAggregate(group=[{}], EXPR$0=[COUNT() FILTER $0], druid=[logical])
DruidProject($f0=[IS NULL($9)], druid=[logical])
DruidJoin(condition=[=(CAST(FLOOR(100)):FLOAT NOT NULL, $8)], joinType=[left])
DruidTableScan(table=[[druid, foo]], druid=[logical])
DruidAggregate(group=[{0}], i=[LITERAL_AGG(true)], druid=[logical])
DruidProject(m1=[$5], druid=[logical])
DruidTableScan(table=[[druid, foo]], druid=[logical])
!druidPlan
{
"queryType" : "timeseries",
"dataSource" : {
"type" : "join",
"left" : {
"type" : "table",
"name" : "foo"
},
"right" : {
"type" : "query",
"query" : {
"queryType" : "groupBy",
"dataSource" : {
"type" : "table",
"name" : "foo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"dimensions" : [ {
"type" : "default",
"dimension" : "m1",
"outputName" : "d0",
"outputType" : "FLOAT"
} ],
"postAggregations" : [ {
"type" : "expression",
"name" : "a0",
"expression" : "1",
"outputType" : "LONG"
} ],
"limitSpec" : {
"type" : "NoopLimitSpec"
}
}
},
"rightPrefix" : "j0.",
"condition" : "(CAST(floor(100), 'DOUBLE') == \"j0.d0\")",
"joinType" : "LEFT"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"aggregations" : [ {
"type" : "filtered",
"aggregator" : {
"type" : "count",
"name" : "a0"
},
"filter" : {
"type" : "selector",
"dimension" : "j0.a0",
"value" : null
},
"name" : "a0"
} ]
}
!nativePlan

View File

@ -1,161 +0,0 @@
# testJoinWithInputRefCondition@NullHandling=sql case-crc:9a6c217b
# quidem testcase reason: JOIN_FILTER_LOCATIONS
!set debug true
!set defaultTimeout 300000
!set maxScatterGatherBytes 9223372036854775807
!set plannerStrategy DECOUPLED
!set sqlCurrentTimestamp 2000-01-01T00:00:00Z
!set sqlQueryId dummy
!set outputformat mysql
!use druidtest:///
SELECT COUNT(*) FILTER (WHERE FLOOR(100) NOT IN (SELECT m1 FROM foo)) FROM foo;
+--------+
| EXPR$0 |
+--------+
| 6 |
+--------+
(1 row)
!ok
LogicalAggregate(group=[{}], EXPR$0=[COUNT() FILTER $0])
LogicalProject($f0=[OR(=($8, 0), AND(IS NULL($11), >=($9, $8)))])
LogicalJoin(condition=[=(CAST(FLOOR(100)):FLOAT NOT NULL, $10)], joinType=[left])
LogicalJoin(condition=[true], joinType=[inner])
LogicalTableScan(table=[[druid, foo]])
LogicalAggregate(group=[{}], c=[COUNT()], ck=[COUNT($5)])
LogicalTableScan(table=[[druid, foo]])
LogicalAggregate(group=[{5}], i=[LITERAL_AGG(true)])
LogicalTableScan(table=[[druid, foo]])
!logicalPlan
DruidAggregate(group=[{}], EXPR$0=[COUNT() FILTER $0], druid=[logical])
DruidProject($f0=[OR(=($8, 0), AND(IS NULL($11), >=($9, $8)))], druid=[logical])
DruidJoin(condition=[=(CAST(FLOOR(100)):FLOAT NOT NULL, $10)], joinType=[left])
DruidJoin(condition=[true], joinType=[inner])
DruidTableScan(table=[[druid, foo]], druid=[logical])
DruidAggregate(group=[{}], c=[COUNT()], ck=[COUNT($5)], druid=[logical])
DruidTableScan(table=[[druid, foo]], druid=[logical])
DruidAggregate(group=[{5}], i=[LITERAL_AGG(true)], druid=[logical])
DruidTableScan(table=[[druid, foo]], druid=[logical])
!druidPlan
{
"queryType" : "timeseries",
"dataSource" : {
"type" : "join",
"left" : {
"type" : "join",
"left" : {
"type" : "table",
"name" : "foo"
},
"right" : {
"type" : "query",
"query" : {
"queryType" : "timeseries",
"dataSource" : {
"type" : "table",
"name" : "foo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"aggregations" : [ {
"type" : "count",
"name" : "a0"
}, {
"type" : "filtered",
"aggregator" : {
"type" : "count",
"name" : "a1"
},
"filter" : {
"type" : "not",
"field" : {
"type" : "null",
"column" : "m1"
}
},
"name" : "a1"
} ]
}
},
"rightPrefix" : "j0.",
"condition" : "1",
"joinType" : "INNER"
},
"right" : {
"type" : "query",
"query" : {
"queryType" : "groupBy",
"dataSource" : {
"type" : "table",
"name" : "foo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"dimensions" : [ {
"type" : "default",
"dimension" : "m1",
"outputName" : "d0",
"outputType" : "FLOAT"
} ],
"postAggregations" : [ {
"type" : "expression",
"name" : "a0",
"expression" : "1",
"outputType" : "LONG"
} ],
"limitSpec" : {
"type" : "NoopLimitSpec"
}
}
},
"rightPrefix" : "_j0.",
"condition" : "(CAST(floor(100), 'DOUBLE') == \"_j0.d0\")",
"joinType" : "LEFT"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"aggregations" : [ {
"type" : "filtered",
"aggregator" : {
"type" : "count",
"name" : "a0"
},
"filter" : {
"type" : "or",
"fields" : [ {
"type" : "equals",
"column" : "j0.a0",
"matchValueType" : "LONG",
"matchValue" : 0
}, {
"type" : "and",
"fields" : [ {
"type" : "null",
"column" : "_j0.a0"
}, {
"type" : "expression",
"expression" : "(\"j0.a1\" >= \"j0.a0\")"
} ]
} ]
},
"name" : "a0"
} ]
}
!nativePlan

View File

@ -1,110 +0,0 @@
# testSubqueryTypeMismatchWithLiterals@NullHandling=default case-crc:e7079756
# quidem testcase reason: AGGREGATE_REMOVE_NOT_FIRED
!set debug true
!set defaultTimeout 300000
!set maxScatterGatherBytes 9223372036854775807
!set plannerStrategy DECOUPLED
!set sqlCurrentTimestamp 2000-01-01T00:00:00Z
!set sqlQueryId dummy
!set outputformat mysql
!use druidtest:///
SELECT
dim1,
SUM(CASE WHEN sum_l1 = 0 THEN 1 ELSE 0 END) AS outer_l1
from (
select
dim1,
SUM(l1) as sum_l1
from numfoo
group by dim1
)
group by 1;
+------+----------+
| dim1 | outer_l1 |
+------+----------+
| | 0 |
| 1 | 1 |
| 10.1 | 0 |
| 2 | 1 |
| abc | 1 |
| def | 1 |
+------+----------+
(6 rows)
!ok
LogicalAggregate(group=[{0}], outer_l1=[COUNT() FILTER $1])
LogicalProject(dim1=[$0], $f2=[=($1, 0)])
LogicalAggregate(group=[{1}], sum_l1=[SUM($11)])
LogicalTableScan(table=[[druid, numfoo]])
!logicalPlan
DruidAggregate(group=[{0}], outer_l1=[COUNT() FILTER $1], druid=[logical])
DruidProject(dim1=[$0], $f2=[=($1, 0)], druid=[logical])
DruidAggregate(group=[{1}], sum_l1=[SUM($11)], druid=[logical])
DruidTableScan(table=[[druid, numfoo]], druid=[logical])
!druidPlan
{
"queryType" : "groupBy",
"dataSource" : {
"type" : "query",
"query" : {
"queryType" : "groupBy",
"dataSource" : {
"type" : "table",
"name" : "numfoo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"dimensions" : [ {
"type" : "default",
"dimension" : "dim1",
"outputName" : "_d0",
"outputType" : "STRING"
} ],
"aggregations" : [ {
"type" : "longSum",
"name" : "a0",
"fieldName" : "l1"
} ],
"limitSpec" : {
"type" : "NoopLimitSpec"
}
}
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"dimensions" : [ {
"type" : "default",
"dimension" : "_d0",
"outputName" : "d0",
"outputType" : "STRING"
} ],
"aggregations" : [ {
"type" : "filtered",
"aggregator" : {
"type" : "count",
"name" : "_a0"
},
"filter" : {
"type" : "selector",
"dimension" : "a0",
"value" : "0"
},
"name" : "_a0"
} ],
"limitSpec" : {
"type" : "NoopLimitSpec"
}
}
!nativePlan

View File

@ -1,111 +0,0 @@
# testSubqueryTypeMismatchWithLiterals@NullHandling=sql case-crc:e7079756
# quidem testcase reason: AGGREGATE_REMOVE_NOT_FIRED
!set debug true
!set defaultTimeout 300000
!set maxScatterGatherBytes 9223372036854775807
!set plannerStrategy DECOUPLED
!set sqlCurrentTimestamp 2000-01-01T00:00:00Z
!set sqlQueryId dummy
!set outputformat mysql
!use druidtest:///
SELECT
dim1,
SUM(CASE WHEN sum_l1 = 0 THEN 1 ELSE 0 END) AS outer_l1
from (
select
dim1,
SUM(l1) as sum_l1
from numfoo
group by dim1
)
group by 1;
+------+----------+
| dim1 | outer_l1 |
+------+----------+
| | 0 |
| 1 | 0 |
| 10.1 | 0 |
| 2 | 1 |
| abc | 0 |
| def | 0 |
+------+----------+
(6 rows)
!ok
LogicalAggregate(group=[{0}], outer_l1=[COUNT() FILTER $1])
LogicalProject(dim1=[$0], $f2=[IS TRUE(=($1, 0))])
LogicalAggregate(group=[{1}], sum_l1=[SUM($11)])
LogicalTableScan(table=[[druid, numfoo]])
!logicalPlan
DruidAggregate(group=[{0}], outer_l1=[COUNT() FILTER $1], druid=[logical])
DruidProject(dim1=[$0], $f2=[IS TRUE(=($1, 0))], druid=[logical])
DruidAggregate(group=[{1}], sum_l1=[SUM($11)], druid=[logical])
DruidTableScan(table=[[druid, numfoo]], druid=[logical])
!druidPlan
{
"queryType" : "groupBy",
"dataSource" : {
"type" : "query",
"query" : {
"queryType" : "groupBy",
"dataSource" : {
"type" : "table",
"name" : "numfoo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"dimensions" : [ {
"type" : "default",
"dimension" : "dim1",
"outputName" : "_d0",
"outputType" : "STRING"
} ],
"aggregations" : [ {
"type" : "longSum",
"name" : "a0",
"fieldName" : "l1"
} ],
"limitSpec" : {
"type" : "NoopLimitSpec"
}
}
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"granularity" : {
"type" : "all"
},
"dimensions" : [ {
"type" : "default",
"dimension" : "_d0",
"outputName" : "d0",
"outputType" : "STRING"
} ],
"aggregations" : [ {
"type" : "filtered",
"aggregator" : {
"type" : "count",
"name" : "_a0"
},
"filter" : {
"type" : "equals",
"column" : "a0",
"matchValueType" : "LONG",
"matchValue" : 0
},
"name" : "_a0"
} ],
"limitSpec" : {
"type" : "NoopLimitSpec"
}
}
!nativePlan

View File

@ -1,92 +0,0 @@
# testTimeFilterOnSubquery@NullHandling=default case-crc:73448efc
# quidem testcase reason: EQUIV_PLAN_EXTRA_COLUMNS
!set debug true
!set defaultTimeout 300000
!set maxScatterGatherBytes 9223372036854775807
!set plannerStrategy DECOUPLED
!set sqlCurrentTimestamp 2000-01-01T00:00:00Z
!set sqlQueryId dummy
!set outputformat mysql
!use druidtest:///
SELECT __time, m1 FROM (SELECT * FROM "foo" LIMIT 100)
WHERE TIME_IN_INTERVAL(__time, '2000/P1D') OR TIME_IN_INTERVAL(__time, '2001/P1D');
+-------------------------+-----+
| __time | m1 |
+-------------------------+-----+
| 2000-01-01 00:00:00.000 | 1.0 |
| 2001-01-01 00:00:00.000 | 4.0 |
+-------------------------+-----+
(2 rows)
!ok
LogicalFilter(condition=[SEARCH($0, Sarg[[2000-01-01 00:00:00:TIMESTAMP(3)..2000-01-02 00:00:00:TIMESTAMP(3)), [2001-01-01 00:00:00:TIMESTAMP(3)..2001-01-02 00:00:00:TIMESTAMP(3))]:TIMESTAMP(3))])
LogicalSort(fetch=[100])
LogicalProject(__time=[$0], m1=[$5])
LogicalTableScan(table=[[druid, foo]])
!logicalPlan
DruidFilter(condition=[SEARCH($0, Sarg[[2000-01-01 00:00:00:TIMESTAMP(3)..2000-01-02 00:00:00:TIMESTAMP(3)), [2001-01-01 00:00:00:TIMESTAMP(3)..2001-01-02 00:00:00:TIMESTAMP(3))]:TIMESTAMP(3))])
DruidSort(fetch=[100], druid=[logical])
DruidProject(__time=[$0], m1=[$5], druid=[logical])
DruidTableScan(table=[[druid, foo]], druid=[logical])
!druidPlan
{
"queryType" : "scan",
"dataSource" : {
"type" : "query",
"query" : {
"queryType" : "scan",
"dataSource" : {
"type" : "table",
"name" : "foo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"resultFormat" : "compactedList",
"limit" : 100,
"columns" : [ "__time", "m1" ],
"columnTypes" : [ "LONG", "FLOAT" ],
"granularity" : {
"type" : "all"
},
"legacy" : false
}
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"resultFormat" : "compactedList",
"filter" : {
"type" : "or",
"fields" : [ {
"type" : "bound",
"dimension" : "__time",
"lower" : "946684800000",
"upper" : "946771200000",
"upperStrict" : true,
"ordering" : {
"type" : "numeric"
}
}, {
"type" : "bound",
"dimension" : "__time",
"lower" : "978307200000",
"upper" : "978393600000",
"upperStrict" : true,
"ordering" : {
"type" : "numeric"
}
} ]
},
"columns" : [ "__time", "m1" ],
"columnTypes" : [ "LONG", "FLOAT" ],
"granularity" : {
"type" : "all"
},
"legacy" : false
}
!nativePlan

View File

@ -1,88 +0,0 @@
# testTimeFilterOnSubquery@NullHandling=sql case-crc:73448efc
# quidem testcase reason: EQUIV_PLAN_EXTRA_COLUMNS
!set debug true
!set defaultTimeout 300000
!set maxScatterGatherBytes 9223372036854775807
!set plannerStrategy DECOUPLED
!set sqlCurrentTimestamp 2000-01-01T00:00:00Z
!set sqlQueryId dummy
!set outputformat mysql
!use druidtest:///
SELECT __time, m1 FROM (SELECT * FROM "foo" LIMIT 100)
WHERE TIME_IN_INTERVAL(__time, '2000/P1D') OR TIME_IN_INTERVAL(__time, '2001/P1D');
+-------------------------+-----+
| __time | m1 |
+-------------------------+-----+
| 2000-01-01 00:00:00.000 | 1.0 |
| 2001-01-01 00:00:00.000 | 4.0 |
+-------------------------+-----+
(2 rows)
!ok
LogicalFilter(condition=[SEARCH($0, Sarg[[2000-01-01 00:00:00:TIMESTAMP(3)..2000-01-02 00:00:00:TIMESTAMP(3)), [2001-01-01 00:00:00:TIMESTAMP(3)..2001-01-02 00:00:00:TIMESTAMP(3))]:TIMESTAMP(3))])
LogicalSort(fetch=[100])
LogicalProject(__time=[$0], m1=[$5])
LogicalTableScan(table=[[druid, foo]])
!logicalPlan
DruidFilter(condition=[SEARCH($0, Sarg[[2000-01-01 00:00:00:TIMESTAMP(3)..2000-01-02 00:00:00:TIMESTAMP(3)), [2001-01-01 00:00:00:TIMESTAMP(3)..2001-01-02 00:00:00:TIMESTAMP(3))]:TIMESTAMP(3))])
DruidSort(fetch=[100], druid=[logical])
DruidProject(__time=[$0], m1=[$5], druid=[logical])
DruidTableScan(table=[[druid, foo]], druid=[logical])
!druidPlan
{
"queryType" : "scan",
"dataSource" : {
"type" : "query",
"query" : {
"queryType" : "scan",
"dataSource" : {
"type" : "table",
"name" : "foo"
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"resultFormat" : "compactedList",
"limit" : 100,
"columns" : [ "__time", "m1" ],
"columnTypes" : [ "LONG", "FLOAT" ],
"granularity" : {
"type" : "all"
},
"legacy" : false
}
},
"intervals" : {
"type" : "intervals",
"intervals" : [ "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z" ]
},
"resultFormat" : "compactedList",
"filter" : {
"type" : "or",
"fields" : [ {
"type" : "range",
"column" : "__time",
"matchValueType" : "LONG",
"lower" : 946684800000,
"upper" : 946771200000,
"upperOpen" : true
}, {
"type" : "range",
"column" : "__time",
"matchValueType" : "LONG",
"lower" : 978307200000,
"upper" : 978393600000,
"upperOpen" : true
} ]
},
"columns" : [ "__time", "m1" ],
"columnTypes" : [ "LONG", "FLOAT" ],
"granularity" : {
"type" : "all"
},
"legacy" : false
}
!nativePlan