Use unicode extension to normalize sorting accented records
This commit is contained in:
@@ -52,7 +52,7 @@ defmodule MusicLibrary.Records do
|
|||||||
initial_search
|
initial_search
|
||||||
|> order_by(
|
|> order_by(
|
||||||
fragment(
|
fragment(
|
||||||
"json_extract(artists, '$[0].sort_name') COLLATE NOCASE ASC, title COLLATE NOCASE ASC"
|
"unaccent(json_extract(artists, '$[0].sort_name')) COLLATE NOCASE ASC, unaccent(title) COLLATE NOCASE ASC"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+15
-12
@@ -11,26 +11,29 @@ defmodule MusicLibrary.Repo do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def extension_path(name) do
|
def extension_path(name) do
|
||||||
[arch | _rest] = :erlang.system_info(:system_architecture)
|
[arch | _rest] =
|
||||||
|
:erlang.system_info(:system_architecture)
|
||||||
|> List.to_string()
|
|> List.to_string()
|
||||||
|> String.split("-")
|
|> String.split("-")
|
||||||
|
|
||||||
{_, os} = :os.type()
|
{_, os} = :os.type()
|
||||||
|
|
||||||
platform = case {os, arch} do
|
platform =
|
||||||
{:darwin, "x86_64"} -> "darwin-amd64"
|
case {os, arch} do
|
||||||
{:darwin, "aarch64"} -> "darwin-aarch64"
|
{:darwin, "x86_64"} -> "darwin-amd64"
|
||||||
{:linux, "x86_64"} -> "linux-amd64"
|
{:darwin, "aarch64"} -> "darwin-aarch64"
|
||||||
_other -> raise "Unsupported OS or platform"
|
{:linux, "x86_64"} -> "linux-amd64"
|
||||||
end
|
_other -> raise "Unsupported OS or platform"
|
||||||
|
end
|
||||||
|
|
||||||
extension = case os do
|
extension =
|
||||||
:darwin -> "dylib"
|
case os do
|
||||||
:linux -> "so"
|
:darwin -> "dylib"
|
||||||
end
|
:linux -> "so"
|
||||||
|
end
|
||||||
|
|
||||||
Path.join([
|
Path.join([
|
||||||
:code.priv_dir(:music_library),
|
:code.priv_dir(:music_library),
|
||||||
"sqlite_extensions",
|
"sqlite_extensions",
|
||||||
platform,
|
platform,
|
||||||
"#{name}.#{extension}"
|
"#{name}.#{extension}"
|
||||||
|
|||||||
Reference in New Issue
Block a user