[
https://issues.apache.org/jira/browse/HIVE-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12695953#action_12695953
]
Raghotham Murthy commented on HIVE-385:
---------------------------------------
Couple comments:
You might want to return the actual plan from the Driver.compile() and use
exceptions to deal with errors. That will allow you later to accumulate plans
from several queries when you want to do mqo. Maybe for now, just create a
dummy QueryPlan class which contains only the sem object. Then you can use this
class to retrieve the actual plan.
Also, looks like you should initialize the session variables before compiling
the query since the queryid is used while writing out the plan for the query.
> Split Driver.run() into compile() + exec()
> ------------------------------------------
>
> Key: HIVE-385
> URL: https://issues.apache.org/jira/browse/HIVE-385
> Project: Hadoop Hive
> Issue Type: Improvement
> Components: Query Processor
> Reporter: Neil Conway
> Assignee: Neil Conway
> Attachments: hive_driver_compile.patch
>
>
> Currently, Driver.run() parses, analyzes, and then executes a given query
> string. This isn't very flexible: it would be nice to be able to parse and
> analyze a query to get a query plan, and then execute that query plan at a
> later time (zero or more times). This would also be a necessary prerequisite
> for supporting server-side prepared statements.
> I'd like to change Driver as follows:
> * Add a new method Driver.compile(String), which parses and analyzes the
> given query string, and returns an object representing the planned query
> * Add a new method Driver.execute(Plan), which runs the given planned query
> * Reimplement run(String) as { p = compile(String); execute(p); }
> Comments welcome; I should have a candidate patch ready soon.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.