5050 AssertLastAssignedPartitionId ,
5151 AssertRefSnapshotId ,
5252 AssertTableUUID ,
53+ RemovePropertiesUpdate ,
5354 SetPropertiesUpdate ,
5455 SetSnapshotRefUpdate ,
5556 SnapshotRef ,
@@ -529,6 +530,51 @@ def test_add_nested_list_type_column(table_v2: Table) -> None:
529530 assert new_schema .highest_field_id == 7
530531
531532
533+ def test_apply_set_properties_update (table_v2 : Table ) -> None :
534+ base_metadata = table_v2 .metadata
535+
536+ new_metadata_no_update = update_table_metadata (base_metadata , (SetPropertiesUpdate (updates = {}),))
537+ assert new_metadata_no_update == base_metadata
538+
539+ new_metadata = update_table_metadata (
540+ base_metadata , (SetPropertiesUpdate (updates = {"read.split.target.size" : "123" , "test_a" : "test_a" , "test_b" : "test_b" }),)
541+ )
542+
543+ assert base_metadata .properties == {"read.split.target.size" : "134217728" }
544+ assert new_metadata .properties == {"read.split.target.size" : "123" , "test_a" : "test_a" , "test_b" : "test_b" }
545+
546+ new_metadata_add_only = update_table_metadata (new_metadata , (SetPropertiesUpdate (updates = {"test_c" : "test_c" }),))
547+
548+ assert new_metadata_add_only .properties == {
549+ "read.split.target.size" : "123" ,
550+ "test_a" : "test_a" ,
551+ "test_b" : "test_b" ,
552+ "test_c" : "test_c" ,
553+ }
554+
555+
556+ def test_apply_remove_properties_update (table_v2 : Table ) -> None :
557+ base_metadata = update_table_metadata (
558+ table_v2 .metadata ,
559+ (SetPropertiesUpdate (updates = {"test_a" : "test_a" , "test_b" : "test_b" , "test_c" : "test_c" , "test_d" : "test_d" }),),
560+ )
561+
562+ new_metadata_no_removal = update_table_metadata (base_metadata , (RemovePropertiesUpdate (removals = []),))
563+
564+ assert base_metadata == new_metadata_no_removal
565+
566+ new_metadata = update_table_metadata (base_metadata , (RemovePropertiesUpdate (removals = ["test_a" , "test_c" ]),))
567+
568+ assert base_metadata .properties == {
569+ "read.split.target.size" : "134217728" ,
570+ "test_a" : "test_a" ,
571+ "test_b" : "test_b" ,
572+ "test_c" : "test_c" ,
573+ "test_d" : "test_d" ,
574+ }
575+ assert new_metadata .properties == {"read.split.target.size" : "134217728" , "test_b" : "test_b" , "test_d" : "test_d" }
576+
577+
532578def test_apply_add_schema_update (table_v2 : Table ) -> None :
533579 transaction = table_v2 .transaction ()
534580 update = transaction .update_schema ()
@@ -625,6 +671,8 @@ def test_update_metadata_with_multiple_updates(table_v1: Table) -> None:
625671 schema_update_1 .add_column (path = "b" , field_type = IntegerType ())
626672 schema_update_1 .commit ()
627673
674+ transaction .set_properties (owner = "test" , test_a = "test_a" , test_b = "test_b" , test_c = "test_c" )
675+
628676 test_updates = transaction ._updates # pylint: disable=W0212
629677
630678 new_snapshot = Snapshot (
@@ -639,6 +687,7 @@ def test_update_metadata_with_multiple_updates(table_v1: Table) -> None:
639687
640688 test_updates += (
641689 AddSnapshotUpdate (snapshot = new_snapshot ),
690+ SetPropertiesUpdate (updates = {"test_a" : "test_a1" }),
642691 SetSnapshotRefUpdate (
643692 ref_name = "main" ,
644693 type = "branch" ,
@@ -647,6 +696,7 @@ def test_update_metadata_with_multiple_updates(table_v1: Table) -> None:
647696 max_snapshot_age_ms = 12312312312 ,
648697 min_snapshots_to_keep = 1 ,
649698 ),
699+ RemovePropertiesUpdate (removals = ["test_c" , "test_b" ]),
650700 )
651701
652702 new_metadata = update_table_metadata (base_metadata , test_updates )
@@ -681,6 +731,9 @@ def test_update_metadata_with_multiple_updates(table_v1: Table) -> None:
681731 max_ref_age_ms = 123123123 ,
682732 )
683733
734+ # Set/RemovePropertiesUpdate
735+ assert new_metadata .properties == {"owner" : "test" , "test_a" : "test_a1" }
736+
684737
685738def test_metadata_isolation_from_illegal_updates (table_v1 : Table ) -> None :
686739 base_metadata = table_v1 .metadata
0 commit comments