summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-11-20 16:26:43 +0100
committerlain <lain@soykaf.club>2020-11-20 16:26:43 +0100
commit9a1e5f5d48ef9f3b5a817c02dc8820aa99a6f693 (patch)
treec07748b60b4a6795dbfdb354af71f8e723505496
parenta407e33c78121abf880f257d291f45ed28b55eeb (diff)
Search: Change search method based on detected pg version
-rw-r--r--lib/pleroma/activity/search.ex7
-rw-r--r--test/pleroma/activity/search_test.exs9
2 files changed, 11 insertions, 5 deletions
diff --git a/lib/pleroma/activity/search.ex b/lib/pleroma/activity/search.ex
index cc98e2d06..ea9783225 100644
--- a/lib/pleroma/activity/search.ex
+++ b/lib/pleroma/activity/search.ex
@@ -19,7 +19,12 @@ defmodule Pleroma.Activity.Search do
offset = Keyword.get(options, :offset, 0)
author = Keyword.get(options, :author)
- search_function = Pleroma.Config.get([:instance, :search_function], :plain)
+ search_function =
+ if Application.get_env(:postgres, :version) >= 11 do
+ :websearch
+ else
+ :plain
+ end
Activity
|> Activity.with_preloaded_object()
diff --git a/test/pleroma/activity/search_test.exs b/test/pleroma/activity/search_test.exs
index 15591b726..37c0feeea 100644
--- a/test/pleroma/activity/search_test.exs
+++ b/test/pleroma/activity/search_test.exs
@@ -18,8 +18,9 @@ defmodule Pleroma.Activity.SearchTest do
assert result.id == post.id
end
- test "using plainto_tsquery" do
- clear_config([:instance, :search_function], :plain)
+ test "using plainto_tsquery on postgres < 11" do
+ old_config = Application.get_env(:postgres, :version)
+ Application.put_env(:postgres, :version, 10.0)
user = insert(:user)
{:ok, post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"})
@@ -29,11 +30,11 @@ defmodule Pleroma.Activity.SearchTest do
assert [result] = Search.search(nil, "wednesday -dudes")
assert result.id == post.id
+
+ Application.put_env(:postgres, :version, old_config)
end
test "using websearch_to_tsquery" do
- clear_config([:instance, :search_function], :websearch)
-
user = insert(:user)
{:ok, _post} = CommonAPI.post(user, %{status: "it's wednesday my dudes"})
{:ok, other_post} = CommonAPI.post(user, %{status: "it's wednesday my bros"})