Asking for help! I’m struggling with a left join merge with a virtual src
field coming from another join:
|> select([cs, f, c, s], %{f.fragment_name => %{c | src: s.src}})
returning
* (BadMapError) expected a map, got: nil
(ecto 3.10.2) lib/ecto/repo/queryable.ex:391: anonymous fn/2 in Ecto.Repo.Queryable.process_update/5
(elixir 1.14.4) lib/enum.ex:2468: Enum."-reduce/3-lists^foldl/2-0-"/3
(ecto 3.10.2) lib/ecto/repo/queryable.ex:391: Ecto.Repo.Queryable.process_update/5
(ecto 3.10.2) lib/ecto/repo/queryable.ex:404: anonymous fn/4 in Ecto.Repo.Queryable.process_kv/4
(elixir 1.14.4) lib/enum.ex:1780: Enum."-map_reduce/3-lists^mapfoldl/2-0-"/3
(ecto 3.10.2) lib/ecto/repo/queryable.ex:363: Ecto.Repo.Queryable.process/4
(ecto 3.10.2) lib/ecto/repo/queryable.ex:283: anonymous fn/3 in Ecto.Repo.Queryable.postprocessor/4
(elixir 1.14.4) lib/enum.ex:1658: Enum."-map/2-lists^map/1-0-"/2
(ecto 3.10.2) lib/ecto/repo/queryable.ex:235: Ecto.Repo.Queryable.execute/4
(ecto 3.10.2) lib/ecto/repo/queryable.ex:19: Ecto.Repo.Queryable.all/3
I understand it’s coming from c
being nil
sometimes. How would I get %{c | src: s.src}
for non-nil and nil
for all the rest cases?