Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-28054

SemanticException for join condition in subquery

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.0.0-beta-1
    • 4.0.0
    • Hive

    Description

      Running the following query:

      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; 

      or:

      explain cbo select id,
        (select count(*) from t1 join t2 using (id))
        from t2
      order by id; 

      throws:

       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) 

      Workaround:

      explain cbo select id,
        (select count(*) from t1 join t2 where t1.id=t2.id)
        from t2
      order by id; 

      Attachments

        Issue Links

          Activity

            People

              soumyakanti.das Soumyakanti Das
              soumyakanti.das Soumyakanti Das
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: