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