// rotateRight performs a right rotation around the node. func (tc *treeContext) rotateRight(node *roachpb.RangeTreeNode) (*roachpb.RangeTreeNode, *roachpb.Error) { left, pErr := tc.getNode(node.LeftKey) if pErr != nil { return nil, pErr } left, pErr = tc.replaceNode(node, left) if pErr != nil { return nil, pErr } node.LeftKey = left.RightKey if left.RightKey != nil { leftRight, pErr := tc.getNode(left.RightKey) if pErr != nil { return nil, pErr } leftRight.ParentKey = node.Key tc.setNode(leftRight) } left.RightKey = node.Key node.ParentKey = left.Key tc.setNode(left) tc.setNode(node) return left, nil }