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