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)