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

Prafulla T commented on HIVE-6992:
----------------------------------

I have some thoughts about how PraparedStatement.getMetadata can be 
implemented. 
Let me know your comments and I can go ahead and implement this functionality.

h4. Here is my proposal.
h5. On server-side:
Add couple of parameters TExecuteStatementReq  thrift  
* A bool variable prepareOnly indicate this is “prepare only” request. 
* An operation handle to indicate existing operation on server    .

Add couple of parameters to HiveSession.executeStatement and 
executeStatementAsy - operationHandle and prepareOnly.

In HiveSessionImpl.executeStatementInternal method, 
f prepareOnly flag is set and Create operation and invoke “prepare” method 
instead of run.
If ExecuteStatementReq has valid operationHandle ( non-null ), then use that 
operation instead of creating new operation.
If prepareOnly flag is not set, Invoke run method on corresponding Operation.
Return error if Operation(if given) is not in valid state. 

h5. On Client side:
In PreparedStatement.getMetadata, Check if cached schema is available, if yes 
return that.
Otherwise, send ExecuteStatementReq with prepareOnly flag and read schema using 
getSchema method.
When this returns, Save operationHandle locally and use it for sending when 
user actually invokes PrepareMethod.execute* methods.







> Implement PreparedStatement.getMetaData(), getParmeterMetaData()
> ----------------------------------------------------------------
>
>                 Key: HIVE-6992
>                 URL: https://issues.apache.org/jira/browse/HIVE-6992
>             Project: Hive
>          Issue Type: Bug
>          Components: JDBC
>            Reporter: Bill Oliver
>
> It would be very helpful to have methods PreparedStatement.getMetaData() and 
> also PreparedStatement.getParameterMetaData() implemented.
> I especially would like PreparedStatmeent.getMetaData() implemented, as I 
> could prepare a SQL statement, and then get information about the result set, 
> as well as information that the query is valid.
> I am pretty sure this information is available in some form. When you do an 
> "EXPLAIN query", the explain operation shows information about the result set 
> including the column name/aliases and the column types.
> thanks you
> -bill



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to