On Fri, Feb 17, 2012 at 2:56 AM, Guilherme Salgado <guilherme.salg...@linaro.org> wrote: > On 16/02/12 00:12, Robert Collins wrote: >> You could use a list (e.g. rather than sequence, have a next pointer >> pointing at the id of the next WI; you'd only need to update 2 rows to >> do an in-middle insert. > > Oh, of course, maybe I'd have thought of that if I hadn't constrained > myself to the existing DB schema. > >> >> OTOH updating a dozen is one sql statement (done carefully) and will be fast. >> > > Is there a way to update values in multiple rows without using a fixed > function applied on the existing value of all rows? (e.g. we might need > to add 1 to the sequence of one row and 2 to the sequence of another)? > I guess I could do something like "i+1 if i<5; i+2 if i>=5" but that > doesn't sound nice as we'd have to figure out the equation on every update. > > There's also the chance that the user updated the > status/assignee/milestone of one of those rows, which would make the > code even more complicated if we wanted to batch it as well (can we even > do it?), so it's starting to feel like the best alternative is to > actually keep the code simple and let it issue as many updates as > necessary, which won't be that many even when all rows are changed.
Do any object updates you have, excluding new rows; store.flush(). Issue an update with (IIRC) using to select the field value - and you can just supply a lookup map with a little shoving, or yes, a formula). [look at the multi-table support for UPDATE]. -Rob _______________________________________________ Mailing list: https://launchpad.net/~launchpad-dev Post to : launchpad-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~launchpad-dev More help : https://help.launchpad.net/ListHelp