Now that AshPostgres supports `MERGE`, we can finally have `Ash.update_many/4` in
#AshFramework 😎. This allows you to do many row-wise updates each with their own unique input. This differs from `Ash.bulk_update/4` which updates a query or a set of records with *one* set of inputs.
This might not seem that cool, but try hand-rolling this in a re-usable way with all of the various features that Ash supports (atomics, expression-based-updates, lifecycle hooks, etc.) and you'll get it 😂
This can be used for all kinds of purposes, but will soon be used to significantly optimize relationship management logic, i.e updating a to_many relationship with a set of inputs will now be three discrete queries, one to create anything new, one to update anything modified (with `update_many`) and one to remove anything left out.
Take a look at the example code & representative SQL query:
#ElixirLang