From b58c08150853b8055093dc116d407ffd543f8ec8 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Mon, 30 Oct 2023 15:47:38 +1100 Subject: add locale-aware colation to db indexes --- src/database/include/database.hpp | 8 ++++++-- src/database/include/index.hpp | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src/database/include') diff --git a/src/database/include/database.hpp b/src/database/include/database.hpp index cdf69db0..5eb3a8e9 100644 --- a/src/database/include/database.hpp +++ b/src/database/include/database.hpp @@ -16,6 +16,7 @@ #include #include +#include "collation.hpp" #include "file_gatherer.hpp" #include "index.hpp" #include "leveldb/cache.h" @@ -92,9 +93,10 @@ class Database { ALREADY_OPEN, FAILED_TO_OPEN, }; - static auto Open(IFileGatherer& file_gatherer, ITagParser& tag_parser) + static auto Open(IFileGatherer& file_gatherer, + ITagParser& tag_parser, + locale::ICollator& collator) -> cpp::result; - static auto Open() -> cpp::result; static auto Destroy() -> void; @@ -136,11 +138,13 @@ class Database { // Not owned. IFileGatherer& file_gatherer_; ITagParser& tag_parser_; + locale::ICollator& collator_; Database(leveldb::DB* db, leveldb::Cache* cache, IFileGatherer& file_gatherer, ITagParser& tag_parser, + locale::ICollator& collator, std::shared_ptr worker); auto dbMintNewTrackId() -> TrackId; diff --git a/src/database/include/index.hpp b/src/database/include/index.hpp index 13de952d..15b21ee8 100644 --- a/src/database/include/index.hpp +++ b/src/database/include/index.hpp @@ -13,6 +13,7 @@ #include #include +#include "collation.hpp" #include "leveldb/db.h" #include "leveldb/slice.h" @@ -60,7 +61,7 @@ struct IndexKey { std::optional track; }; -auto Index(const IndexInfo&, const Track&) +auto Index(locale::ICollator&, const IndexInfo&, const Track&) -> std::vector>; auto ExpandHeader(const IndexKey::Header&, -- cgit v1.2.3