On Wed, Sep 22, 2010 at 18:27, Greg Stein <gst...@gmail.com> wrote:
>...
> The children don't have to be touched. They just hang out in their
> deleted state with the same op_depth. We *never* want to modify a rows
> op_depth. That is part of its primary key(!).

Let me clarify this. There is one situation where we (effectively)
modify the op_depth.

Consider:

1. checkout. add rows <A, 0>, <A/B, 0>, <A/B/C, 0>, <A/B/gamma, 0>:
presence=normal.
2. delete gamma. add row <A/B/gamma, 3>: presence=deleted.
3. delete B. add rows <A/B, 2>, <A/B/C, 2>: presence=deleted. modify
<A/B/gamma, 3>: op_depth=2

We subsume the child deletion into the parent deletion. We could just
as well revert/forget the child deletion and add rows for all children
at op_depth, or we can just rewrite the op_depth. Net is the same.


Outside of this deletion, I don't think we want to be modifying op_depth at all.

Cheers,
-g

Reply via email to