Skip to content

Fix: support Python list parameters for SQL ARRAY type binding#94

Open
HenryNebula wants to merge 1 commit intodevfrom
triage/93-array-types
Open

Fix: support Python list parameters for SQL ARRAY type binding#94
HenryNebula wants to merge 1 commit intodevfrom
triage/93-array-types

Conversation

@HenryNebula
Copy link
Copy Markdown
Owner

Summary

Fixes #93: Support Python list parameters for SQL ARRAY type binding

Previously, passing a Python list as a parameter raised NotSupportedError. Now, list parameters are automatically converted to java.sql.Array objects and bound via PreparedStatement.setArray().

Changes

  • Modified _set_stmt_parms_fallback in __init__.py to detect list parameters and convert them to java.sql.Array via Connection.createArrayOf("VARCHAR", ...)
  • Updated MockDriver to capture setArray() calls and mock createArrayOf()
  • Added 4 mock tests for array parameter binding (string lists, empty lists, None elements, int lists)
  • Added 2 HSQLDB integration tests verifying INSERT with array parameters works correctly

Test plan

  • Added mock test cases for array parameter binding
  • Added HSQLDB integration tests verifying INSERT with array parameters
  • Verified fix passes with CLASSPATH="test/jars/*:test/mock-jars/*" uv run python -m unittest test.test_mock
  • Verified fix passes with CLASSPATH="test/jars/*" uv run python -m unittest test.test_integration.HsqldbTest

Closes #93

Generated with Claude Code

@HenryNebula HenryNebula mentioned this pull request Apr 28, 2026
…93)

Convert Python list parameters to java.sql.Array objects via
Connection.createArrayOf() and bind them using PreparedStatement.setArray()
in the fallback parameter binding path. This enables inserting ARRAY types
via execute() and executemany().

Closes #93

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@HenryNebula HenryNebula force-pushed the triage/93-array-types branch from 6885504 to 24099d1 Compare April 28, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant