You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DataFusion PR apache/datafusion#22026 has merged reader-level Parquet virtual-column plumbing, including support for the Arrow/parquet RowNumber virtual column via TableSchema / ParquetOpener. This is the upstream mechanism DuckLake should eventually use for physical row positions.
Update (target release):apache/datafusion#22026 did not ship in DataFusion 54.0.0 — it landed after the 54 release branch was cut. It is now slated for DataFusion 55.0.0 (~Jun/Jul 2026), where it is tracked in the 55.0.0 release issue apache/datafusion#22393. This work is blocked until 55.0.0 is published to crates.io. (Latest published datafusion is 54.0.0, released 2026-06-08, which does not include it.)
The local correctness fix synthesizes __ducklake_row_pos above a constrained Parquet scan using row-group-aligned partitions and disables unsafe reader pushdowns on positional paths.
That local approach is correct, but it gives up some Parquet pruning/reordering optimizations for rowid / positional-delete paths.
DataFusion PR apache/datafusion#22026 has merged reader-level Parquet virtual-column plumbing, including support for the Arrow/parquet
RowNumbervirtual column viaTableSchema/ParquetOpener. This is the upstream mechanism DuckLake should eventually use for physical row positions.Current state:
__ducklake_row_posabove a constrained Parquet scan using row-group-aligned partitions and disables unsafe reader pushdowns on positional paths.Desired future state:
rowid = row_id_start + physical_row_position.Why this matters:
References:
55.0.0(Jul / Aug 2026) apache/datafusion#22393: DataFusion 55.0.0 release tracking issuefile_row_indexUDF to query file-level row indexes from Parquet files apache/datafusion#22604: user-facingfile_row_index()UDF work, separate from the lower-level APIAcceptance criteria:
FileRowNumberExecon positional paths with the Parquet virtualRowNumbercolumn when available.COUNT(*)passing.