Julian Foad <julian.f...@wandisco.com> writes:

> Greg Stein wrote:
>> Why are tests failing because of the different values?
>
> I think it's not because the op_depth value is different, but because
> creating a row with a different op_depth now in some cases means
> creating an *additional* row, and the rest of the code is not yet
> prepared for finding two or more WORKING rows for the same node.
> Something like that.

A typical failure was a delete followed by an add/replace.  The delete
creates a row with op_depth=2 (a temporary value) and the add creates
a row with op_depth=1 (a correct value).  When we select the row with
the highest op_depth we don't see the add.

We had a brief discussion on IRC about this.  The add does an INSERT
OR REPLACE and the op_depth difference makes it an insert rather than
a replace.  Should add determine whether it should insert or replace
and make the appropriate query?  The temporary op_depth values lead to
a corrupt database if the op_depth values are assummed to be correct.
Should add detect the corruption?

-- 
Philip

Reply via email to