-
Notifications
You must be signed in to change notification settings - Fork 416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checkpoint does not preserve reader and writer features for the table protocol. #2288
Labels
bug
Something isn't working
Comments
I'll take a look this weekend |
Here is some stripped down code to reproduce the issue I saw.
Error: Transaction { source: WriterFeaturesRequired(AppendOnly) }
|
For this bug to be reproduced you need to have a batch with a TIMESTAMPNTZ type. |
ion-elgreco
added a commit
that referenced
this issue
Mar 18, 2024
# Description The CheckPoint schema simply didn't contain the features as fields in the Protocol struct, and we weren't propagating them as well within the checkpoint function. - closes #2288
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Environment
Delta-rs version:
0.17.1
Binding:
Rust
Environment:
Bug
Taking a checkpoint does not preserve read and writer features for the table protocol.
What happened:
I was writing RecordBatches to a delta table using rust APIs with append only mode. The writes stop working after I take a checkpoint though. After creating a checkpoint and attempting to write a new batch I see the following error.
DeltatableError: Transaction failed: Writer features must be specified for writerversion >= 7, please specify: AppendOnly
What you expected to happen:
I expect the write after a checkpoint to succeed and the checkpoint retain readerFeatures and writerFeatures for the table protocol.
How to reproduce it:
More details:
I was not seeing this error when using 0.16.2.
I noticed that the parquet filed for the checkpoint, 00000000000000000001.checkpoint.parquet only contains the following information for the protocol:
{'minReaderVersion': 3.0, 'minWriterVersion': 7.0}
If I look at the protocol information for "00000000000000000000.json" I see the following:
{"protocol":{"minReaderVersion":3,"minWriterVersion":7,"readerFeatures":["timestampNtz"],"writerFeatures":["appendOnly","timestampNtz"]}}
I think the code in checkpoint.rs is not serializing readerFeatures or writerFeatures.
The text was updated successfully, but these errors were encountered: