4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/active_record/turntable/active_record_ext/transactions.rb', line 4
def with_transaction_returning_status
if self.class.turntable_enabled?
status = nil
if self.new_record? and self.turntable_shard_key.to_s == self.class.primary_key and
self.id.nil? and connection.prefetch_primary_key?(self.class.table_name)
self.id = connection.next_sequence_value(self.class.sequence_name)
end
self.class.connection.shards_transaction([self.turntable_shard]) do
add_to_transaction
status = yield
raise ActiveRecord::Rollback unless status
end
status
else
super
end
end
|