683746970 (Highlight broken in snapshots)

Zotero 3.0: Since upgrading Firefox to release 10, I have not been able to highlight text in snapshots. Old highlights (done prior to upgrade) remain.

Selecting the (1) highlight button prior to selecting text and (2) selecting text before the highlight button both have no effect.

I have not tried annotations.
  • Situation: Zotero.sqlite is 251,968KB. "Storage" within folder "ZoteroStorage" is 6.61 GB, 220,124 files, 3589 Folders.

    A check of database integrity reported (unspecified) error(s). I did a chkdsk /r, installed a new hard drive, cloned the old disk to the new, rechecked integrity (still error).

    I tried Zotero database repair (raw and zipped). Both exceeded limits and returned an empty file.

    I did not try the SQLite procedure, since I can not be sure that it represents the current schema.
  • Upgrade to 3.0.1 (but see this thread).
  • as for the database integrity - yes, the manual instructions are still up to date. Needless to say - make sure to back-up your database before doing that.
  • Thank you for clarifying. I used annotations to identify concepts that should be tagged. FYI, it worked (1 trial) where it had previously failed.

    I concur with the kudos for the 3.0 release. It is much better and indeed faster. (You can tell from the file and folder volumes that I am perhaps pushing on the usual limits; since you are using a relational database, I should be o.k.)

    I have run across a couple of minor things that I will put in a separate post FYI.
  • BTW: Is there any chance of increasing the size limit on Data Base Repair?
  • No, but we'll probably separate out the full-text index in a future version, which would make the main database much smaller. Actual corruption (which, to be clear, should never happen, can't be caused by Zotero, and hasn't been caused by Firefox since Firefox 2.0 or so—but you're an early user, so it's possible you've had it for a while) tends to be in the full-text index (and can sometimes be fixed by rebuilding the index in the Search prefs).

    The integrity check also finds inconsistencies caused by bugs in earlier versions of Zotero, though, so it's possible your database isn't actually corrupt. In a future version we'll be able to fix some of those inconsistencies automatically, and we'll have the integrity check make clear whether the issue is actual corruption or those more minor issues.

    In general, though, unless you're experiencing problems you don't need to worry about it (though, Zotero aside, you should of course have daily or hourly backups of your entire hard drive anyway).
  • I wanted to understand the specification represented by the SQL commands in Manual Zotero Database Repair Instructions. I went through a copy of the commands, inserting comments where I thought I understood the intent (or not).

    It looks like some instances (rows) can be deleted based upon settings by SQL commands or lack of required entries. For the former, I would need the current schema and data definitions. For the latter, I would do well to clean up the values in my data base first (e.g., blank "creator").

    Referential integrity can now be enforced in SQLite, including deferral until transaction is complete. Cascade delete of subordinate items is also provided. I assume this was lacking in earlier versions of SQLite, and is the root cause of some of the items needing repair.

    The following is in sequence of the SQL commands in Manual Zotero Database Repair Instructions. “// “ is the comment I inserted in a copy for the analysis.

    // Appears to delete instances (rows) from tables where the instance has a foreign key not found in table “Items”.
    // Appears to delete instances (rows) from table “fulltextItemWords” where the instance has a foreign key not found in table “fulltextItems”. This may be a sequencing constraint
    // Appears to delete instances (rows) from tables where the instance has a foreign key not found in table “Items”.
    // Appears to delete instances (rows) from tables where the instance has a foreign key not found as primary keys in various other tables. Also deletes “items” that lack “itemTypeID”.
    // “Updates” appear to be a cleanup of attachment relationships, including setting the itemTypeID of “items” to ‘14’. Without knowing the current schema / attribute definitions, I have no idea what is done or why it is done. (Also, I do not understand the conditions selecting the “Delete From” statement.)
    // These Updates using a Temporary Table may be a correction/deletion of ill-defined Tag values.
    // This Update may be a correction of the charsetID attribute value.
    // Apparently Groups and Libraries are part of the current schema, but not part of the schema I am looking at.
    // Apparently null or blank creator first AND last names are not permitted. Can’t tell whether lack of First and Last Name applies to Standalone Notes.
  • Not really sure why you're spending time worrying about this. All you need to do is run the commands—it's really not worth thinking about what each one does. They fix various issues we've seen in people's databases—that's all. We already enforce referential integrity via triggers, but in some cases, for various reasons (DB corruption, SQLite bugs, Zotero bugs, etc.), we've seen cases where bad data got through. We'll switch to using actual FK constraints in a future version.

    But we wrote these statements. There's no reason to spend more time evaluating them than every single other SQL command in Zotero.
  • I meant no offense. I was checking to see if there was anything (values)in my database that I should correct before repair.
  • No offense taken—just don't want you to waste your time.
Sign In or Register to comment.