[ 
https://issues.apache.org/jira/browse/IGNITE-17055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mikhail Pochatkin updated IGNITE-17055:
---------------------------------------
    Description: 
Currently in org.apache.ignite.internal.jdbc.JdbcStatement#execute0 exist async 
call to org.apache.ignite.internal.jdbc.proto.JdbcQueryEventHandler

 
{code:java}
protected void execute0(JdbcStatementType stmtType, String sql, List<Object> 
args) throws SQLException {
    ...
    
    res = conn.handler().queryAsync(req).join();
   
    ...
} {code}
Main problem with this part of code is that in case when the handler cannot 
parse SQL qeury will throw java.util.concurrent.CompletionException: class 
org.apache.ignite.client.IgniteClientException: Failed to parse query without 
any catching. This is doesn't match with Jdbc contract in the section of 
possible exeptions and looks like unpredictable behavior.

 

  was:
Currently in org.apache.ignite.internal.jdbc.JdbcStatement#execute0 exist async 
call to org.apache.ignite.internal.jdbc.proto.JdbcQueryEventHandler

 
{code:java}
protected void execute0(JdbcStatementType stmtType, String sql, List<Object> 
args) throws SQLException {
    ...
    
    res = conn.handler().queryAsync(req).join();
   
    ...
} {code}
Main problem with this part of code is that in case when the handler cannot 
correct execute request it will throw IgniteClientException wrapped into 
java.util.concurrent.CompletionException without any catching. This is doesn't 
match with Jdbc contract in the section of possible exeptions and looks like 
unpredictable behavior.

 


> Ignite JDBC Driver don't support contract 
> ------------------------------------------
>
>                 Key: IGNITE-17055
>                 URL: https://issues.apache.org/jira/browse/IGNITE-17055
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mikhail Pochatkin
>            Assignee: Mikhail Pochatkin
>            Priority: Major
>              Labels: ignite-3, jdbc
>
> Currently in org.apache.ignite.internal.jdbc.JdbcStatement#execute0 exist 
> async call to org.apache.ignite.internal.jdbc.proto.JdbcQueryEventHandler
>  
> {code:java}
> protected void execute0(JdbcStatementType stmtType, String sql, List<Object> 
> args) throws SQLException {
>     ...
>     
>     res = conn.handler().queryAsync(req).join();
>    
>     ...
> } {code}
> Main problem with this part of code is that in case when the handler cannot 
> parse SQL qeury will throw java.util.concurrent.CompletionException: class 
> org.apache.ignite.client.IgniteClientException: Failed to parse query without 
> any catching. This is doesn't match with Jdbc contract in the section of 
> possible exeptions and looks like unpredictable behavior.
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to