> Mark Phippard wrote on Fri, Sep 02, 2011 at 12:02:02 -0400: > > On Fri, Sep 2, 2011 at 11:42 AM, Philip Martin > > <philip.mar...@wandisco.com> wrote: > > > Hyrum K Wright <hyrum.wri...@wandisco.com> writes: > > > > > >> sqlite> select * from sqlite_master where type = 'index' and > > >> tbl_name = 'WCROOT'; > > >> index|sqlite_autoindex_WCROOT_1|WCROOT|8| > > >> index|I_LOCAL_ABSPATH|WCROOT|9|CREATE UNIQUE INDEX > > >> I_LOCAL_ABSPATH ON WCROOT (local_abspath) > > >> > > >> would both indicate there are two indices on the WCROOT table, > > >> though we only define one. I believe one of these indices is due > > >> to the UNIQUEness of the local_abspath column. > > > > > > Yes, that's why I think we can delete them. However we rarely write > > > to these tables so the overhead of having the superfluous index is > > > negligible. There is no real need to remove them from 1.7 if people > > > would prefer to make a more minimal change for 1.7. > > > > I do not know about SQLite, but in other databases I have worked with, > > the database engine is intelligent enough to not create anything > > superfluous in this sort of scenario where the index you want to > > create already exists.
Most? Hmm.. the ones I use happily do what you tell them tool. For SQL Server I have a tool that checks for duplicate indicies for this reason. Also, the ones I've worked with always use an index to enforce a unique constraint so making your own is redundant. Also, someone mentioned keeping it cause you didn't add to this table much. However, I would disagree. Also, the data storage size would be doubled for no good reason. BOb