diff --git a/lib/ash/data_layer/data_layer.ex b/lib/ash/data_layer/data_layer.ex index ac89078e..94e6a763 100644 --- a/lib/ash/data_layer/data_layer.ex +++ b/lib/ash/data_layer/data_layer.ex @@ -80,6 +80,7 @@ defmodule Ash.DataLayer do | {:aggregate_relationship, Ash.Resource.Relationships.relationship()} | {:query_aggregate, Ash.Query.Aggregate.kind()} | :select + | :expression_calculation_sort | :aggregate_filter | :aggregate_sort | :boolean_filter diff --git a/lib/ash/embeddable_type.ex b/lib/ash/embeddable_type.ex index 68325369..0c8f585d 100644 --- a/lib/ash/embeddable_type.ex +++ b/lib/ash/embeddable_type.ex @@ -478,7 +478,10 @@ defmodule Ash.EmbeddableType do end def handle_change_array(old_values, nil, constraints) do - handle_change_array(old_values, [], constraints) + case handle_change_array(old_values, [], constraints) do + {:ok, []} -> {:ok, nil} + other -> other + end end def handle_change_array(old_values, new_values, constraints) do @@ -522,6 +525,10 @@ defmodule Ash.EmbeddableType do end end + def prepare_change_array(nil, _new_uncasted_values, _constraints) do + {:ok, nil} + end + def prepare_change_array(old_values, new_uncasted_values, constraints) do pkey_fields = Ash.Resource.Info.primary_key(__MODULE__)