Skip to content

Commit 02d8b98

Browse files
committed
Add ColumnChunkMetadataBuilder clear APIs
1 parent c039762 commit 02d8b98

File tree

1 file changed

+40
-3
lines changed
  • parquet/src/file/metadata

1 file changed

+40
-3
lines changed

parquet/src/file/metadata/mod.rs

+40-3
Original file line numberDiff line numberDiff line change
@@ -1205,15 +1205,34 @@ impl ColumnChunkMetaData {
12051205

12061206
/// Converts this [`ColumnChunkMetaData`] into a [`ColumnChunkMetaDataBuilder`]
12071207
pub fn into_builder(self) -> ColumnChunkMetaDataBuilder {
1208-
ColumnChunkMetaDataBuilder(self)
1208+
ColumnChunkMetaDataBuilder::from(self)
12091209
}
12101210
}
12111211

1212-
/// Builder for column chunk metadata.
1212+
/// Builder for [`ColumnChunkMetaData`]
1213+
///
1214+
/// This builder is used to create a new column chunk metadata or modify an
1215+
/// existing one.
1216+
///
1217+
/// # Example
1218+
/// ```no_run
1219+
/// # use parquet::file::metadata::{ColumnChunkMetaData, ColumnChunkMetaDataBuilder};
1220+
/// # fn get_column_chunk_metadata() -> ColumnChunkMetaData { unimplemented!(); }
1221+
/// let column_chunk_metadata = get_column_chunk_metadata();
1222+
/// // create a new builder from existing column chunk metadata
1223+
/// let builder = ColumnChunkMetaDataBuilder::from(column_chunk_metadata);
1224+
/// // clear the statistics:
1225+
/// let column_chunk_metadata: ColumnChunkMetaData = builder
1226+
/// .clear_statistics()
1227+
/// .build()
1228+
/// .unwrap();
1229+
/// ```
12131230
pub struct ColumnChunkMetaDataBuilder(ColumnChunkMetaData);
12141231

12151232
impl ColumnChunkMetaDataBuilder {
12161233
/// Creates new column chunk metadata builder.
1234+
///
1235+
/// See also [`ColumnChunkMetaData::builder`]
12171236
fn new(column_descr: ColumnDescPtr) -> Self {
12181237
Self(ColumnChunkMetaData {
12191238
column_descr,
@@ -1297,7 +1316,7 @@ impl ColumnChunkMetaDataBuilder {
12971316
self
12981317
}
12991318

1300-
/// Sets optional dictionary page ofset in bytes.
1319+
/// Sets optional dictionary page offset in bytes.
13011320
pub fn set_dictionary_page_offset(mut self, value: Option<i64>) -> Self {
13021321
self.0.dictionary_page_offset = value;
13031322
self
@@ -1315,12 +1334,24 @@ impl ColumnChunkMetaDataBuilder {
13151334
self
13161335
}
13171336

1337+
/// Clears the statistics for this column chunk.
1338+
pub fn clear_statistics(mut self) -> Self {
1339+
self.0.statistics = None;
1340+
self
1341+
}
1342+
13181343
/// Sets page encoding stats for this column chunk.
13191344
pub fn set_page_encoding_stats(mut self, value: Vec<PageEncodingStats>) -> Self {
13201345
self.0.encoding_stats = Some(value);
13211346
self
13221347
}
13231348

1349+
/// Clears the page encoding stats for this column chunk.
1350+
pub fn clear_page_encoding_stats(mut self) -> Self {
1351+
self.0.encoding_stats = None;
1352+
self
1353+
}
1354+
13241355
/// Sets optional bloom filter offset in bytes.
13251356
pub fn set_bloom_filter_offset(mut self, value: Option<i64>) -> Self {
13261357
self.0.bloom_filter_offset = value;
@@ -1492,6 +1523,12 @@ impl ColumnIndexBuilder {
14921523
}
14931524
}
14941525

1526+
impl From<ColumnChunkMetaData> for ColumnChunkMetaDataBuilder {
1527+
fn from(value: ColumnChunkMetaData) -> Self {
1528+
ColumnChunkMetaDataBuilder(value)
1529+
}
1530+
}
1531+
14951532
/// Builder for offset index, part of the Parquet [PageIndex].
14961533
///
14971534
/// [PageIndex]: https://github.com/apache/parquet-format/blob/master/PageIndex.md

0 commit comments

Comments
 (0)