Soumyakanti Das created HIVE-28054:
--------------------------------------

             Summary: SemanticException for join condition in subquery
                 Key: HIVE-28054
                 URL: https://issues.apache.org/jira/browse/HIVE-28054
             Project: Hive
          Issue Type: Bug
          Components: Hive
            Reporter: Soumyakanti Das
            Assignee: Soumyakanti Das


Running the following query:
{code:java}
create table t1 (id int);
create table t2 (id int);

explain cbo select id,
  (select count(*) from t1 join t2 on t1.id=t2.id)
  from t2
order by id; {code}
or:
{code:java}
explain cbo select id,
  (select count(*) from t1 join t2 using (id))
  from t2
order by id; {code}
throws:
{code:java}
 org.apache.hadoop.hive.ql.optimizer.calcite.CalciteSubquerySemanticException: 
Could not resolve column name
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genSubQueryRelNode(CalcitePlanner.java:3346)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.internalGenSelectLogicalPlan(CalcitePlanner.java:4580)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genSelectLogicalPlan(CalcitePlanner.java:4405)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genLogicalPlan(CalcitePlanner.java:5074)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1625)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1569)
    at 
org.apache.calcite.tools.Frameworks.lambda$withPlanner$0(Frameworks.java:131)
    at 
org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:914)
    at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:180)
    at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:126)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1321)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:570)
    at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13113)
    at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:465)
    at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:327)
    at 
org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:180)
    at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:327)
    at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224)
    at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:107)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:519)
    at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:471)
    at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:436)
    at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:430)
    at 
org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:121)
    at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:227)
    at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:257)
    at org.apache.hadoop.hive.cli.CliDriver.processCmd1(CliDriver.java:201)
    at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:127)
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:425)
    at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:356)
    at 
org.apache.hadoop.hive.ql.QTestUtil.executeClientInternal(QTestUtil.java:733)
    at org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:703)
    at 
org.apache.hadoop.hive.cli.control.CoreCliDriver.runTest(CoreCliDriver.java:115)
    at 
org.apache.hadoop.hive.cli.control.CliAdapter.runTest(CliAdapter.java:157)
    at 
org.apache.hadoop.hive.cli.TestMiniLlapLocalCliDriver.testCliDriver(TestMiniLlapLocalCliDriver.java:62)
 {code}

Workaround:
{code:java}
explain cbo select id,
  (select count(*) from t1 join t2 where t1.id=t2.id)
  from t2
order by id; {code}



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

Reply via email to