Bert Huijben wrote: > Julian Foad wrote: >> --- schema-1.7.8-upgraded-to-1.8-dev >> +++ schema-1.8-dev >> >> - file_external TEXT, >> + file_external INTEGER, > > This doesn't matter for our use of Sqlite. We only use NULL vs set, but > integer documents what we now store in file_external. > > Sqlite doesn't implement an ALTER table statement that can update this, so I > don't think we should try to change this for 1.8.
>> -CREATE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE ( >> - wc_id, parent_relpath); >> +CREATE UNIQUE INDEX I_ACTUAL_PARENT ON ACTUAL_NODE ( >> + wc_id, parent_relpath, local_relpath); >> >> -CREATE INDEX I_NODES_PARENT ON NODES ( >> - wc_id, parent_relpath, op_depth); >> +CREATE UNIQUE INDEX I_NODES_PARENT ON NODES ( >> + wc_id, parent_relpath, local_relpath, op_depth); For 1.8, what's the point of still including 'parent_relpath' in the index, when we know that every 'local_relpath' value starts with 'parent_relpath'? Doesn't that just make the index a bit bigger and a bit slower than CREATE UNIQUE INDEX I_NODES_PARENT ON NODES ( wc_id, local_relpath, op_depth); ? > I'll look into these tomorrow, but the performance difference is not that > large. And as the names are 100% identical they can never cause problems > upgrading to future versions. (And SQL guarantees that this can't affect our > queries in any other way than performance) BTW, Brane has started working on this issue. - Julian