Skip to content

Add Python 3.15 wheel support and resolve SPARRAY tests on zLinux/s390x - #1074

Open
Earammak wants to merge 4 commits into
ibmdb:masterfrom
Earammak:python315wheelsupport
Open

Earammak wants to merge 4 commits into
ibmdb:masterfrom
Earammak:python315wheelsupport

Conversation

@Earammak

Copy link
Copy Markdown
Collaborator

This PR introduces Python 3.15 wheel support and fixes an issue with SPARRAY stored procedure array handling on zLinux/s390x platforms.

Signed-off-by: Earamma K <ek@rocketsoftware.com>
@Earammak Earammak linked an issue Sep 10, 2026 that may be closed by this pull request
Signed-off-by: Earamma K <ek@rocketsoftware.com>
@Earammak
Earammak requested a review from bimalkjha September 11, 2026 11:23
@bimalkjha

Copy link
Copy Markdown
Member

@Earammak The cardinatility related change in ibm_db.c file means cardinality can now only grow, never shrink to match what the driver actually reported. If a driver legitimately returns fewer elements than the bound array size (e.g., an OUT array param populated with 3 of 10 slots), the old code shrunk to 3; the new code keeps 10. Combined with the later fallback. this can build a Python list sized to the original bound cardinality even when actual_cardinality is legitimately 0, potentially exposing uninitialized/stale buffer contents rather than an empty/None result. This may well be intentional to work around the previous under-read on big-endian systems, but since item 5 already fixes the underlying 16-bit truncation bug, it's worth confirming whether this "never shrink" guard is still needed post-fix, or if it's now masking a separate legitimate shrink case. Please add a code comment explaining the rationale, and ideally a targeted test for a shrinking-array OUT/INOUT scenario.

The trigger condition in the output-building block changed from && to ||:
This looks like a deliberate fix to also treat INOUT params bound with a Python list as arrays even when cardinality reports 1. Reasonable, but it increases the number of code paths feeding into the same len fallback logic in item 7 — please make sure there's test coverage for: cardinality==1 with list-valued var_pyvalue, and the len<=0 fallback path specifically.

Thanks.

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.

Python 3.15 support

2 participants