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 {