You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Mikhail Pochatkin (Jira)" <ji...@apache.org> on 2022/05/30 16:13:00 UTC

[jira] [Updated] (IGNITE-17055) Ignite JDBC Driver don't support contract

     [ 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)