On Thu, Sep 16, 2010 at 10:40 PM, Philip Martin <philip.mar...@wandisco.com>wrote:
> Erik Huelsmann <ehu...@gmail.com> writes: > > > We're now back to a single failure. It's in the relocation-verification > code > > in db-test.c (line 1505). With the half-hour I've spent so far, I wasn't > > able to locate it, but I have to move to other business now. Hopefully > > you'll be able to find it. > > It's the difference between the old STMT_UPDATE_BASE_RECURSIVE_REPO > and the new STMT_RECURSIVE_UPDATE_NODE_REPO. The first updates > non-null repo_ids while the second updates repo_ids that match the old > repo_id. This makes a difference when a node has a non-null repo_id > that doesn't match the the old repo_id. > > I'm not sure whether the pre-relocate db is valid, and if it is I'm > not sure which of the relocate algorithms is correct. > The latter query (the one which verifies the repo_id) is the one I wrote. I did so intentionally: from the description of the copyfrom_* fields in the WORKING_NODE table, I couldn't but conclude they may be referring to a different repository. Since the new query is updating both BASE and WORKING, I thought verification of the old repo_id to be required. Additionally, what happens if -for whatever reason- 1 working copy contains references to multiple repositories? The former query will rewrite everything to be part of the same repository. Hence, I think the former query is flawed. I hope the original author (Greg?) has something to say about it. Bye, Erik.