@@ -10,7 +10,7 @@ use std::sync::LazyLock;
1010
1111use  self :: deletion_vector:: DeletionVectorDescriptor ; 
1212use  crate :: actions:: schemas:: GetStructField ; 
13- use  crate :: schema:: { SchemaRef ,  StructType } ; 
13+ use  crate :: schema:: { DataType ,   SchemaRef ,   StructField ,  StructType } ; 
1414use  crate :: table_features:: { 
1515    ReaderFeatures ,  WriterFeatures ,  SUPPORTED_READER_FEATURES ,  SUPPORTED_WRITER_FEATURES , 
1616} ; 
@@ -84,6 +84,13 @@ pub(crate) fn get_log_commit_info_schema() -> &'static SchemaRef {
8484    & LOG_COMMIT_INFO_SCHEMA 
8585} 
8686
87+ pub ( crate )  fn  get_log_commit_info_schema_no_ict ( )  -> & ' static  SchemaRef  { 
88+     StructType :: new ( [ 
89+         StructField :: new ( "timestamp" ,  DataType :: LONG ,  true ) , 
90+         StructField :: new ( "operation" ,  DataType :: STRING ,  true ) , 
91+     ] ) 
92+ } 
93+ 
8794#[ derive( Debug ,  Clone ,  PartialEq ,  Eq ,  Schema ) ]  
8895#[ cfg_attr( test,  derive( Serialize ) ,  serde( rename_all = "camelCase" ) ) ]  
8996pub  struct  Format  { 
@@ -331,8 +338,10 @@ where
331338struct  CommitInfo  { 
332339    /// The time this logical file was created, as milliseconds since the epoch. 
333340     /// Read: optional, write: required (that is, kernel always writes). 
334-      /// If in-commit timestamps are enabled, this is always required. 
335341     pub ( crate )  timestamp :  Option < i64 > , 
342+     /// The time this logical file was created, as milliseconds since the epoch. Unlike 
343+      /// `timestamp`, this field is guaranteed to be monotonically increase with each commit. 
344+      /// If in-commit timestamps are enabled, this is always required. 
336345     pub ( crate )  in_commit_timestamp :  Option < i64 > , 
337346    /// An arbitrary string that identifies the operation associated with this commit. This is 
338347     /// specified by the engine. Read: optional, write: required (that is, kernel alwarys writes). 
@@ -695,6 +704,7 @@ mod tests {
695704            "commitInfo" , 
696705            StructType :: new( vec![ 
697706                StructField :: new( "timestamp" ,  DataType :: LONG ,  true ) , 
707+                 StructField :: new( "inCommitTimestamp" ,  DataType :: LONG ,  true ) , 
698708                StructField :: new( "operation" ,  DataType :: STRING ,  true ) , 
699709                StructField :: new( 
700710                    "operationParameters" , 
0 commit comments