diff options
author | kaniini <nenolod@gmail.com> | 2019-02-05 20:27:31 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-02-05 20:27:31 +0000 |
commit | d120aa63f0b2e688b292af5a9afe45ab45c8e10b (patch) | |
tree | ccd2523bd439695ca75f355904375b979029e3ac | |
parent | 681ba1e52f3ef27eb6b2407dfe85939714f67925 (diff) | |
parent | f3c8b02d65f6abc8263c73c10c9028606bfe6894 (diff) | |
download | pleroma-d120aa63f0b2e688b292af5a9afe45ab45c8e10b.tar.gz |
Merge branch 'fix-dm-index' into 'develop'
Massage index until it actually does the stuff we want.
See merge request pleroma/pleroma!772
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 2 | ||||
-rw-r--r-- | priv/repo/migrations/20190204200237_add_correct_dm_index.exs | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 4635e7fcd..b33912721 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -521,7 +521,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do defp restrict_actor(query, _), do: query defp restrict_type(query, %{"type" => type}) when is_binary(type) do - restrict_type(query, %{"type" => [type]}) + from(activity in query, where: fragment("?->>'type' = ?", activity.data, ^type)) end defp restrict_type(query, %{"type" => type}) do diff --git a/priv/repo/migrations/20190204200237_add_correct_dm_index.exs b/priv/repo/migrations/20190204200237_add_correct_dm_index.exs new file mode 100644 index 000000000..558732cd2 --- /dev/null +++ b/priv/repo/migrations/20190204200237_add_correct_dm_index.exs @@ -0,0 +1,30 @@ +defmodule Pleroma.Repo.Migrations.AddCorrectDMIndex do + use Ecto.Migration + @disable_ddl_transaction true + + def up do + drop_if_exists( + index(:activities, ["activity_visibility(actor, recipients, data)"], + name: :activities_visibility_index + ) + ) + + create( + index(:activities, ["activity_visibility(actor, recipients, data)", "id DESC NULLS LAST"], + name: :activities_visibility_index, + concurrently: true, + where: "data->>'type' = 'Create'" + ) + ) + end + + def down do + drop( + index(:activities, ["activity_visibility(actor, recipients, data)", "id DESC"], + name: :activities_visibility_index, + concurrently: true, + where: "data->>'type' = 'Create'" + ) + ) + end +end |