fix: don't clean calc deps that may need to be reused

This commit is contained in:
Zach Daniel 2024-09-03 19:00:28 -04:00
parent 3c90063c40
commit 82230f1a89

View file

@ -518,11 +518,7 @@ defmodule Ash.Actions.Read.Calculations do
record record
record -> record ->
{new_val, calculations} = Map.pop(record.calculations, source) Map.put(record, to_load, Map.get(record.calculations, source))
record
|> Map.put(to_load, new_val)
|> Map.put(:calculations, calculations)
end end
end) end)
else else
@ -538,11 +534,11 @@ defmodule Ash.Actions.Read.Calculations do
record record
record -> record ->
{new_val, calculations} = Map.pop(record.calculations, source) Map.update!(
record,
record :calculations,
|> Map.update!(:calculations, &Map.put(&1, to_name, new_val)) &Map.put(&1, to_name, Map.get(record.calculations, source))
|> Map.put(:calculations, calculations) )
end end
end) end)
end end
@ -561,11 +557,7 @@ defmodule Ash.Actions.Read.Calculations do
record record
record -> record ->
{new_val, aggregates} = Map.pop(record.aggregates, source) Map.put(record, to_load, Map.get(record.aggregates, source))
record
|> Map.put(to_load, new_val)
|> Map.put(:aggregates, aggregates)
end end
end) end)
else else
@ -581,11 +573,11 @@ defmodule Ash.Actions.Read.Calculations do
record record
record -> record ->
{new_val, aggregates} = Map.pop(record.aggregates, source) Map.update!(
record,
record :aggregates,
|> Map.update!(:aggregates, &Map.put(&1, to_name, new_val)) &Map.put(&1, to_name, Map.get(record.aggregates, source))
|> Map.put(:aggregates, aggregates) )
end end
end) end)
end end
@ -593,11 +585,7 @@ defmodule Ash.Actions.Read.Calculations do
{{path, {:rel, rel_name}, _, _}, source}, records -> {{path, {:rel, rel_name}, _, _}, source}, records ->
records records
|> update_at_path(path, fn record -> |> update_at_path(path, fn record ->
{new_val, calculations} = Map.pop(record.calculations, source) Map.put(record, rel_name, Map.get(record.calculations, source))
record
|> Map.put(rel_name, new_val)
|> Map.put(:calculations, calculations)
end) end)
end) end)
end end