Skip to content

Commit 45d0a86

Browse files
committed
fix(ReadUncommitedTransaction): remove constant zero effect
1 parent 59ea378 commit 45d0a86

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

src/tgdb/entities/horizon/transaction.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ def _complete(self) -> None:
231231
class 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(

src/tgdb/entities/relation/tuple_effect.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __and__(self, effect: "TupleEffect") -> "TupleEffect":
1919
class 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:
3737
class 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:
5555
class 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:
7373
class 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()

tests/test_tgdb/test_entities/test_horizon/test_horizon.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
)

0 commit comments

Comments
 (0)