On Fri, 2011-01-07 at 15:19 +0000, Philip Martin wrote: > Julian Foad <julian.f...@wandisco.com> writes: > > > The only case that SQLite doesn't handle automatically is the > > replacement part of "INSERT OR REPLACE INTO ...": it doesn't fire the > > "delete" trigger in that case. > > http://www.sqlite.org/lang_conflict.html > > suggests that you need to enable recursive triggers.
Thanks - I missed that. That gets me past all the test failures except for upgrade tests, which is great for progress. However it would mean requiring SQLite >= 3.6.18 which is fairly new (16 months old) so we'd have to work out the practicalities of that. > I suspect that triggers are the most efficient way to implement > reference counting (no need for separate queries) but does it have a > noticeable effect on performance? Is checkout slower for example? I haven't tested performance yet. Things I need to do: * Finish delete-before-insert OR sort out the implications of requiring >= SQLite 3.6.18. * Performance testing. * Upgrade code from old WC-NG dev WC formats. * Decide the best place to do the delete-when-count-reaches-zero. - Julian