Phase 3's "Schema evolution" line in the README maps to three upstream Dataset methods that don't have C/C++ bindings yet:
lance_dataset_drop_columns — metadata-only column removal
lance_dataset_alter_columns — rename / nullability / type change
lance_dataset_add_columns — SQL expressions, AllNulls(schema), or ArrowArrayStream (the upstream BatchUDF variant takes a Rust closure and can't cross the C ABI; the Reader variant covers the same compute-from-existing-data use case)
Splitting into three PRs since each has its own argument shape and error surface — same pattern as how _delete (#31), _update (#33), and _merge_insert (#39) landed separately.
The README roadmap entry stays unticked until all three ship.
Phase 3's "Schema evolution" line in the README maps to three upstream
Datasetmethods that don't have C/C++ bindings yet:lance_dataset_drop_columns— metadata-only column removallance_dataset_alter_columns— rename / nullability / type changelance_dataset_add_columns— SQL expressions, AllNulls(schema), or ArrowArrayStream (the upstreamBatchUDFvariant takes a Rust closure and can't cross the C ABI; theReadervariant covers the same compute-from-existing-data use case)Splitting into three PRs since each has its own argument shape and error surface — same pattern as how
_delete(#31),_update(#33), and_merge_insert(#39) landed separately.The README roadmap entry stays unticked until all three ship.