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);
               }

Reply via email to