@@ -644,8 +644,11 @@ defmodule AshPostgres.DataLayer do
644644 def can? ( _ , :transact ) , do: true
645645 def can? ( _ , :composite_primary_key ) , do: true
646646
647- def can? ( _resource , { :atomic , :update } ) , do: true
648- def can? ( _resource , { :atomic , :upsert } ) , do: true
647+ def can? ( resource , { :atomic , :update } ) ,
648+ do: not AshPostgres.DataLayer.Info . repo ( resource , :mutate ) . disable_atomic_actions? ( )
649+
650+ def can? ( resource , { :atomic , :upsert } ) ,
651+ do: not AshPostgres.DataLayer.Info . repo ( resource , :mutate ) . disable_atomic_actions? ( )
649652
650653 def can? ( _ , :upsert ) , do: true
651654 def can? ( _ , :changeset_filter ) , do: true
@@ -709,10 +712,13 @@ defmodule AshPostgres.DataLayer do
709712 def can? ( _ , { :aggregate_relationship , _ } ) , do: true
710713
711714 def can? ( _ , :timeout ) , do: true
712- def can? ( _ , :expr_error ) , do: true
715+
716+ def can? ( resource , :expr_error ) ,
717+ do: not AshPostgres.DataLayer.Info . repo ( resource , :mutate ) . disable_expr_error? ( )
713718
714719 def can? ( resource , { :filter_expr , % Ash.Query.Function.Error { } } ) do
715- "ash-functions" in AshPostgres.DataLayer.Info . repo ( resource , :read ) . installed_extensions ( ) &&
720+ not AshPostgres.DataLayer.Info . repo ( resource , :mutate ) . disable_expr_error? ( ) &&
721+ "ash-functions" in AshPostgres.DataLayer.Info . repo ( resource , :read ) . installed_extensions ( ) &&
716722 "ash-functions" in AshPostgres.DataLayer.Info . repo ( resource , :mutate ) . installed_extensions ( )
717723 end
718724
0 commit comments