hadoop-hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bill Graham (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HIVE-862) CommandProcessor should return DriverResponse
Date Thu, 01 Oct 2009 23:54:23 GMT

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

Bill Graham commented on HIVE-862:
----------------------------------

I'll take this JIRA. To recap what was discussed on the list and what Edward and I discussed
off-line, here's the proposed approach. Please comment if you think I should proceed differently:

1. We make a non-backward compatible change to the {{CommandProcessor}} interface, changing
it's sole method from this:

{noformat}
  public int run(String command);
{noformat}

to this:

{noformat}
  public CommandProcessorResponse run(String command);
{noformat}

2. We create a new {{CommandProcessorResponse}} class that looks like the current {{Driver.DriverResponse}}
class. It's a pojo with the following fields:
- int responseCode
- String errorMessage
- String SQLState

Note: my rational for removing {{DriverResponse}} in lieu of {{CommandProcessorResponse}}
is to bind the response class name more closely with the common interface that uses it (i.e.,
{{CommandProcessor}}). If we instead used {{DriverResponse}} that would make sense for the
{{Driver}} class, but not so much for the command processors.

3. {{Driver.DriverResponse}} will be removed, and {{Driver.run(command)}} will return an instance
of {{CommandProcessorResponse}} instead. The {{runCommand}} method will be removed and {{HiveServer}}
usage will be refactored to use {{Driver.run}}.

4. The 5 {{CommandProcessors}} that implement the {{run}} method will change to return a {{CommandProcessorResponse}}
object. Callers of these classes will change to get the response status from the the {{CommandProcessorResponse}}
object.



> CommandProcessor should return DriverResponse
> ---------------------------------------------
>
>                 Key: HIVE-862
>                 URL: https://issues.apache.org/jira/browse/HIVE-862
>             Project: Hadoop Hive
>          Issue Type: New Feature
>          Components: Query Processor
>            Reporter: Edward Capriolo
>            Assignee: Bill Graham
>
> Since Driver now returns DriverResponse CommandProcessor should return a similar object.
> {noformat}
> For reference here is how i want to use this:
> Currently:
> HWISessionItem.java
> private List<Integer> queryRet;
> private List<String>  queries;
> public void runQuery() {
>   //for each query in queries
>    if (instanceof driver) {
>       //other stuff here
>      queryRet.add( qp.run(cmd) );
>    } else {
>       queryRet.add(proc.run(cmd_1)  );
>    }
> }
> So I would like to refactor and use DriverResponse.
> private List<DriverResponse> queryRet;
> private List<String>  queries;
> public void runQuery() {
>   //for each query in queries
>    
>    if (instanceof driver) {
>       //other stuff here
>      queryRet.add( qp.run(cmd) );  //<--- this is fine
>    } else {
>       queryRet.add(proc.run(cmd_1)  ); <--this returns an int.
>    }
> }
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message