Re: [Tracker] sparql: Could not run update, constraint failed (database corruption?)



I could fix the database apparently:

$ sqlite3 ~/.cache/tracker/meta.db
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> DELETE FROM "nco:EmailAddress"
   ...> WHERE "nco:emailAddress" = "bob company tld";
sqlite> .q


And now it works.

My theory about the problem is that the nco:EmailAddress existed but
wasn't referenced anywhere. It should have been garbage collected. And
thus, when I want to assign this email address to an existing
nco:Contact, tracker tried to create a new nco:EmailAddress even though
it already existed.

In the SQLite database, the nco:EmailAddress table is as follows:

    CREATE TABLE "nco:EmailAddress" (
      ID INTEGER NOT NULL PRIMARY KEY,
      "nco:emailAddress" TEXT UNIQUE,
      "nco:emailAddress:graph" INTEGER);

The nco:emailAddress is set to UNIQUE. SQLite complained and Tracker
failed to complete the transaction.


It seems my database is full of these quirks, is there a way to run a
garbage collector on it?

It seems it's just a matter of running the following request on each of
the ontology tables:

    DELETE FROM "nco:EmailAddress"
    WHERE ID NOT IN (SELECT ID FROM Resource);


Can someone confirm this ?
Anyway, it worked for my email addresses.


Mildred

-- 
Mildred Ki'Lya
ââââââââââ ïïïïïïïïïïïïïïïïïïïï ââââââââââ
â Jabber, GoogleTalk: <mildred jabber fr>
â Website: <http://ki.lya.online.fr>           GPG ID: 9A7D 2E2B
â Fingerprint: 197C A7E6 645B 4299 6D37 684B 6F9D A8D6 9A7D 2E2B

Attachment: 0x9A7D2E2B.asc
Description: application/pgp-keys



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]