Skip to content

Commit 9bef8de

Browse files
ZENOTMExxchan
authored andcommitted
feat(writer): add delta writer (#18)
Co-authored-by: ZENOTME <st810918843@gmail.com>
1 parent de08fc8 commit 9bef8de

File tree

4 files changed

+474
-2
lines changed

4 files changed

+474
-2
lines changed

crates/iceberg/src/writer/base_writer/data_file_writer.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
use arrow_array::RecordBatch;
2121
use itertools::Itertools;
2222

23-
use crate::spec::{DataContentType, DataFile, Struct};
23+
use crate::spec::{DataContentType, DataFile, SchemaRef, Struct};
2424
use crate::writer::file_writer::{FileWriter, FileWriterBuilder};
2525
use crate::writer::{CurrentFileStatus, IcebergWriter, IcebergWriterBuilder};
2626
use crate::Result;
@@ -99,6 +99,10 @@ impl<B: FileWriterBuilder> CurrentFileStatus for DataFileWriter<B> {
9999
fn current_written_size(&self) -> usize {
100100
self.inner_writer.as_ref().unwrap().current_written_size()
101101
}
102+
103+
fn current_schema(&self) -> SchemaRef {
104+
self.inner_writer.as_ref().unwrap().current_schema()
105+
}
102106
}
103107

104108
#[cfg(test)]

crates/iceberg/src/writer/file_writer/parquet_writer.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,10 @@ impl CurrentFileStatus for ParquetWriter {
548548
fn current_written_size(&self) -> usize {
549549
self.written_size.load(std::sync::atomic::Ordering::Relaxed) as usize
550550
}
551+
552+
fn current_schema(&self) -> SchemaRef {
553+
self.schema.clone()
554+
}
551555
}
552556

553557
/// AsyncFileWriter is a wrapper of FileWrite to make it compatible with tokio::io::AsyncWrite.

0 commit comments

Comments
 (0)