@@ -872,13 +872,13 @@ impl TableMetadataBuilder {
872
872
. with_fields ( sort_order. fields )
873
873
. build ( & schema) ?;
874
874
875
- let expired_metadata_logs = self . expire_metadata_log ( ) ;
876
875
self . update_snapshot_log ( ) ?;
877
876
self . metadata . try_normalize ( ) ?;
878
877
879
878
if let Some ( hist_entry) = self . previous_history_entry . take ( ) {
880
879
self . metadata . metadata_log . push ( hist_entry) ;
881
880
}
881
+ let expired_metadata_logs = self . expire_metadata_log ( ) ;
882
882
883
883
Ok ( TableMetadataBuildResult {
884
884
metadata : self . metadata ,
@@ -1945,4 +1945,46 @@ mod tests {
1945
1945
"Cannot add partition spec with non-sequential field ids to format version 1 table"
1946
1946
) ) ;
1947
1947
}
1948
+
1949
+ #[ test]
1950
+ fn test_expire_metadata_log ( ) {
1951
+ let builder = builder_without_changes ( FormatVersion :: V2 ) ;
1952
+ let metadata = builder
1953
+ . set_properties ( HashMap :: from_iter ( vec ! [ (
1954
+ PROPERTY_METADATA_PREVIOUS_VERSIONS_MAX . to_string( ) ,
1955
+ "2" . to_string( ) ,
1956
+ ) ] ) )
1957
+ . unwrap ( )
1958
+ . build ( )
1959
+ . unwrap ( ) ;
1960
+ assert_eq ! ( metadata. metadata. metadata_log. len( ) , 1 ) ;
1961
+ assert_eq ! ( metadata. expired_metadata_logs. len( ) , 0 ) ;
1962
+
1963
+ let metadata = metadata
1964
+ . metadata
1965
+ . into_builder ( Some ( "path2" . to_string ( ) ) )
1966
+ . set_properties ( HashMap :: from_iter ( vec ! [ (
1967
+ "change_nr" . to_string( ) ,
1968
+ "1" . to_string( ) ,
1969
+ ) ] ) )
1970
+ . unwrap ( )
1971
+ . build ( )
1972
+ . unwrap ( ) ;
1973
+
1974
+ assert_eq ! ( metadata. metadata. metadata_log. len( ) , 2 ) ;
1975
+ assert_eq ! ( metadata. expired_metadata_logs. len( ) , 0 ) ;
1976
+
1977
+ let metadata = metadata
1978
+ . metadata
1979
+ . into_builder ( Some ( "path2" . to_string ( ) ) )
1980
+ . set_properties ( HashMap :: from_iter ( vec ! [ (
1981
+ "change_nr" . to_string( ) ,
1982
+ "2" . to_string( ) ,
1983
+ ) ] ) )
1984
+ . unwrap ( )
1985
+ . build ( )
1986
+ . unwrap ( ) ;
1987
+ assert_eq ! ( metadata. metadata. metadata_log. len( ) , 2 ) ;
1988
+ assert_eq ! ( metadata. expired_metadata_logs. len( ) , 1 ) ;
1989
+ }
1948
1990
}
0 commit comments