From 7eb27dec4d16e9548b17ebc143128b114979924e Mon Sep 17 00:00:00 2001 From: crbelaus Date: Mon, 19 Aug 2024 18:18:50 +0200 Subject: [PATCH] Fix like-search for SQLite3 --- lib/error_tracker/web/live/dashboard.ex | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/error_tracker/web/live/dashboard.ex b/lib/error_tracker/web/live/dashboard.ex index 20d528d..fa5ae41 100644 --- a/lib/error_tracker/web/live/dashboard.ex +++ b/lib/error_tracker/web/live/dashboard.ex @@ -111,6 +111,11 @@ defmodule ErrorTracker.Web.Live.Dashboard do end defp do_filter({field, value}, query) do - where(query, [error], ilike(field(error, ^field), ^"%#{value}%")) + # Postgres provides the ILIKE operator which produces a case-insensitive match between two + # strings. SQLite3 only supports LIKE, which is case-insensitive for ASCII characters. + Repo.with_adapter(fn + :postgres -> where(query, [error], ilike(field(error, ^field), ^"%#{value}%")) + :sqlite -> where(query, [error], like(field(error, ^field), ^"%#{value}%")) + end) end end