Should mean the same and is indexed.
def fetch_activities_for_context(context) do
query = from activity in Activity,
where: fragment("?->>'type' = ? and ?->>'context' = ?", activity.data, "Create", activity.data, ^context),
- order_by: [desc: :inserted_at]
+ order_by: [desc: :id]
Repo.all(query)
end
query = from activity in Activity,
where: fragment("? @> ?", activity.data, ^%{type: "Follow", actor: follower_id,
object: followed_id}),
- order_by: [desc: :inserted_at],
+ order_by: [desc: :id],
limit: 1
Repo.one(query)
end
query = from activity in Activity,
where: fragment("?->>'actor' = ?", activity.data, ^user.ap_id),
limit: 20,
- order_by: [desc: :inserted_at]
+ order_by: [desc: :id]
activities = query
|> Repo.all