Fixed results inconsistencies when using search3

This commit is contained in:
emeric
2024-04-19 08:56:48 +02:00
parent 38d0115069
commit 697233dcef
10 changed files with 29 additions and 14 deletions
+5 -2
View File
@@ -133,10 +133,13 @@ namespace lms::db
{
case ArtistSortMethod::None:
break;
case ArtistSortMethod::ByName:
case ArtistSortMethod::Id:
query.orderBy("a.id");
break;
case ArtistSortMethod::Name:
query.orderBy("a.name COLLATE NOCASE");
break;
case ArtistSortMethod::BySortName:
case ArtistSortMethod::SortName:
query.orderBy("a.sort_name COLLATE NOCASE");
break;
case ArtistSortMethod::Random:
+3
View File
@@ -168,6 +168,9 @@ namespace lms::db
{
case ReleaseSortMethod::None:
break;
case ReleaseSortMethod::Id:
query.orderBy("r.id");
break;
case ReleaseSortMethod::Name:
query.orderBy("r.name COLLATE NOCASE");
break;
+3
View File
@@ -153,6 +153,9 @@ namespace lms::db
{
case TrackSortMethod::None:
break;
case TrackSortMethod::Id:
query.orderBy("t.id");
break;
case TrackSortMethod::LastWritten:
query.orderBy("t.file_last_write DESC");
break;
+5 -2
View File
@@ -108,8 +108,9 @@ namespace lms::db
enum class ArtistSortMethod
{
None,
ByName,
BySortName,
Id,
Name,
SortName,
Random,
LastWritten,
StarredDateDesc,
@@ -118,6 +119,7 @@ namespace lms::db
enum class ReleaseSortMethod
{
None,
Id,
Name,
ArtistNameThenName,
Date,
@@ -138,6 +140,7 @@ namespace lms::db
enum class TrackSortMethod
{
None,
Id,
Random,
LastWritten,
StarredDateDesc,
+5 -5
View File
@@ -588,21 +588,21 @@ namespace lms::db::tests
}
{
const auto artists{ Artist::findIds(session, Artist::FindParameters {}.setKeywords({"MyArtist%"}).setSortMethod(ArtistSortMethod::ByName)) };
const auto artists{ Artist::findIds(session, Artist::FindParameters {}.setKeywords({"MyArtist%"}).setSortMethod(ArtistSortMethod::Name)) };
ASSERT_EQ(artists.results.size(), 2);
EXPECT_EQ(artists.results[0], artist1.getId());
EXPECT_EQ(artists.results[1], artist4.getId());
}
{
const auto artists{ Artist::findIds(session, Artist::FindParameters {}.setKeywords({"%MyArtist"}).setSortMethod(ArtistSortMethod::ByName)) };
const auto artists{ Artist::findIds(session, Artist::FindParameters {}.setKeywords({"%MyArtist"}).setSortMethod(ArtistSortMethod::Name)) };
ASSERT_EQ(artists.results.size(), 2);
EXPECT_EQ(artists.results[0], artist2.getId());
EXPECT_EQ(artists.results[1], artist5.getId());
}
{
const auto artists{ Artist::findIds(session, Artist::FindParameters {}.setKeywords({"_MyArtist"}).setSortMethod(ArtistSortMethod::ByName)) };
const auto artists{ Artist::findIds(session, Artist::FindParameters {}.setKeywords({"_MyArtist"}).setSortMethod(ArtistSortMethod::Name)) };
ASSERT_EQ(artists.results.size(), 1);
EXPECT_EQ(artists.results[0], artist3.getId());
}
@@ -624,8 +624,8 @@ namespace lms::db::tests
{
auto transaction{ session.createReadTransaction() };
auto allArtistsByName{ Artist::findIds(session, Artist::FindParameters {}.setSortMethod(ArtistSortMethod::ByName)) };
auto allArtistsBySortName{ Artist::findIds(session, Artist::FindParameters {}.setSortMethod(ArtistSortMethod::BySortName)) };
auto allArtistsByName{ Artist::findIds(session, Artist::FindParameters {}.setSortMethod(ArtistSortMethod::Name)) };
auto allArtistsBySortName{ Artist::findIds(session, Artist::FindParameters {}.setSortMethod(ArtistSortMethod::SortName)) };
ASSERT_EQ(allArtistsByName.results.size(), 2);
EXPECT_EQ(allArtistsByName.results.front(), artistA.getId());