From 7ab83a407c61d02ee9f82893568bd2a6b0a1f259 Mon Sep 17 00:00:00 2001 From: Yoann Kehler Date: Wed, 8 Jan 2025 15:19:28 +0100 Subject: [PATCH] Redirect prepareStatment --- src/main/java/org/duckdb/DuckDBConnection.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/duckdb/DuckDBConnection.java b/src/main/java/org/duckdb/DuckDBConnection.java index 798c72920..a93df5b4b 100644 --- a/src/main/java/org/duckdb/DuckDBConnection.java +++ b/src/main/java/org/duckdb/DuckDBConnection.java @@ -27,6 +27,8 @@ import org.duckdb.user.DuckDBUserArray; import org.duckdb.user.DuckDBUserStruct; +import static java.sql.Statement.NO_GENERATED_KEYS; + public final class DuckDBConnection implements java.sql.Connection { /** Name of the DuckDB default schema. */ @@ -294,11 +296,19 @@ public CallableStatement prepareCall(String sql, int resultSetType, int resultSe } public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { - throw new SQLFeatureNotSupportedException("prepareStatement"); + if (autoGeneratedKeys == NO_GENERATED_KEYS) { + return prepareStatement(sql); + } else { + return prepareStatement(sql, (String[]) null); + } } public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { - throw new SQLFeatureNotSupportedException("prepareStatement"); + if (columnIndexes != null && columnIndexes.length == 0) { + return prepareStatement(sql); + } else { + throw new SQLFeatureNotSupportedException("prepareStatement: returning autogenerated keys is not supported"); + } } public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {