Revert "PostgreSQL: introduce transaction_active? rather than tracking activity ourselves"

This commit conflicts with savepoint support.

This reverts commit 045713ee24.

Conflicts:

	activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
This commit is contained in:
Hongli Lai (Phusion)
2008-10-09 14:47:43 +02:00
parent f48703e8c6
commit e383835e73

View File

@@ -529,44 +529,6 @@ module ActiveRecord
execute "ROLLBACK"
end
# ruby-pg defines Ruby constants for transaction status,
# ruby-postgres does not.
PQTRANS_IDLE = defined?(PGconn::PQTRANS_IDLE) ? PGconn::PQTRANS_IDLE : 0
# Check whether a transaction is active.
def transaction_active?
@connection.transaction_status != PQTRANS_IDLE
end
# Wrap a block in a transaction. Returns result of block.
def transaction(start_db_transaction = true)
transaction_open = false
begin
if block_given?
if start_db_transaction
begin_db_transaction
transaction_open = true
end
yield
end
rescue Exception => database_transaction_rollback
if transaction_open && transaction_active?
transaction_open = false
rollback_db_transaction
end
raise unless database_transaction_rollback.is_a? ActiveRecord::Rollback
end
ensure
if transaction_open && transaction_active?
begin
commit_db_transaction
rescue Exception => database_transaction_rollback
rollback_db_transaction
raise
end
end
end
def create_savepoint
execute("SAVEPOINT #{current_savepoint_name}")
end