Skip to content

Commit 71ae0f4

Browse files
committed
WIP
1 parent 8413515 commit 71ae0f4

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

src/Database/LSMTree.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ import Database.LSMTree.Internal.Unsafe (BlobRefInvalidError (..),
272272
TableTrace, TableUnionNotCompatibleError (..),
273273
UnionCredits (..), UnionDebt (..))
274274
import qualified Database.LSMTree.Internal.Unsafe as Internal
275+
import GHC.Stack (HasCallStack)
275276
import Prelude hiding (lookup, take, takeWhile)
276277
import System.FS.API (FsPath, HasFS (..), MountPoint (..), mkFsPath)
277278
import System.FS.BlockIO.API (HasBlockIO (..), defaultIOCtxParams)
@@ -1520,14 +1521,14 @@ prop> updates table entries = traverse_ (uncurry $ update table) entries
15201521
-}
15211522
{-# SPECIALISE
15221523
updates ::
1523-
(SerialiseKey k, SerialiseValue v, ResolveValue v, SerialiseValue b) =>
1524+
(HasCallStack, SerialiseKey k, SerialiseValue v, ResolveValue v, SerialiseValue b) =>
15241525
Table IO k v b ->
15251526
Vector (k, Update v b) ->
15261527
IO ()
15271528
#-}
15281529
updates ::
15291530
forall m k v b.
1530-
(IOLike m) =>
1531+
(IOLike m, HasCallStack) =>
15311532
(SerialiseKey k, SerialiseValue v, ResolveValue v, SerialiseValue b) =>
15321533
Table m k v b ->
15331534
Vector (k, Update v b) ->

src/Database/LSMTree/Internal/MergeSchedule.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,8 @@ releaseUnionCache reg (UnionCache mt) =
445445
-------------------------------------------------------------------------------}
446446

447447
{-# SPECIALISE updatesWithInterleavedFlushes ::
448-
Tracer IO (AtLevel MergeTrace)
448+
HasCallStack
449+
=> Tracer IO (AtLevel MergeTrace)
449450
-> TableConfig
450451
-> ResolveSerialisedValue
451452
-> HasFS IO h
@@ -483,7 +484,7 @@ releaseUnionCache reg (UnionCache mt) =
483484
-- whole run should then end up in a fresh write buffer.
484485
updatesWithInterleavedFlushes ::
485486
forall m h.
486-
(MonadMask m, MonadMVar m, MonadSTM m, MonadST m)
487+
(HasCallStack, MonadMask m, MonadMVar m, MonadSTM m, MonadST m)
487488
=> Tracer m (AtLevel MergeTrace)
488489
-> TableConfig
489490
-> ResolveSerialisedValue
@@ -565,7 +566,8 @@ addWriteBufferEntries hfs f wbblobs maxn =
565566

566567

567568
{-# SPECIALISE flushWriteBuffer ::
568-
Tracer IO (AtLevel MergeTrace)
569+
HasCallStack
570+
=> Tracer IO (AtLevel MergeTrace)
569571
-> TableConfig
570572
-> ResolveSerialisedValue
571573
-> HasFS IO h
@@ -581,7 +583,7 @@ addWriteBufferEntries hfs f wbblobs maxn =
581583
-- The returned table content contains an updated set of levels, where the write
582584
-- buffer is inserted into level 1.
583585
flushWriteBuffer ::
584-
(MonadMask m, MonadMVar m, MonadST m, MonadSTM m)
586+
(HasCallStack, MonadMask m, MonadMVar m, MonadST m, MonadSTM m)
585587
=> Tracer m (AtLevel MergeTrace)
586588
-> TableConfig
587589
-> ResolveSerialisedValue

src/Database/LSMTree/Internal/Unsafe.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ import Database.LSMTree.Internal.UniqCounter
153153
import qualified Database.LSMTree.Internal.Vector as V
154154
import qualified Database.LSMTree.Internal.WriteBuffer as WB
155155
import qualified Database.LSMTree.Internal.WriteBufferBlobs as WBB
156+
import GHC.Stack (HasCallStack)
156157
import qualified System.FS.API as FS
157158
import System.FS.API (FsError, FsErrorPath (..), FsPath, HasFS)
158159
import qualified System.FS.API.Lazy as FS
@@ -1242,15 +1243,16 @@ rangeLookup resolve range t fromEntry = do
12421243
else pure (V.concat (reverse (V.slice 0 n chunk : chunks)))
12431244

12441245
{-# SPECIALISE updates ::
1245-
ResolveSerialisedValue
1246+
HasCallStack
1247+
=> ResolveSerialisedValue
12461248
-> V.Vector (SerialisedKey, Entry SerialisedValue SerialisedBlob)
12471249
-> Table IO h
12481250
-> IO () #-}
12491251
-- | See 'Database.LSMTree.updates'.
12501252
--
12511253
-- Does not enforce that upsert and BLOBs should not occur in the same table.
12521254
updates ::
1253-
(MonadMask m, MonadMVar m, MonadST m, MonadSTM m)
1255+
(HasCallStack, MonadMask m, MonadMVar m, MonadST m, MonadSTM m)
12541256
=> ResolveSerialisedValue
12551257
-> V.Vector (SerialisedKey, Entry SerialisedValue SerialisedBlob)
12561258
-> Table m h

0 commit comments

Comments
 (0)