Eventual-Inc
Daft
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
Merge branch 'main' into feature/iceberg-cdc-cow
kyo-tom:feature/iceberg-cdc-cow
3 hours ago
initial pass at data frame source unfolding Co-authored-by: Cursor <cursoragent@cursor.com>
ktanishqk:ktanishqk/dataframe-source-unfold
5 hours ago
fix: recover non-ValueError already-exists errors in create_table_if_not_exists pyiceberg raises TableAlreadyExistsError, a bare Exception subclass (not ValueError), on table conflicts. The previous except ValueError missed it, so create_table_if_not_exists on a pyiceberg-backed catalog still failed with an "already exists" error instead of returning the existing table. Broaden the catch to Exception while keeping the "already exists" message filter, so unrelated failures (connection, permission, etc.) still propagate unchanged. Adds a regression test for the bare Exception conflict case.
Lucas61000:issue-7310
6 hours ago
fix: don't swallow unrelated create failures in create_table_if_not_exists create_table_if_not_exists caught every ValueError from create_table and treated it as "table already exists", which could mask unrelated creation failures (e.g. connection or permission errors raised by Python-backed catalogs like Postgres) behind a misleading not-found error or a false success. Only recover from errors whose message contains "already exists"; other failures propagate unchanged. Adds a regression test.
Lucas61000:issue-7310
7 hours ago
fix: eliminate TOCTOU race in CREATE TABLE IF NOT EXISTS Fix three TOCTOU (time-of-check-time-of-use) windows where concurrent callers of CREATE TABLE IF NOT EXISTS could see 'already exists' errors: 1. MemoryCatalog::create_table (memory.rs): replace separate read-lock check + write-lock insert with a single write lock for the entire check-then-insert, so two concurrent creators cannot both pass the existence check. The table is built before taking the lock because MemoryTable::new registers the partition set with the (Python) runner and can release the GIL; holding the lock across that callback can deadlock with a concurrent creator. 2. SQL executor (exec.rs): try create_table first, catch CatalogError::ObjectAlreadyExists when IF NOT EXISTS is set. Also handles Python-backed catalogs where the error wraps as CatalogError::PythonError. 3. Python Catalog API (__init__.py): try create_table first, catch ValueError (DaftCoreException) and return the existing table. References Spark's CreateTableExec which catches TableAlreadyExistsException after create for the same reason. Closes #7310
Lucas61000:issue-7310
9 hours ago
fix: simplify actor UDF repartition handling
everettVT/fix-main-failures
18 hours ago
Merge branch 'Eventual-Inc:main' into main
ARDA7787:main
19 hours ago
fix(udf): preserve field names when unnesting with_column
dubin555:contrib/issue-5448
22 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
feat(io): add Iceberg COW changelog reads
#7356
3 hours ago
c8ce81d
kyo-tom:feature/iceberg-cdc-cow
CodSpeed Performance Gauge
0%
feat(io): support DataSources that wrap DataFrame templates
#7388
6 hours ago
8ab7e55
ktanishqk:ktanishqk/dataframe-source-unfold
CodSpeed Performance Gauge
0%
fix: eliminate TOCTOU race in CREATE TABLE IF NOT EXISTS
#7387
6 hours ago
f35ed6c
Lucas61000:issue-7310
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs