-
Notifications
You must be signed in to change notification settings - Fork 202
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
Implement the equality delete writer #341
Comments
Assigned to you, thanks @Dysprosium0626 ! |
Hi I nearly complete adding Basically, in my test case, I write some schema to build up a // prepare writer
let pb = ParquetWriterBuilder::new(
WriterProperties::builder().build(),
to_write.schema(),
file_io.clone(),
location_gen,
file_name_gen,
);
let equality_ids = vec![1, 3];
let mut equality_delete_writer = EqualityDeleteFileWriterBuilder::new(pb)
.build(EqualityDeleteWriterConfig::new(
equality_ids,
schema.clone(),
PARQUET_FIELD_ID_META_KEY,
))
.await?; The async fn build(self, config: Self::C) -> Result<Self::R> {
let (projector, fields) = FieldProjector::new(
config.schema.fields(),
&config.equality_ids,
&config.column_id_meta_key,
)?;
let delete_schema = Arc::new(arrow_schema::Schema::new(fields));
Ok(EqualityDeleteFileWriter {
inner_writer: Some(self.inner.clone().build().await?),
projector,
delete_schema,
equality_ids: config.equality_ids,
})
} The problem is I cannot pass the delete_schema to |
Thanks! @Dysprosium0626 Sorry for replying late. Our original idea here is to construct the delete schema outside the EqualityDeleteFileWriter.
Looks like the schema always can be determined before we build the writer rather than "run time". |
Should this be re-opened @Xuanwo? |
I think this issue is completed after #703. |
After we finish #275, we can implement the equality delete writer based on this framework.
There is a rust implementation that can be referred to in icelake. But better design is acceptable.
related spec:
https://iceberg.apache.org/spec/#equality-delete-files
The text was updated successfully, but these errors were encountered: