You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
with t as (select'2022-01-01'as start_date,'2022-02-01'as end_date )
select*from t
whereDate('2022-01-01') between date(start_date) anddate(end_date)
Running above SQL fails with following stack trace.
Query 20221108_160922_00000_w2jf2 failed: class io.trino.sql.tree.GenericLiteral cannot be cast to class io.trino.sql.tree.Cast (io.trino.sql.tree.GenericLiteral and io.trino.sql.tree.Cast are in unnamed module of loader 'app')
java.lang.ClassCastException: class io.trino.sql.tree.GenericLiteral cannot be cast to class io.trino.sql.tree.Cast (io.trino.sql.tree.GenericLiteral and io.trino.sql.tree.Cast are in unnamed module of loader 'app')
at io.trino.sql.planner.DomainTranslator$Visitor.createVarcharCastToDateComparisonExtractionResult(DomainTranslator.java:612)
at io.trino.sql.planner.DomainTranslator$Visitor.visitComparisonExpression(DomainTranslator.java:514)
at io.trino.sql.planner.DomainTranslator$Visitor.visitComparisonExpression(DomainTranslator.java:332)
at io.trino.sql.tree.ComparisonExpression.accept(ComparisonExpression.java:71)
at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
at io.trino.sql.planner.DomainTranslator$Visitor.lambda$visitLogicalExpression$0(DomainTranslator.java:387)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at io.trino.sql.planner.DomainTranslator$Visitor.visitLogicalExpression(DomainTranslator.java:388)
at io.trino.sql.planner.DomainTranslator$Visitor.visitLogicalExpression(DomainTranslator.java:332)
at io.trino.sql.tree.LogicalExpression.accept(LogicalExpression.java:80)
at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
at io.trino.sql.planner.DomainTranslator$Visitor.visitBetweenPredicate(DomainTranslator.java:1037)
at io.trino.sql.planner.DomainTranslator$Visitor.visitBetweenPredicate(DomainTranslator.java:332)
at io.trino.sql.tree.BetweenPredicate.accept(BetweenPredicate.java:71)
at io.trino.sql.tree.AstVisitor.process(AstVisitor.java:27)
at io.trino.sql.planner.DomainTranslator.getExtractionResult(DomainTranslator.java:329)
at io.trino.sql.planner.optimizations.PropertyDerivations$Visitor.visitFilter(PropertyDerivations.java:720)
at io.trino.sql.planner.optimizations.PropertyDerivations$Visitor.visitFilter(PropertyDerivations.java:170)
at io.trino.sql.planner.plan.FilterNode.accept(FilterNode.java:72)
at io.trino.sql.planner.optimizations.PropertyDerivations.deriveProperties(PropertyDerivations.java:144)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.deriveProperties(AddExchanges.java:1341)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.deriveProperties(AddExchanges.java:1335)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.withDerivedProperties(AddExchanges.java:1330)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.rebaseAndDeriveProperties(AddExchanges.java:1306)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.visitFilter(AddExchanges.java:587)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.visitFilter(AddExchanges.java:147)
at io.trino.sql.planner.plan.FilterNode.accept(FilterNode.java:72)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.planChild(AddExchanges.java:1301)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.visitOutput(AddExchanges.java:193)
at io.trino.sql.planner.optimizations.AddExchanges$Rewriter.visitOutput(AddExchanges.java:147)
at io.trino.sql.planner.plan.OutputNode.accept(OutputNode.java:83)
at io.trino.sql.planner.optimizations.AddExchanges.optimize(AddExchanges.java:143)
at io.trino.sql.planner.optimizations.StatsRecordingPlanOptimizer.optimize(StatsRecordingPlanOptimizer.java:54)
at io.trino.sql.planner.LogicalPlanner.plan(LogicalPlanner.java:247)
at io.trino.sql.planner.LogicalPlanner.plan(LogicalPlanner.java:222)
at io.trino.sql.planner.LogicalPlanner.plan(LogicalPlanner.java:217)
at io.trino.execution.SqlQueryExecution.doPlanQuery(SqlQueryExecution.java:475)
at io.trino.execution.SqlQueryExecution.planQuery(SqlQueryExecution.java:456)
at io.trino.execution.SqlQueryExecution.start(SqlQueryExecution.java:397)
at io.trino.execution.SqlQueryManager.createQuery(SqlQueryManager.java:249)
at io.trino.dispatcher.LocalDispatchQuery.lambda$startExecution$7(LocalDispatchQuery.java:143)
at io.trino.$gen.Trino_402____20221108_160916_2.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Changing BETWEEN to > and < works. i.e. following SQL works
with t as (select'2022-01-01'as start_date,'2022-02-01'as end_date )
select*from t
whereDate('2022-01-01') >date(start_date) andDate('2022-01-01') <=date(end_date);
The text was updated successfully, but these errors were encountered:
It happens because visitComparisonExpression is operating on a normalized form of the comparison expression resulting from toNormalizedSimpleComparison, but createVarcharCastToDateComparisonExtractionResult pulls the elements from the unnormalized ComparisonExpression node.
Running above SQL fails with following stack trace.
Changing BETWEEN to > and < works. i.e. following SQL works
The text was updated successfully, but these errors were encountered: