liurenjie1024 commented on code in PR #645:
URL: https://github.com/apache/iceberg-rust/pull/645#discussion_r1812191734


##########
crates/iceberg/src/spec/partition.rs:
##########
@@ -54,22 +54,51 @@ impl PartitionField {
     }
 }
 
-///  Partition spec that defines how to produce a tuple of partition values 
from a record.
-#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone, Default)]
-#[serde(rename_all = "kebab-case")]
+/// Partition spec that defines how to produce a tuple of partition values 
from a record.
+/// `PartitionSpec` is bound to a specific schema.
+#[derive(Debug, PartialEq, Eq, Clone)]
 pub struct PartitionSpec {
     /// Identifier for PartitionSpec
-    pub(crate) spec_id: i32,
+    spec_id: i32,
     /// Details of the partition spec
-    pub(crate) fields: Vec<PartitionField>,
+    fields: Vec<PartitionField>,
+    /// The schema this partition spec is bound to
+    schema: SchemaRef,
+    /// Type of the partition spec
+    partition_type: StructType,
+}
+
+/// Reference to [`SchemalessPartitionSpec`].
+pub type SchemalessPartitionSpecRef = Arc<SchemalessPartitionSpec>;
+/// Partition spec that defines how to produce a tuple of partition values 
from a record.
+/// Schemaless partition specs are never constructed manually. They occur when 
a table is mutated
+/// and partition spec and schemas are updated. While old partition specs are 
retained, the bound
+/// schema might not be available anymore as part of the table metadata.
+#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
+#[serde(rename_all = "kebab-case")]
+pub struct SchemalessPartitionSpec {

Review Comment:
   I think this is same as `UnboundPartitionSpec`? If so, should we just add an 
alias?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to