On Thu, 28 Jan 2010, Victor Engmark wrote:
>> No need for that.  We know what they are (idxWORD33F, etc) so we can
>> code their deletion.
>
> How do you mean? If we delete all tables where the name is like some
> format, users can create tables that match the format, and we're back
> to deleting their tables.

We can distinguish Invenio tables and non-Invenio tables more exactly;
there is no need to resort to a string pattern.  E.g. if users create
some local Invenio indexes, like that book price example, then BibIndex
naturally knows about it.  The index list is available in idxINDEX, so
one can do things like:

  for every id in (SELECT id FROM idxINDEX):
     DROP TABLE idxWORD<id>F
     DROP TABLE idxWORD<id>R
     DROP TABLE idxPHRASE<id>F
     DROP TABLE idxPHRASE<id>R

See also main Makefile.am, target `update-v0.92.1-tables', and look for
the lambda expression there on how we altered all idxPHRASE* table
definitions upon upgrade, respecting any local indexes.

So even if some site creates a new local table named idxWORD99F, that is
not used for BibIndex purposes but for some other goals (huh), then it
won't be deleted.

Best regards
-- 
Tibor Simko ** CERN Document Server ** <http://cds.cern.ch/>

Reply via email to