Commit 1cd2aa17 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 987daea8
......@@ -112,15 +112,32 @@ func (δf *ΔFTail) LastRevOf(file *BigFile, blk int64, at zodb.Tid) (_ zodb.Tid
panic("TODO")
}
// XXX δB.GetAt(root, key, at) at ∈ (tail, head]
// LastBlkRev returns last revision that changed file[blk] as of @at database state.
//
// if exact=False - what is returned is only an upper bound for last block revision.
//
// at must ∈ (tail, head] XXX [tail ?
func (f *BigFile) LastBlkRev(blk int64, at zodb.Tid) (_ zodb.Tid, exact bool) {
δf := f.head.bfdir.δFtail
// revision of when blktab[blk] entry changed last.
treeKeyRev, exact := δf.ΔTail.LastRevOf(f.zfile.blktab, blk, at) // XXX activate?
_ = treeKeyRev
//treeKeyRev, exact := δf.ΔTail.LastRevOf(f.zfile.blktab, blk, at) // XXX activate?
panic("TODO")
zblkOid, ok, tabRev, tabRevExact := δf.ΔTail.GetAt(f.zfile.blktab, blk, at)
// block was removed
if !ok {
return tabTev, tabRevExact
}
// blktab[blk] was changed to point to a zblk @rev.
// blk revision is max rev and when zblk changed last in (rev, at] range.
zblkRev, zblkExact := δZ.LastRevOf(zblkOid, at)
if zblkRev > rev {
return zblkRev, zblkRevExact
} else {
return tabRev, tabRevExact
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment