This is an automated email from the ASF dual-hosted git repository.
lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git
The following commit(s) were added to refs/heads/main by this push:
new 2d159d32c fix(java/driver/flight-sql): use
FlightSqlClientWithCallOptions for prepared statement operations to ensure
CallOptions get set (#3586)
2d159d32c is described below
commit 2d159d32cb04ff95b9750f3f23da4370a3488fbf
Author: rnowacoski <[email protected]>
AuthorDate: Sat Oct 18 04:13:45 2025 -0700
fix(java/driver/flight-sql): use FlightSqlClientWithCallOptions for
prepared statement operations to ensure CallOptions get set (#3586)
Use FlightSqlClientWithCallOptions for prepared statement operations to
ensure CallOptions get set
Fixes #3582.
---
.../adbc/driver/flightsql/FlightSqlClientWithCallOptions.java | 8 ++++++++
.../apache/arrow/adbc/driver/flightsql/FlightSqlStatement.java | 6 +++---
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git
a/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlClientWithCallOptions.java
b/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlClientWithCallOptions.java
index 828b5001f..881013fc6 100644
---
a/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlClientWithCallOptions.java
+++
b/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlClientWithCallOptions.java
@@ -58,6 +58,10 @@ public class FlightSqlClientWithCallOptions implements
AutoCloseable {
return client.execute(query, transaction, combine(options));
}
+ public FlightInfo executePrepared(PreparedStatement statement, CallOption...
options) {
+ return statement.execute(combine(options));
+ }
+
public FlightInfo executeSubstrait(SubstraitPlan plan, CallOption...
options) {
return client.executeSubstrait(plan, combine(options));
}
@@ -94,6 +98,10 @@ public class FlightSqlClientWithCallOptions implements
AutoCloseable {
return client.executeUpdate(query, transaction, combine(options));
}
+ public long executePreparedUpdate(PreparedStatement statement, CallOption...
options) {
+ return statement.executeUpdate(combine(options));
+ }
+
public long executeSubstraitUpdate(SubstraitPlan plan, CallOption...
options) {
return client.executeSubstraitUpdate(plan, combine(options));
}
diff --git
a/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlStatement.java
b/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlStatement.java
index 6a00ca234..983c1927a 100644
---
a/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlStatement.java
+++
b/java/driver/flight-sql/src/main/java/org/apache/arrow/adbc/driver/flightsql/FlightSqlStatement.java
@@ -168,7 +168,7 @@ public class FlightSqlStatement implements AdbcStatement {
try {
try {
statement.setParameters(new NonOwningRoot(bindParams));
- statement.executeUpdate();
+ client.executePreparedUpdate(statement);
} finally {
statement.close();
}
@@ -218,7 +218,7 @@ public class FlightSqlStatement implements AdbcStatement {
throw AdbcException.invalidState("[Flight SQL] Must setSqlQuery() before
execute");
}
final String query = sqlQuery;
- return execute(FlightSqlClient.PreparedStatement::execute, (client) ->
client.execute(query));
+ return execute(client::executePrepared, (client) -> client.execute(query));
}
@Override
@@ -277,7 +277,7 @@ public class FlightSqlStatement implements AdbcStatement {
(preparedStatement) -> {
// XXX(ARROW-17199): why does this throw SQLException?
try {
- return preparedStatement.executeUpdate();
+ return client.executePreparedUpdate(preparedStatement);
} catch (FlightRuntimeException e) {
throw FlightSqlDriverUtil.fromFlightException(e);
}