Avatar for the Eventual-Inc user
Eventual-Inc
Daft
BlogDocsChangelog

Performance History

Latest Results

fix(lance): narrow merge target URI
FANNG1:feat/daft-lance-0.5-integration
50 minutes ago
fix: eliminate TOCTOU race in CREATE TABLE IF NOT EXISTS (#7387) ## Changes Made | File | Change | |---|---| | `src/daft-catalog/src/impls/memory.rs` | Check-then-insert is now atomic under a single write lock | | `src/daft-sql/src/exec.rs` | Creates first; treats "already exists" as success when `IF NOT EXISTS` is set | | `daft/catalog/__init__.py` | Same create-first pattern; falls back to `get_table` on `ValueError` | | `tests/catalog/test_catalog.py` | Covers idempotency and concurrent creation | - `CREATE TABLE IF NOT EXISTS` had a TOCTOU race: both the SQL executor and the Python API checked `has_table` before creating, so two concurrent callers could both pass the check and the loser failed with "already exists". Both paths now create first and catch that error instead. - The root cause sat in `MemoryCatalog::create_table`: the read-lock check and the write-lock insert were two separate steps, so the second concurrent creator silently overwrote the first. They are now one atomic step under a single write lock. - One subtlety: the table is built *before* taking the lock, because `MemoryTable::new` can call back into the Python runner and release the GIL — holding the lock across that callback would deadlock with a concurrent creator. - Error detection is dual-path: typed `CatalogError::ObjectAlreadyExists` for Rust catalogs, and the "already exists" message for Python-backed catalogs where the error is wrapped. Same idea as Spark's `CreateTableExec`. ## Related Issues Closes #7310
main
3 hours ago
test(lance): verify writes with native Lance
FANNG1:feat/daft-lance-0.5-integration
4 hours ago
Merge branch 'main' into issue-2423
Lucas61000:issue-2423
4 hours ago
Merge branch 'main' into issue-7310
Lucas61000:issue-7310
4 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
feat(lance): add lance namespace and insert overwrites mode for write lance#7518
1 hour ago
851df4c
FANNG1:feat/daft-lance-0.5-integration
CodSpeed Performance Gauge
0%
3 hours ago
1c4abd2
Jorge-Polanco-Roque:fix/daf-func-signature-validation
CodSpeed Performance Gauge
0%
5 hours ago
c698733
Lucas61000:issue-2423
© 2026 CodSpeed Technology
Home Terms Privacy Docs