Skip to content

Add support for multi dimensional array parameters #141

@StephenFlavin

Description

@StephenFlavin

Given I have a multi dimensional array in java I would like to be able to insert this array into a column

Minimum replication code:

    public static void main(String[] args) throws SQLException {
        try (final var connection = DriverManager.getConnection("jdbc:duckdb:")) {
            int[][] i = {{1, 2}, {3}};
            var arrayOf = connection.createArrayOf("integer[]", i);

            var preparedStatement = connection.prepareStatement("select ?");

            preparedStatement.setObject(1, arrayOf);

            preparedStatement.execute();
        }
    }

result:

Exception in thread "main" java.sql.SQLException: Invalid Input Error: Unsupported parameter type
	at org.duckdb.DuckDBNative.duckdb_jdbc_execute(Native Method)
	at org.duckdb.DuckDBPreparedStatement.execute(DuckDBPreparedStatement.java:148)
	at org.duckdb.DuckDBPreparedStatement.execute(DuckDBPreparedStatement.java:127)

I also tried PreparedStatement#setArray(int, Array) but this gets an SQLFeatureNotSupportedException

DuckDB Version:

1.2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions