[
https://issues.apache.org/jira/browse/HIVE-21163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Teddy Choi reassigned HIVE-21163:
---------------------------------
Assignee: Teddy Choi
> ParseUtils.parseQueryAndGetSchema fails on views with global limit
> ------------------------------------------------------------------
>
> Key: HIVE-21163
> URL: https://issues.apache.org/jira/browse/HIVE-21163
> Project: Hive
> Issue Type: Bug
> Reporter: Eric Wohlstadter
> Assignee: Teddy Choi
> Priority: Major
>
> {code:java}
> hive> USE tpcds_bin_partitioned_orc_1000;
> hive> CREATE VIEW profit_view AS SELECT ss_net_profit, d_date FROM
> store_sales, date_dim WHERE d_date = ss_sold_date LIMIT 100;
> hive> SELECT get_splits("SELECT * from profit_view", 0);
> Error: java.io.IOException:
> org.apache.hadoop.hive.ql.parse.SemanticException: View profit_view is
> corresponding to HiveSortLimit#3447, rather than a HiveProject.
> (state=,code=0)
> {code}
> This works fine if the view doesn't have a global limit.
> It also works fine if you define a view without a global limit, and then
> apply a limit on top of the view.
> {{Calcite.genLogicalPlan}} is expecting a {{HiveProject}} root but when going
> through {{ParseUtils.parseQueryAndGetSchema}} the {{HiveSortLimit}} appears
> at the root. Perhaps it is simply missing a step to wrap the limit with a
> projection?
> {code}
> Caused by: org.apache.hadoop.hive.ql.parse.SemanticException: View
> profit_view is corresponding to HiveSortLimit#2275, rather than a HiveProject.
> at
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.genLogicalPlan(CalcitePlanner.java:4931)
> at
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1741)
> at
> org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:1689)
> at org.apache.calcite.tools.Frameworks$1.apply(Frameworks.java:118)
> at
> org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:1043)
> at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:154)
> at org.apache.calcite.tools.Frameworks.withPlanner(Frameworks.java:111)
> at
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.logicalPlan(CalcitePlanner.java:1448)
> at
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.genLogicalPlan(CalcitePlanner.java:395)
> at
> org.apache.hadoop.hive.ql.parse.ParseUtils.parseQueryAndGetSchema(ParseUtils.java:561)
> at
> org.apache.hadoop.hive.ql.udf.generic.GenericUDTFGetSplits.createPlanFragment(GenericUDTFGetSplits.java:254)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)