aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters
diff options
context:
space:
mode:
authorArthur Nogueira Neves <arthurnn@gmail.com>2015-02-24 19:25:11 -0500
committerArthur Nogueira Neves <arthurnn@gmail.com>2015-02-24 19:25:11 -0500
commit27ce16aa9b348f32d866a697e1dd6cb061ce0ed2 (patch)
treeb0676474e5a8018f31233de49a6415dd61edfadf /activerecord/lib/active_record/connection_adapters
parentf4bee7ecbfd664a9268ae8a6cdf3deabf0ed74e4 (diff)
parent45755135fe9669d1ba3c8567c517559a6a291304 (diff)
downloadrails-27ce16aa9b348f32d866a697e1dd6cb061ce0ed2.tar.gz
rails-27ce16aa9b348f32d866a697e1dd6cb061ce0ed2.tar.bz2
rails-27ce16aa9b348f32d866a697e1dd6cb061ce0ed2.zip
Merge pull request #18936 from arthurnn/txn_callbacks
Spike on new transaction callbacks
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/transaction.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
index 11440e30d4..3a1e4a4a88 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb
@@ -77,6 +77,10 @@ module ActiveRecord
@state.set_state(:committed)
end
+ def before_commit_records
+ records.uniq.each(&:before_committed!)
+ end
+
def commit_records
ite = records.uniq
while record = ite.shift
@@ -159,13 +163,15 @@ module ActiveRecord
def commit_transaction
inner_transaction = @stack.pop
- inner_transaction.commit
if current_transaction.joinable?
+ inner_transaction.commit
inner_transaction.records.each do |r|
r.add_to_transaction
end
else
+ inner_transaction.before_commit_records
+ inner_transaction.commit
inner_transaction.commit_records
end
end