View Single Post
Old 08-26-2014, 03:15 PM   #3
DaltonST
Deviser
DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.DaltonST ought to be getting tired of karma fortunes by now.
 
DaltonST's Avatar
 
Posts: 2,265
Karma: 2090983
Join Date: Aug 2013
Location: Texas
Device: none
Qt4 Upgraded to Qt5; Can sqlite3.dll be upgraded too?

Kovid,

A new plugin I am developing uses SQLite extensively because native Calibre does not support cross-library searches, cross-library metadata acquisition, cross-book and/or cross-author searches plus corresponding metadata analysis and update (nor should it).

The new plugin is really as much an add-on to Calibre as it is a plug-in, because its Calibre metadata.db has multiple new custom_columns tables, new views, new custom tables for behind the scenes processing that the user cannot and need not see, plus new indexes.

Its software runs as a Calibre Plugin, but its metadata.db is not meant for a "normal" Calibre library. The plugin menu will do absolutely nothing unless the current library is the special library that is associated with the special metadata.db file described above. It is definitely not a "generic library" plugin. It is targeted to Calibre power-users who have large libraries.

One of my 5 (so far) plugin jobs in Calibre fails because the native SQLite function "instr" does not exist in Calibre 2.0's version of sqlite3.dll. The native function "instr" was added to SQLite almost 2 years ago, on 2012-12-12 (3.7.15) according to http://www.sqlite.org/changes.html, so Calibre 2.0's version must be an older release than 3.7.15. It has blank "properties", so it is hard to say what version it is.

The latest version is 2014-08-15 (3.8.6), but I have been satisfied so far with only 3.7.16 for Windows 64 from http://synopse.info/files/SQLite3-64.7z , which I have been using as a drop-in replacement for the sqlite3.dll distributed with Calibre. The "instr" function works as advertised. Example: CREATE VIEW IF NOT EXISTS _instr_title_author_author_title AS SELECT book, booktitle, authorname FROM _books_work WHERE ( instr(booktitle,authorname) > 0 OR instr(authorname,booktitle) > 0 )

For the Windows 32bit as well as OSX and Linux, http://www.sqlite.org/download.html has the appropriate sqlite3.dll for 2014-08-15 (3.8.6).

The file size of sqlite3.dll that comes with Win 64 Calibre 2.0 is 523kb. The drop-in replacement I am using that is more recent is 547kb; not much difference in size, but a lot of difference is functionality and bug-fixes.

Qt4 was just upgraded to Qt5; could the sqlite3.dll be upgraded too? Please? Pretty Please?

http://www.sqlite.org/download.html
DaltonST is offline   Reply With Quote