Stamatis Zampetakis created HIVE-28264:
------------------------------------------

             Summary: OOM/slow compilation when query contains SELECT clauses 
with nested expressions
                 Key: HIVE-28264
                 URL: https://issues.apache.org/jira/browse/HIVE-28264
             Project: Hive
          Issue Type: Bug
          Components: CBO, HiveServer2
    Affects Versions: 4.0.0
            Reporter: Stamatis Zampetakis
            Assignee: Stamatis Zampetakis


{code:sql}
CREATE TABLE t0 (`title` string);
SELECT x10 from
    (SELECT concat_ws('L10',x9, x9, x9, x9) as x10 from
        (SELECT concat_ws('L9',x8, x8, x8, x8) as x9 from
            (SELECT concat_ws('L8',x7, x7, x7, x7) as x8 from
                (SELECT concat_ws('L7',x6, x6, x6, x6) as x7 from
                    (SELECT concat_ws('L6',x5, x5, x5, x5) as x6 from
                        (SELECT concat_ws('L5',x4, x4, x4, x4) as x5 from
                            (SELECT concat_ws('L4',x3, x3, x3, x3) as x4 from
                                (SELECT concat_ws('L3',x2, x2, x2, x2) as x3 
from
                                    (SELECT concat_ws('L2',x1, x1, x1, x1) as 
x2 from
                                        (SELECT concat_ws('L1',x0, x0, x0, x0) 
as x1 from
                                            (SELECT concat_ws('L0',title, 
title, title, title) as x0 from t0) t1) t2) t3) t4) t5) t6) t7) t8) t9) t10) t
WHERE x10 = 'Something';
{code}
The query above fails with OOM when run with the TestMiniLlapLocalCliDriver and 
the default max heap size configuration effective for tests (-Xmx2048m).

{noformat}
java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOf(Arrays.java:3332)
        at 
java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
        at 
java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
        at java.lang.StringBuilder.append(StringBuilder.java:136)
        at org.apache.calcite.rex.RexCall.computeDigest(RexCall.java:152)
        at org.apache.calcite.rex.RexCall.toString(RexCall.java:165)
        at org.apache.calcite.rex.RexCall.appendOperands(RexCall.java:105)
        at org.apache.calcite.rex.RexCall.computeDigest(RexCall.java:151)
        at org.apache.calcite.rex.RexCall.toString(RexCall.java:165)
        at java.lang.String.valueOf(String.java:2994)
        at java.lang.StringBuilder.append(StringBuilder.java:131)
        at 
org.apache.calcite.rel.externalize.RelWriterImpl.explain_(RelWriterImpl.java:90)
        at 
org.apache.calcite.rel.externalize.RelWriterImpl.done(RelWriterImpl.java:144)
        at 
org.apache.calcite.rel.AbstractRelNode.explain(AbstractRelNode.java:246)
        at 
org.apache.calcite.rel.externalize.RelWriterImpl.explainInputs(RelWriterImpl.java:122)
        at 
org.apache.calcite.rel.externalize.RelWriterImpl.explain_(RelWriterImpl.java:116)
        at 
org.apache.calcite.rel.externalize.RelWriterImpl.done(RelWriterImpl.java:144)
        at 
org.apache.calcite.rel.AbstractRelNode.explain(AbstractRelNode.java:246)
        at org.apache.calcite.plan.RelOptUtil.toString(RelOptUtil.java:2308)
        at org.apache.calcite.plan.RelOptUtil.toString(RelOptUtil.java:2292)
        at 
org.apache.hadoop.hive.ql.optimizer.calcite.RuleEventLogger.ruleProductionSucceeded(RuleEventLogger.java:73)
        at 
org.apache.calcite.plan.MulticastRelOptListener.ruleProductionSucceeded(MulticastRelOptListener.java:68)
        at 
org.apache.calcite.plan.AbstractRelOptPlanner.notifyTransformation(AbstractRelOptPlanner.java:370)
        at 
org.apache.calcite.plan.hep.HepPlanner.applyTransformationResults(HepPlanner.java:702)
        at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:545)
        at 
org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:407)
        at 
org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:271)
        at 
org.apache.calcite.plan.hep.HepInstruction$RuleCollection.execute(HepInstruction.java:74)
        at 
org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:202)
        at 
org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:189)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.executeProgram(CalcitePlanner.java:2452)
        at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.executeProgram(CalcitePlanner.java:2411)

{noformat}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to