-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed
Labels
Description
Search before asking
- I had searched in the issues and found no similar issues.
Version
2.0
What's Wrong?
CREATE TABLE `test_t` (
`key` varchar(*) NOT NULL,
`value` varchar(*) NULL
) ENGINE=OLAP
DISTRIBUTED BY HASH(`key`) BUCKETS 2
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
SET enable_fallback_to_original_planner=false;
-- explain ANALYZED PLAN
SELECT
t.*
FROM (
SELECT a , b
FROM (
SELECT any_value(value) AS a,
any_value(CAST(value AS double)) AS b
FROM (
SELECT CAST(value AS double) AS value
FROM test_t
) rbsj
) RB
) t
join
( SELECT 124 AS somekey) t2
The error :
ERROR 1105 (HY000): errCode = 2, detailMessage = Unexpected exception: Duplicate key a#3
The exception in fe log:
org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = Unexpected exception: Duplicate key a#3
at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:620) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:485) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:475) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:435) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.dispatch(ConnectProcessor.java:587) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.ConnectProcessor.processOnce(ConnectProcessor.java:856) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_272]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_272]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_272]
Caused by: java.lang.IllegalStateException: Duplicate key a#3
at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133) ~[?:1.8.0_272]
at java.util.HashMap.merge(HashMap.java:1254) ~[?:1.8.0_272]
at java.util.stream.Collectors.lambda$toMap$58(Collectors.java:1320) ~[?:1.8.0_272]
at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) ~[?:1.8.0_272]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_272]
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) ~[?:1.8.0_272]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_272]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_272]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_272]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_272]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566) ~[?:1.8.0_272]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.lambda$visitLogicalAggregate$7(PullUpPredicates.java:105) ~[doris-f
e.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.cacheOrElse(PullUpPredicates.java:126) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.visitLogicalAggregate(PullUpPredicates.java:99) ~[doris-fe.jar:1.2-
SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.visitLogicalAggregate(PullUpPredicates.java:48) ~[doris-fe.jar:1.2-
SNAPSHOT]
at org.apache.doris.nereids.trees.plans.logical.LogicalAggregate.accept(LogicalAggregate.java:170) ~[doris-fe.jar:1.2-SNAPSHOT
]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.lambda$visitLogicalProject$5(PullUpPredicates.java:84) ~[doris-fe.j
ar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.cacheOrElse(PullUpPredicates.java:126) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.visitLogicalProject(PullUpPredicates.java:83) ~[doris-fe.jar:1.2-SN
APSHOT]
at org.apache.doris.nereids.rules.rewrite.PullUpPredicates.visitLogicalProject(PullUpPredicates.java:48) ~[doris-fe.jar:1.2-SN
APSHOT]
at org.apache.doris.nereids.trees.plans.logical.LogicalProject.accept(LogicalProject.java:134) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.InferPredicates.pullUpPredicates(InferPredicates.java:119) ~[doris-fe.jar:1.2-SNAPSH
OT]
at org.apache.doris.nereids.rules.rewrite.InferPredicates.getAllExpressions(InferPredicates.java:111) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.InferPredicates.visitLogicalJoin(InferPredicates.java:70) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.InferPredicates.visitLogicalJoin(InferPredicates.java:54) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.logical.LogicalJoin.accept(LogicalJoin.java:263) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter.visitChildren(DefaultPlanRewriter.java:54) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter.visit(DefaultPlanRewriter.java:35) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter.visit(DefaultPlanRewriter.java:31) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.PlanVisitor.visitLogicalProject(PlanVisitor.java:191) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.logical.LogicalProject.accept(LogicalProject.java:134) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter.visitChildren(DefaultPlanRewriter.java:54) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter.visit(DefaultPlanRewriter.java:35) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter.visit(DefaultPlanRewriter.java:31) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.PlanVisitor.visitLogicalSink(PlanVisitor.java:118) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.SinkVisitor.visitLogicalResultSink(SinkVisitor.java:78) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.accept(LogicalResultSink.java:58) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.InferPredicates.rewriteRoot(InferPredicates.java:59) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.rewrite.CustomRewriteJob.execute(CustomRewriteJob.java:59) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.executor.AbstractBatchJobExecutor.execute(AbstractBatchJobExecutor.java:119) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.RewriteCteChildren.visit(RewriteCteChildren.java:73) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.RewriteCteChildren.visit(RewriteCteChildren.java:57) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.PlanVisitor.visitLogicalSink(PlanVisitor.java:118) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.visitor.SinkVisitor.visitLogicalResultSink(SinkVisitor.java:78) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.trees.plans.logical.LogicalResultSink.accept(LogicalResultSink.java:58) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.rules.rewrite.RewriteCteChildren.rewriteRoot(RewriteCteChildren.java:68) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.rewrite.CustomRewriteJob.execute(CustomRewriteJob.java:59) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.jobs.executor.AbstractBatchJobExecutor.execute(AbstractBatchJobExecutor.java:119) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.rewrite(NereidsPlanner.java:304) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.plan(NereidsPlanner.java:234) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.nereids.NereidsPlanner.plan(NereidsPlanner.java:126) ~[doris-fe.jar:1.2-SNAPSHOT]
at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:616) ~[doris-fe.jar:1.2-SNAPSHOT]
... 9 more
The reason is any_value(value) AS a and any_value(CAST(value AS double)) AS b will produce two Alias with the same expression.
What You Expected?
No exception
How to Reproduce?
No response
Anything Else?
No response
Are you willing to submit PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct