class DataObjects::SavePoint

Public Class Methods

create_for_uri(uri, connection) click to toggle source

We don't bounce through DO::<Adapter/scheme>::SavePoint because there doesn't appear to be any custom SQL to support this.

# File lib/data_objects/transaction.rb, line 70
def self.create_for_uri(uri, connection)
  uri = uri.is_a?(String) ? URI::parse(uri) : uri
  DataObjects::SavePoint.new(uri, connection)
end

Public Instance Methods

begin() click to toggle source
# File lib/data_objects/transaction.rb, line 84
def begin
  run %Q{SAVEPOINT "#{@id}"}
end
close() click to toggle source

SavePoints can only occur in the context of a Transaction, thus they re-use TXN's connection (which was acquired from the connection pool legitimately via DO::Connection.new). We no-op close in SP because calling DO::Connection#close will release the connection back into the pool (before the top-level Transaction might be done with it).

# File lib/data_objects/transaction.rb, line 80
def close
    # no-op
end
commit() click to toggle source
# File lib/data_objects/transaction.rb, line 88
def commit
  run %Q{RELEASE SAVEPOINT "#{@id}"}
end
rollback() click to toggle source
# File lib/data_objects/transaction.rb, line 92
def rollback
  run %Q{ROLLBACK TO SAVEPOINT "#{@id}"}
end