aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Neves <arthurnn@gmail.com>2014-07-28 13:07:47 -0400
committerArthur Neves <arthurnn@gmail.com>2014-07-31 15:47:49 -0400
commitdac9c92e3096ae196d7ea4b58e7141f4a36007ea (patch)
treee8b9abf817929bb3e675d32662f77a7babe01ad6
parent91e4b65093f0c485507dadcb018c1f0d2661ba89 (diff)
downloadrails-dac9c92e3096ae196d7ea4b58e7141f4a36007ea.tar.gz
rails-dac9c92e3096ae196d7ea4b58e7141f4a36007ea.tar.bz2
rails-dac9c92e3096ae196d7ea4b58e7141f4a36007ea.zip
Remove parent on Transaction object
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/transaction.rb25
1 files changed, 9 insertions, 16 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
index 1691daf861..17d57a7519 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
@@ -8,7 +8,7 @@ module ActiveRecord
def begin_transaction(options = {})
transaction_class = @stack.empty? ? RealTransaction : SavepointTransaction
- transaction = transaction_class.new(@connection, current_transaction, "active_record_#{@stack.size}", options)
+ transaction = transaction_class.new(@connection, "active_record_#{@stack.size}", options)
@stack.push(transaction)
transaction
@@ -55,17 +55,13 @@ module ActiveRecord
end
class Transaction #:nodoc:
- attr_reader :connection
+ attr_reader :connection, :state
def initialize(connection)
@connection = connection
@state = TransactionState.new
end
- def state
- @state
- end
-
def savepoint_name
nil
end
@@ -120,13 +116,12 @@ module ActiveRecord
end
class OpenTransaction < Transaction #:nodoc:
- attr_reader :parent, :records
+ attr_reader :records
attr_writer :joinable
- def initialize(connection, parent, options = {})
+ def initialize(connection, options = {})
super connection
- @parent = parent
@records = []
@joinable = options.fetch(:joinable, true)
end
@@ -138,12 +133,10 @@ module ActiveRecord
def rollback
perform_rollback
- parent
end
def commit
perform_commit
- parent
end
def add_record(record)
@@ -158,7 +151,7 @@ module ActiveRecord
@state.set_state(:rolledback)
records.uniq.each do |record|
begin
- record.rolledback!(parent.closed?)
+ record.rolledback!(self.is_a?(RealTransaction))
rescue => e
record.logger.error(e) if record.respond_to?(:logger) && record.logger
end
@@ -186,8 +179,8 @@ module ActiveRecord
end
class RealTransaction < OpenTransaction #:nodoc:
- def initialize(connection, parent, _, options = {})
- super(connection, parent, options)
+ def initialize(connection, _, options = {})
+ super(connection, options)
if options[:isolation]
connection.begin_isolated_db_transaction(options[:isolation])
@@ -210,12 +203,12 @@ module ActiveRecord
class SavepointTransaction < OpenTransaction #:nodoc:
attr_reader :savepoint_name
- def initialize(connection, parent, savepoint_name, options = {})
+ def initialize(connection, savepoint_name, options = {})
if options[:isolation]
raise ActiveRecord::TransactionIsolationError, "cannot set transaction isolation in a nested transaction"
end
- super(connection, parent, options)
+ super(connection, options)
connection.create_savepoint(@savepoint_name = savepoint_name)
end