line := NodeKey{0, v.end}
_, err := v.load(tree, line)
if err != nil {
- return false, err
+ return false, fmt.Errorf("load appended leaf: %w", err)
}
v.lines = append(v.lines, line)
for v.merging && size > v.low {
best, err := v.mostDue(tree)
if err != nil || best < 0 {
- return merged, err
+ if err != nil {
+ return merged, fmt.Errorf("choose merge candidate: %w", err)
+ }
+
+ return merged, nil
}
left, right := v.lines[best], v.lines[best+1]
parent := NodeKey{left.level + 1, left.index / 2}
_, err = v.load(tree, parent)
if err != nil {
- return merged, err
+ return merged, fmt.Errorf("load merged parent: %w", err)
}
size += v.lineSize(parent) - v.lineSize(left) - v.lineSize(right)
built, err := v.load(tree, line)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("load restored view node: %w", err)
}
if line.level > 0 && !built {