File tree Expand file tree Collapse file tree 3 files changed +22
-7
lines changed
tests/test_tgdb/test_entities/test_horizon Expand file tree Collapse file tree 3 files changed +22
-7
lines changed Original file line number Diff line number Diff line change @@ -231,7 +231,7 @@ def _complete(self) -> None:
231231class ReadUncommitedTransaction :
232232 _xid : XID
233233 _start_time : LogicTime
234- _space : dict [TID , TupleEffect ]
234+ _space : dict [TID , TransactionScalarEffect ]
235235
236236 def xid (self ) -> XID :
237237 return self ._xid
@@ -255,7 +255,7 @@ def rollback(self) -> None:
255255 ...
256256
257257 def commit (self ) -> Commit :
258- return Commit (self ._xid , frozenset ())
258+ return Commit (self ._xid , frozenset (self . _space . values () ))
259259
260260 @classmethod
261261 def start (
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ def __and__(self, effect: "TupleEffect") -> "TupleEffect":
1919class NewTuple :
2020 tuple : Tuple
2121
22- def __and__ (self , effect : "TupleEffect" ) -> "TupleEffect " :
22+ def __and__ (self , effect : "TupleEffect" ) -> "NewTuple | DeletedTuple " :
2323 match effect :
2424 case JustViewedTuple ():
2525 return self
@@ -37,7 +37,7 @@ def tid(self) -> TID:
3737class MutatedTuple :
3838 tuple : Tuple
3939
40- def __and__ (self , effect : "TupleEffect" ) -> "TupleEffect " :
40+ def __and__ (self , effect : "TupleEffect" ) -> "MutatedTuple | DeletedTuple | MigratedTuple " :
4141 match effect :
4242 case JustViewedTuple ():
4343 return self
@@ -55,13 +55,13 @@ def tid(self) -> TID:
5555class MigratedTuple :
5656 tuple : Tuple
5757
58- def __and__ (self , effect : "TupleEffect" ) -> "TupleEffect " :
58+ def __and__ (self , effect : "TupleEffect" ) -> "MutatedTuple | MigratedTuple | DeletedTuple " :
5959 match effect :
6060 case JustViewedTuple ():
6161 return self
6262 case NewTuple (tuple ):
6363 return MutatedTuple (tuple )
64- case MutatedTuple () | DeletedTuple () | MigratedTuple ():
64+ case MutatedTuple () | MigratedTuple () | DeletedTuple ():
6565 return effect
6666
6767 @property
@@ -73,7 +73,7 @@ def tid(self) -> TID:
7373class DeletedTuple :
7474 tid : TID
7575
76- def __and__ (self , effect : "TupleEffect" ) -> "TupleEffect " :
76+ def __and__ (self , effect : "TupleEffect" ) -> "DeletedTuple | MutatedTuple " :
7777 match effect :
7878 case (
7979 JustViewedTuple ()
Original file line number Diff line number Diff line change @@ -590,3 +590,18 @@ def test_no_memory_leak(horizon: Horizon) -> None:
590590 horizon .complete_commit (time , commit .xid )
591591
592592 assert not live_transactions
593+
594+
595+ def test_read_uncommited_commit (horizon : Horizon ) -> None :
596+ """
597+ |--|
598+ """
599+
600+ horizon .start_transaction (1 , UUID (int = 1 ), IsolationLevel .read_uncommited )
601+ commit = horizon .commit_transaction (
602+ 2 , UUID (int = 1 ), [MutatedTuple (tuple_ (tid = UUID (int = 2 )))]
603+ )
604+
605+ assert commit == Commit (
606+ UUID (int = 1 ), frozenset ({MutatedTuple (tuple_ (tid = UUID (int = 2 )))})
607+ )
You can’t perform that action at this time.
0 commit comments