Skip to content

Hold DuckDB below 2 and pandas below 3.1 - #47

Merged
Manushpm8 merged 3 commits into
run-models-in-processfrom
hold-duckdb-below-2
Oct 22, 2026
Merged

Manushpm8 merged 3 commits into
run-models-in-processfrom
hold-duckdb-below-2

Conversation

@Manushpm8

@Manushpm8 Manushpm8 commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Two upstream releases came out in the last day, and each one breaks a required check. Neither is caused by #41, and both break main too. This PR caps both, so this client keeps shipping against the versions it's tested on. Lifting either cap is a separate change.

DuckDB 2.0.0 (released yesterday)

  • The duckdb extra had no upper bound.
  • 2.0 warns on an Arrow fetch from a DB-API cursor (cursor.to_arrow_table()). The relational engine does that for every DuckDB table and sample it reads.
  • The engine suite runs with warnings as errors, so engine fails.
  • Fix: duckdb>=1.5.0,<2 in structured-data-models-connectors. DuckDB 2.0 support is going into the Rust package instead.

pandas 3.1.0 (released this morning)

  • pd.Timestamp.min - pd.DateOffset(0) now raises OutOfBoundsDatetime. That's the anchor time the engine derives for every graph without a time column (rfm.py:2259), so relational requests over a static graph fail. This is the 24 client tests that run in the engine job.
  • A frame built around an integer past the float range is now held as an object, where 3.0 refused it. _wire_frame relied on that refusal (test_a_number_too_large_to_hold_is_not_a_description).
  • Fix: pandas<3.1 in the client and the engine, the two packages whose code breaks.

uv.lock changes only in the matching requires-dist specifiers. The locked versions were already DuckDB 1.5.6 and pandas 3.0.6.

Verified locally: the CI test suite failed 1 test under pandas 3.1.0, and with the cap it resolves 3.0.6 and passes, 2218 passed and 0 failed. Hygiene, ruff check and ruff format --check pass. Both pandas behaviours were reproduced directly on 3.0.6 and 3.1.0.

🤖 Generated with Claude Code

duckdb 2.0.0 was published today and the extra was unbounded, so every CI
run since picks it up. 2.0 warns on an Arrow fetch from a DB-API cursor,
which the relational engine makes for every DuckDB table and sample it
reads, and the engine suite runs warnings as errors, so the required
`engine` check fails on main and on every open pull request.

The extra is held below 2, and this repository ships against the 1.5 it is
tested on. Lifting the bound is its own change, moving those reads off the
cursor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Manush Murali <manushm@nvidia.com>
adi-kumo
adi-kumo previously approved these changes Oct 22, 2026
…-duckdb-below-2

Signed-off-by: Manush Murali <manushm@nvidia.com>

# Conflicts:
#	CHANGELOG.md
@Manushpm8
Manushpm8 changed the base branch from main to run-models-in-process October 22, 2026 16:16
pandas 3.1.0 was published this morning, and neither the client nor the
engine bounded it, so CI picked it up within hours.

3.1 raises taking a `DateOffset` from `Timestamp.min`, which is the anchor
time the engine derives for every graph without a time column, so every
relational request over a static graph fails with OutOfBoundsDatetime: 24
client tests that run with an engine present. 3.1 also builds a frame
around an integer past the float range where 3.0 refused one, and a
request's description relies on that refusal to leave out the table
carrying it.

Both are held below 3.1, as DuckDB is below 2, and this ships against the
3.0 it is tested on. Lifting it is its own change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Manush Murali <manushm@nvidia.com>
@Manushpm8 Manushpm8 changed the title Hold DuckDB below 2 Hold DuckDB below 2 and pandas below 3.1 Oct 22, 2026
@Manushpm8
Manushpm8 merged commit eaf7635 into run-models-in-process Oct 22, 2026
17 checks passed
@Manushpm8
Manushpm8 deleted the hold-duckdb-below-2 branch October 22, 2026 16:46
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.

2 participants