[ https://issues.apache.org/jira/browse/HIVE-26296?focusedWorklogId=779849&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-779849 ]
ASF GitHub Bot logged work on HIVE-26296: ----------------------------------------- Author: ASF GitHub Bot Created on: 09/Jun/22 10:09 Start Date: 09/Jun/22 10:09 Worklog Time Spent: 10m Work Description: zabetak closed pull request #3349: HIVE-26296: RuntimeException when executing EXPLAIN CBO JOINCOST on query with JDBC tables URL: https://github.com/apache/hive/pull/3349 Issue Time Tracking ------------------- Worklog Id: (was: 779849) Time Spent: 20m (was: 10m) > RuntimeException when executing EXPLAIN CBO JOINCOST on query with JDBC tables > ------------------------------------------------------------------------------ > > Key: HIVE-26296 > URL: https://issues.apache.org/jira/browse/HIVE-26296 > Project: Hive > Issue Type: Bug > Components: CBO, HiveServer2 > Reporter: Stamatis Zampetakis > Assignee: Stamatis Zampetakis > Priority: Major > Labels: pull-request-available > Time Spent: 20m > Remaining Estimate: 0h > > Consider a JDBC database with two tables _author_ and _book_. > {code:sql} > CREATE EXTERNAL TABLE author > ( > id int, > fname varchar(20), > lname varchar(20) > ) > STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' > TBLPROPERTIES ( > "hive.sql.database.type" = "MYSQL", > "hive.sql.jdbc.driver" = "com.mysql.jdbc.Driver", > ... > "hive.sql.table" = "author" > ); > CREATE EXTERNAL TABLE book > ( > id int, > title varchar(100), > author int > ) > STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' > TBLPROPERTIES ( > "hive.sql.database.type" = "MYSQL", > "hive.sql.jdbc.driver" = "com.mysql.jdbc.Driver", > ... > "hive.sql.table" = "book" > ); > {code} > Executing an {{EXPLAIN CBO JOINCOST}} with a query joining two JDBC tables > fails with {{RuntimeException}} while trying to compute the selectivity of > the join. > {code:sql} > EXPLAIN CBO JOINCOST > SELECT a.lname, b.title FROM author a JOIN book b ON a.id=b.author; > {code} > +Stacktrace+ > {noformat} > java.lang.RuntimeException: Unexpected Join type: > org.apache.calcite.adapter.jdbc.JdbcRules$JdbcJoin > at > org.apache.hadoop.hive.ql.optimizer.calcite.stats.HiveRelMdSelectivity.computeInnerJoinSelectivity(HiveRelMdSelectivity.java:156) > at > org.apache.hadoop.hive.ql.optimizer.calcite.stats.HiveRelMdSelectivity.getSelectivity(HiveRelMdSelectivity.java:68) > at GeneratedMetadataHandler_Selectivity.getSelectivity_$(Unknown Source) > at GeneratedMetadataHandler_Selectivity.getSelectivity(Unknown Source) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.getSelectivity(RelMetadataQuery.java:426) > at > org.apache.calcite.rel.metadata.RelMdUtil.getJoinRowCount(RelMdUtil.java:736) > at > org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:195) > at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source) > at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:212) > at > org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:140) > at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source) > at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:212) > at > org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:191) > at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source) > at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source) > at > org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:212) > at > org.apache.calcite.rel.externalize.RelWriterImpl.explain_(RelWriterImpl.java:100) > 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.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:648) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:12699) > at > org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:460) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:317) > at > org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:180) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:317) > at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:224) > at org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:106) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:495) > at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:447) > at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:412) > at org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:406) > 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:255) > at org.apache.hadoop.hive.cli.CliDriver.processCmd1(CliDriver.java:200) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:126) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:421) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:352) > {noformat} -- This message was sent by Atlassian Jira (v8.20.7#820007)