@@ -534,6 +534,7 @@ def test_transaction(catalog: Catalog) -> None:
534534 assert df_before_transaction == df
535535
536536
537+ @pytest .mark .skip ("This test is just for reference. Multiple upserts or delete+upsert doesn't work in a transaction" )
537538def test_transaction_multiple_upserts (catalog : Catalog ) -> None :
538539 identifier = "default.test_multi_upsert"
539540 _drop_table (catalog , identifier )
@@ -547,24 +548,28 @@ def test_transaction_multiple_upserts(catalog: Catalog) -> None:
547548 tbl = catalog .create_table (identifier , schema = schema )
548549
549550 # Define exact schema: required int32 and required string
550- arrow_schema = pa .schema ([
551- pa .field ("id" , pa .int32 (), nullable = False ),
552- pa .field ("name" , pa .string (), nullable = False ),
553- ])
551+ arrow_schema = pa .schema (
552+ [
553+ pa .field ("id" , pa .int32 (), nullable = False ),
554+ pa .field ("name" , pa .string (), nullable = False ),
555+ ]
556+ )
554557
555558 tbl .append (pa .Table .from_pylist ([{"id" : 1 , "name" : "Alice" }], schema = arrow_schema ))
556559
557560 df = pa .Table .from_pylist ([{"id" : 2 , "name" : "Bob" }, {"id" : 1 , "name" : "Alicia" }], schema = arrow_schema )
558561
559562 with tbl .transaction () as txn :
563+ txn .append (df )
564+ txn .delete (delete_filter = "id = 1" )
565+ txn .append (df )
560566 # This should read the uncommitted changes?
561567 txn .upsert (df , join_cols = ["id" ])
562568
563- txn .upsert (df , join_cols = ["id" ])
569+ # txn.upsert(df, join_cols=["id"])
564570
565571 result = tbl .scan ().to_arrow ().to_pylist ()
566572 assert sorted (result , key = lambda x : x ["id" ]) == [
567573 {"id" : 1 , "name" : "Alicia" },
568574 {"id" : 2 , "name" : "Bob" },
569575 ]
570-
0 commit comments