Skip to content

Commit b4da968

Browse files
ZENOTMEchenzl25
authored andcommitted
feat(writer): add delta writer (#18)
Co-authored-by: ZENOTME <st810918843@gmail.com> fix
1 parent b991068 commit b4da968

File tree

7 files changed

+481
-5
lines changed

7 files changed

+481
-5
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
@@ -21,7 +21,7 @@ use arrow_array::RecordBatch;
2121
use itertools::Itertools;
2222

2323
use crate::Result;
24-
use crate::spec::{DataContentType, DataFile, Struct};
24+
use crate::spec::{DataContentType, DataFile, SchemaRef, Struct};
2525
use crate::writer::file_writer::{FileWriter, FileWriterBuilder};
2626
use crate::writer::{CurrentFileStatus, IcebergWriter, IcebergWriterBuilder};
2727

@@ -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
@@ -614,6 +614,10 @@ impl CurrentFileStatus for ParquetWriter {
614614
0
615615
}
616616
}
617+
618+
fn current_schema(&self) -> SchemaRef {
619+
self.schema.clone()
620+
}
617621
}
618622

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

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
use arrow_array::RecordBatch;
1919

20-
use crate::spec::DataFileBuilder;
20+
use crate::spec::{DataFileBuilder, SchemaRef};
2121
use crate::writer::CurrentFileStatus;
2222
use crate::writer::file_writer::{FileWriter, FileWriterBuilder};
2323
use crate::{Error, ErrorKind, Result};
@@ -137,6 +137,10 @@ impl<B: FileWriterBuilder> CurrentFileStatus for RollingFileWriter<B> {
137137
fn current_written_size(&self) -> usize {
138138
self.inner.as_ref().unwrap().current_written_size()
139139
}
140+
141+
fn current_schema(&self) -> SchemaRef {
142+
self.inner.as_ref().unwrap().current_schema()
143+
}
140144
}
141145

142146
#[cfg(test)]

0 commit comments

Comments
 (0)