Skip to content

Build the dictionary test's indices with a 64 bit arange - #705

Merged
evertlammerts merged 1 commit into
duckdb:v2.0-cyanopterafrom
evertlammerts:fix-dictionary-test-int32
Oct 20, 2026
Merged

evertlammerts merged 1 commit into
duckdb:v2.0-cyanopterafrom
evertlammerts:fix-dictionary-test-int32

Conversation

@evertlammerts

Copy link
Copy Markdown
Member

Fixes the cp311 Windows wheel job of the Release workflow, which fails every run since #700 in test_a_dictionary_is_decoded_once_per_large_batch before any DuckDB code runs:

pyarrow.lib.ArrowIndexError: Index -1074 out of bounds

The test builds its dictionary indices as np.arange(2_000_000) * 1_000_000 // 2_000_000. On Windows with numpy below 2, np.arange defaults to int32 (the C long), so the product overflows and about half the indices come out negative. The cp311 job is the only Windows job that installs numpy below 2 (the tensorflow pin), which is why neither the PR workflow nor the other wheel jobs saw it. An int32 simulation gives the same minimum of -1074.

The arange now carries dtype=np.int64. Same class as #696; the other np.arange calls in the tests are small, float, or typed.

@evertlammerts
evertlammerts merged commit 83c7199 into duckdb:v2.0-cyanoptera Oct 20, 2026
2 of 12 checks passed
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