chore(registry): track ibis-sqlite NaT memtable-binding bug (IB-DT-19) - #302
Merged
discreteds merged 1 commit intoAug 19, 2026
Merged
Conversation
_register_in_memory_table stages sqlite memtables via a pandas roundtrip (op.data.to_frame()); null date32/timestamp values become pandas NaT, which sqlite3 cannot bind. Crashes create_table/insert for any frame with a null temporal value. Discovered downstream in mountainash-data (DEBT-13). status: needs_filing, zero-ref-OK per the join contract — no upstream ibis issue exists yet.
discreteds
added a commit
that referenced
this pull request
Aug 19, 2026
…303) (#304) PR #302 (adding this entry) and PR #303 (shipping the fix) merged in the opposite order (303 landed first), leaving our_workaround: none stale on develop even though ensure_sqlite_nat_adapter() already shipped in the same history. Update our_workaround to fallback_impl and document the shim, its call sites, the rejected alternatives, and the xfail(strict=True) upstream-fix monitor that will flag when ibis fixes this natively. Verified: scripts/validate_upstream_registry.py passes (127 entries, 0 errors); tests/core/test_upstream_registry_join.py and tests/scripts/test_validate_upstream_registry.py pass (25 passed).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Registers a new
needs_filingentry (IB-DT-19) inregistry/upstream-issues.yamlfor an ibis-sqlite bug discovered downstream while investigating mountainash-data DEBT-13 (a.backlog/2026-08-18-sqlite-null-temporal-binding.mdin mountainash-central).ibis.backends.sqlite.Backend._register_in_memory_tablestages memtables viaop.data.to_frame()— a pandas roundtrip. A nulldate32/timestampvalue becomes pandasNaT, whichsqlite3cannot bind. Crashescreate_table/insertfor any frame containing a null temporal value.Verified empirically 2026-08-18 against ibis 12.0.0:
pyarrow.Tablesources are incidentally safe for date columns only (PyArrow'sTable.to_pandas()defaultsdate_as_object=True), not for timestamp columns.DataFramesources crash for both date and timestamp columns.No existing upstream ibis issue covers this (checked #8302, #9669, #1159 — all unrelated).
status: needs_filing, zero-ref-OK per the registry's join contract (no code-sideCapabilityFact/DivergenceFactyet — this wasn't found via mountainash's own cross-backend probe suite).Note: the natural next id (
IB-DT-10) collided with an existingDivergenceFactid incore/capabilities/divergences.py(unrelated topic — datetime offset engine-leniency), caught bytest_no_divergence_id_collides_with_an_unrelated_yaml_entry. Used the next free id in both namespaces,IB-DT-19.Verification
hatch run test:python scripts/validate_upstream_registry.py— Validation PASSED, 127 entries, 0 errorshatch run test:pytest tests/core/test_upstream_registry_join.py— 5 passedNo code changes, no fix implemented yet — this is registry tracking only, per decision to hold off filing the public ibis-project issue.