mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-09 12:27:52 +00:00
Merge pull request #1027 from tgruben/rle-optimize
added binary search to runAdd
This commit is contained in:
commit
e4f5494db2
1 changed files with 9 additions and 6 deletions
|
|
@ -1216,16 +1216,19 @@ func (c *container) runAdd(v uint16) bool {
|
|||
c.runs = []interval16{{start: v, last: v}}
|
||||
return true
|
||||
}
|
||||
i := 0
|
||||
var iv interval16
|
||||
for i, iv = range c.runs {
|
||||
if iv.last >= v {
|
||||
break
|
||||
}
|
||||
|
||||
i := sort.Search(len(c.runs),
|
||||
func(i int) bool { return c.runs[i].last >= v })
|
||||
|
||||
if i == len(c.runs) {
|
||||
i--
|
||||
}
|
||||
|
||||
iv := c.runs[i]
|
||||
if v >= iv.start && iv.last >= v {
|
||||
return false
|
||||
}
|
||||
|
||||
c.unmap()
|
||||
if iv.last < v {
|
||||
if iv.last == v-1 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue