From 82230f1a896a0efb9e123e37799d52898f78d1fe Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Tue, 3 Sep 2024 19:00:28 -0400 Subject: [PATCH] fix: don't clean calc deps that may need to be reused --- lib/ash/actions/read/calculations.ex | 38 ++++++++++------------------ 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/lib/ash/actions/read/calculations.ex b/lib/ash/actions/read/calculations.ex index 436111a0..ec96d1c0 100644 --- a/lib/ash/actions/read/calculations.ex +++ b/lib/ash/actions/read/calculations.ex @@ -518,11 +518,7 @@ defmodule Ash.Actions.Read.Calculations do record record -> - {new_val, calculations} = Map.pop(record.calculations, source) - - record - |> Map.put(to_load, new_val) - |> Map.put(:calculations, calculations) + Map.put(record, to_load, Map.get(record.calculations, source)) end end) else @@ -538,11 +534,11 @@ defmodule Ash.Actions.Read.Calculations do record record -> - {new_val, calculations} = Map.pop(record.calculations, source) - - record - |> Map.update!(:calculations, &Map.put(&1, to_name, new_val)) - |> Map.put(:calculations, calculations) + Map.update!( + record, + :calculations, + &Map.put(&1, to_name, Map.get(record.calculations, source)) + ) end end) end @@ -561,11 +557,7 @@ defmodule Ash.Actions.Read.Calculations do record record -> - {new_val, aggregates} = Map.pop(record.aggregates, source) - - record - |> Map.put(to_load, new_val) - |> Map.put(:aggregates, aggregates) + Map.put(record, to_load, Map.get(record.aggregates, source)) end end) else @@ -581,11 +573,11 @@ defmodule Ash.Actions.Read.Calculations do record record -> - {new_val, aggregates} = Map.pop(record.aggregates, source) - - record - |> Map.update!(:aggregates, &Map.put(&1, to_name, new_val)) - |> Map.put(:aggregates, aggregates) + Map.update!( + record, + :aggregates, + &Map.put(&1, to_name, Map.get(record.aggregates, source)) + ) end end) end @@ -593,11 +585,7 @@ defmodule Ash.Actions.Read.Calculations do {{path, {:rel, rel_name}, _, _}, source}, records -> records |> update_at_path(path, fn record -> - {new_val, calculations} = Map.pop(record.calculations, source) - - record - |> Map.put(rel_name, new_val) - |> Map.put(:calculations, calculations) + Map.put(record, rel_name, Map.get(record.calculations, source)) end) end) end