Quote:
Originally Posted by knc1
. . . . . . snip . . . . .
And then again...
Maybe it is user error:
http://www.sqlite.org/src/doc/trunk/ext/icu/README.txt
And then again...
So try following the sqlite.org directions, and:
Code:
[root@kindle local]# sqlite3 cc.db
SQLite version 3.7.14.1 2012-10-04 19:37:12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .dump Locale
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE Locale ( locale );
INSERT INTO "Locale" VALUES('en_US.utf8');
COMMIT;
sqlite> SELECT * FROM Locale;
en_US.utf8
sqlite> SELECT icu_load_collation('en_US.utf8', 'icu');
Error: no such function: icu_load_collation
sqlite>
????
Well, the answer to that one happens to be on the first line shown above.
SQLite version 3.7.14.1 2012-10-04 19:37:12
The ability to load a custom collation was first added to sqlite3, version 3.7.16
The current version is 3.21
My Ubuntu LTS has 3.20 installed.
So the most likely situation is the (?contractor?) person at Lab126 is doing all of s/he's work on a PC (with a current or nearly current version) and never checking their work on the Kindle.
Update:
The above was from 5.9.2 -
A similar problem exists on 5.3.7.3 (the oldest ts firmware version we support here).
I.E: The interactive sqlite3 can not delete records from cc.db for the same reason (the extension library might be able to but not the interactive).
|
After a week of handsprings:
Code:
[root@kindle local]# cp -a cc.db cc-test.db
[root@kindle local]# sqlite3 cc-test.db
SQLite version 3.21.0 2017-10-24 18:55:49
Enter ".help" for usage hints.
sqlite> SELECT * FROM Locale;
en_US.utf8
sqlite> SELECT icu_load_collation('en_US.utf8', 'icu');
sqlite> SELECT p_location FROM Entries WHERE p_location LIKE '%KUAL-KDK-2.0.azw2';
/mnt/us/documents/KUAL-KDK-2.0.azw2
sqlite> DELETE FROM Entries WHERE p_location LIKE '%KUAL-KDK-2.0.azw2';
Error: no such function: is_journaling_enabled
sqlite>
???
No idea about that one, fixing it may take minutes or months - one of those 'm' words.
But at least our interactive version of kSQLite3 now understands every possible ICU collation in the world (as of December 13, 2017).