diff --git a/crates/core/src/kernel/models/fields.rs b/crates/core/src/kernel/models/fields.rs index 3ff653ac65..dabada4bcc 100644 --- a/crates/core/src/kernel/models/fields.rs +++ b/crates/core/src/kernel/models/fields.rs @@ -145,6 +145,19 @@ static REMOVE_FIELD: LazyLock = LazyLock::new(|| { true, ) }); +// TODO implement support for this checkpoint +#[expect(dead_code)] +static REMOVE_FIELD_CHECKPOINT: LazyLock = LazyLock::new(|| { + StructField::new( + "remove", + StructType::new(vec![ + StructField::new("path", DataType::STRING, false), + StructField::new("deletionTimestamp", DataType::LONG, true), + StructField::new("dataChange", DataType::BOOLEAN, false), + ]), + true, + ) +}); // https://github.com/delta-io/delta/blob/master/PROTOCOL.md#add-cdc-file static CDC_FIELD: LazyLock = LazyLock::new(|| { StructField::new( diff --git a/crates/core/src/operations/filesystem_check.rs b/crates/core/src/operations/filesystem_check.rs index 9411d0cbf7..4d06b9c0d2 100644 --- a/crates/core/src/operations/filesystem_check.rs +++ b/crates/core/src/operations/filesystem_check.rs @@ -22,7 +22,7 @@ use futures::future::BoxFuture; use futures::StreamExt; pub use object_store::path::Path; use object_store::ObjectStore; -use serde::{Serialize, Serializer}; +use serde::{de::Error as DeError, Deserialize, Deserializer, Serialize, Serializer}; use url::{ParseError, Url}; use uuid::Uuid; @@ -79,6 +79,16 @@ where serializer.serialize_str(&json_string) } +// Custom deserialization that parses a JSON string into MetricDetails +#[expect(dead_code)] +fn deserialize_vec_string<'de, D>(deserializer: D) -> Result, D::Error> +where + D: Deserializer<'de>, +{ + let s: String = Deserialize::deserialize(deserializer)?; + serde_json::from_str(&s).map_err(DeError::custom) +} + fn is_absolute_path(path: &str) -> DeltaResult { match Url::parse(path) { Ok(_) => Ok(true),