Skip to content

Restore is not rolling back schema changes #3352

@thomasfrederikhoeck

Description

@thomasfrederikhoeck

Environment

Delta-rs version: 0.25.4

Binding: pythom

Environment:

  • Cloud provider:
  • OS: widnows
  • Other:

Bug

What happened:
When restoring to a previous version schema changes are not rolled back.

What you expected to happen:
I excpet they are rolled back similar to PySpark:

Image

How to reproduce it:

from deltalake import DeltaTable, Field, Schema

import polars as pl

df = pl.DataFrame({"colA":[1,2,3]})
DeltaTable.create("delta-table",schema=Schema([Field("colA","integer")]))
dt =  DeltaTable("delta-table")

df.write_delta("delta-table", mode="append")
dt =  DeltaTable("delta-table")
print(dt.schema())
print(dt.version())
dt.alter.add_columns(Field("colB","integer"))
print(dt.schema())
print(dt.version())
dt.restore(0)
print(dt.schema())
dt.to_pandas()
print(dt.to_pandas())

gives:

Schema([Field(colA, PrimitiveType("integer"), nullable=True)])
1
Schema([Field(colA, PrimitiveType("integer"), nullable=True), Field(colB, PrimitiveType("integer"), nullable=True)])
2
Schema([Field(colA, PrimitiveType("integer"), nullable=True), Field(colB, PrimitiveType("integer"), nullable=True)])
Empty DataFrame
Columns: [colA, colB]
Index: []

More details:

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions