Current section

Files

Jump to
query_builder lib query distinct_roots.ex
Raw

lib/query/distinct_roots.ex

defmodule QueryBuilder.Query.DistinctRoots do
@moduledoc false
def distinct_roots(ecto_query, assoc_list) do
root_schema = assoc_list.root_schema
primary_key_fields = root_schema.__schema__(:primary_key)
if primary_key_fields == [] do
raise ArgumentError,
"distinct_roots/1 requires the root schema to have a primary key so it can dedupe roots; " <>
"got schema with no primary key: #{inspect(root_schema)}"
end
QueryBuilder.Query.Distinct.distinct(
ecto_query,
assoc_list,
primary_key_fields
)
end
end