ExSlop.Check.Warning.RepoAllThenFilter (ExSlop v0.4.0)

Copy Markdown View Source

Basics

This check is disabled by default.

Learn how to enable it via .credo.exs.

This check has a base priority of high and works with any version of Elixir.

Explanation

Repo.all(Schema) |> Enum.filter(...) loads every record into memory then filters in Elixir. Use Ecto query conditions instead.

# bad — loads all users then filters
Repo.all(User) |> Enum.filter(& &1.active)

# good — filters at the database
User |> where(active: true) |> Repo.all()

Check-Specific Parameters

There are no specific parameters for this check.

General Parameters

Like with all checks, general params can be applied.

Parameters can be configured via the .credo.exs config file.