diff --git a/resources/metadata_sqlite.sql b/resources/metadata_sqlite.sql index d320fa767f..45d8f26085 100644 --- a/resources/metadata_sqlite.sql +++ b/resources/metadata_sqlite.sql @@ -539,11 +539,11 @@ CREATE TRIGGER fkc_update_books_tags_link_b CREATE TRIGGER series_insert_trg AFTER INSERT ON series BEGIN - UPDATE series SET sort=NEW.name WHERE id=NEW.id; + UPDATE series SET sort=title_sort(NEW.name) WHERE id=NEW.id; END; CREATE TRIGGER series_update_trg AFTER UPDATE ON series BEGIN - UPDATE series SET sort=NEW.name WHERE id=NEW.id; + UPDATE series SET sort=title_sort(NEW.name) WHERE id=NEW.id; END; -pragma user_version=21; +pragma user_version=22; diff --git a/src/calibre/db/schema_upgrades.py b/src/calibre/db/schema_upgrades.py index 902ade4b97..bfa9c5bc83 100644 --- a/src/calibre/db/schema_upgrades.py +++ b/src/calibre/db/schema_upgrades.py @@ -615,3 +615,28 @@ class SchemaUpgrade(object): self.db.execute(script) + def upgrade_version_21(self): + ''' + Write the series sort into the existing sort column in the series table + ''' + + script = ''' + DROP TRIGGER IF EXISTS series_insert_trg; + DROP TRIGGER IF EXISTS series_update_trg; + + UPDATE series SET sort=title_sort(name); + + CREATE TRIGGER series_insert_trg + AFTER INSERT ON series + BEGIN + UPDATE series SET sort=title_sort(NEW.name) WHERE id=NEW.id; + END; + + CREATE TRIGGER series_update_trg + AFTER UPDATE ON series + BEGIN + UPDATE series SET sort=title_sort(NEW.name) WHERE id=NEW.id; + END; + ''' + self.db.execute(script) +