From da459dcf3a36c61f5d49317da637500fcaf4a86b Mon Sep 17 00:00:00 2001 From: camilesing Date: Wed, 16 Apr 2025 23:15:56 +0800 Subject: [PATCH] feat: add field min, max, bucket, level for ManifestFileMeta --- crates/paimon/src/spec/manifest_file_meta.rs | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/crates/paimon/src/spec/manifest_file_meta.rs b/crates/paimon/src/spec/manifest_file_meta.rs index 36f92b9..768a6a7 100644 --- a/crates/paimon/src/spec/manifest_file_meta.rs +++ b/crates/paimon/src/spec/manifest_file_meta.rs @@ -50,6 +50,18 @@ pub struct ManifestFileMeta { /// schema id when writing this manifest file. #[serde(rename = "_SCHEMA_ID")] schema_id: i64, + + #[serde(rename = "_MIN_BUCKET", skip_serializing_if = "Option::is_none")] + min_bucket: Option, + + #[serde(rename = "_MAX_BUCKET", skip_serializing_if = "Option::is_none")] + max_bucket: Option, + + #[serde(rename = "_MIN_LEVEL", skip_serializing_if = "Option::is_none")] + min_level: Option, + + #[serde(rename = "_MAX_LEVEL", skip_serializing_if = "Option::is_none")] + max_level: Option, } impl ManifestFileMeta { @@ -94,6 +106,43 @@ impl ManifestFileMeta { self.version } + #[inline] + pub fn min_bucket(&self) -> Option { + self.min_bucket + } + + #[inline] + pub fn max_bucket(&self) -> Option { + self.max_bucket + } + #[inline] + pub fn min_level(&self) -> Option { + self.min_level + } + #[inline] + pub fn max_level(&self) -> Option { + self.max_level + } + pub fn with_min_bucket(mut self, min_bucket: Option) -> Self { + self.min_bucket = min_bucket; + self + } + + pub fn with_max_bucket(mut self, max_bucket: Option) -> Self { + self.max_bucket = max_bucket; + self + } + + pub fn with_min_level(mut self, min_level: Option) -> Self { + self.min_level = min_level; + self + } + + pub fn with_max_level(mut self, max_level: Option) -> Self { + self.max_level = max_level; + self + } + #[inline] pub fn new( file_name: String, @@ -111,6 +160,10 @@ impl ManifestFileMeta { num_deleted_files, partition_stats, schema_id, + min_bucket: None, + max_bucket: None, + min_level: None, + max_level: None, } } }