[ 
https://issues.apache.org/jira/browse/HIVE-28264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Krisztian Kasa reassigned HIVE-28264:
-------------------------------------

    Assignee: Krisztian Kasa  (was: Stamatis Zampetakis)

> 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: Krisztian Kasa
>            Priority: Major
>              Labels: pull-request-available
>
> {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