[ 
https://issues.apache.org/jira/browse/HIVE-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12695661#action_12695661
 ] 

Neil Conway commented on HIVE-385:
----------------------------------

In looking into this, the first problem appears to be that the driver only has 
a single Context, but we might have more than one planned query active at the 
same time -- since they'd be using the same context, planning one query will 
interfere with the state used by another already-planned query (e.g. the 
query's scratch dir).

One way to solve this is to give each planned query it's own Context. Does that 
sound reasonable?

> 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
>
> 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.

Reply via email to