Skip to content

load_cdf errors out on starting-timestamp only request #3097

@sor-droneup

Description

@sor-droneup

Environment

Delta-rs version:
pyrhon-0.23.1

Binding:

Environment:

  • Cloud provider:
  • OS:
  • Other:

Bug

DeltaRS load_cdf starting_timestamp still requires a starting version values passed into the method.

What happened:

I'm running following code:

    timestamp = "2025-01-02T00:00:00Z"
    table = DeltaTable(path)
    cdf = table.load_cdf(starting_timestamp=timestamp).read_all()

This code errors out with following message:

self = DeltaTable(), starting_version = 0, ending_version = None
starting_timestamp = '2025-01-02T00:00:00Z', ending_timestamp = None
columns = None, allow_out_of_range = True

    def load_cdf(
        self,
        starting_version: int = 0,
        ending_version: Optional[int] = None,
        starting_timestamp: Optional[str] = None,
        ending_timestamp: Optional[str] = None,
        columns: Optional[List[str]] = None,
        allow_out_of_range: bool = False,
    ) -> pyarrow.RecordBatchReader:
>       return self._table.load_cdf(
            columns=columns,
            starting_version=starting_version,
            ending_version=ending_version,
            starting_timestamp=starting_timestamp,
            ending_timestamp=ending_timestamp,
            allow_out_of_range=allow_out_of_range,
        )
E       _internal.DeltaError: Invalid table version: 0

What you expected to happen:

The table should return the rows from given timestamp.

How to reproduce it:

More details:

My guess is that starting version is still being evaluated even if it was not passed into the method. It defaults to 0, so if the table being used is vaccumed (like in this example) and the 0 version is missing, the starting_timestamp only cdf errors out

Metadata

Metadata

Assignees

Labels

binding/rustIssues for the Rust cratebugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions