aboutsummaryrefslogblamecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract/savepoints.rb
blob: d6dbef3fc8bc6321fc75234a309aee560ed28703 (plain) (tree)
1
2
3
4
5
6
7
8
9

                             

                           
                     



                                          
                                                         
                                                   

         
                                                                   
                                                               


                                                          
                                                           



         
# frozen_string_literal: true

module ActiveRecord
  module ConnectionAdapters
    module Savepoints
      def current_savepoint_name
        current_transaction.savepoint_name
      end

      def create_savepoint(name = current_savepoint_name)
        execute("SAVEPOINT #{name}", "TRANSACTION")
      end

      def exec_rollback_to_savepoint(name = current_savepoint_name)
        execute("ROLLBACK TO SAVEPOINT #{name}", "TRANSACTION")
      end

      def release_savepoint(name = current_savepoint_name)
        execute("RELEASE SAVEPOINT #{name}", "TRANSACTION")
      end
    end
  end
end