PostgreSQL: fix transaction bug that can occur if you call change_column with invalid parameters

[#861 state:resolved]
This commit is contained in:
Miles Georgi
2008-08-17 23:45:25 -07:00
committed by Jeremy Kemper
parent 3a2ff17af6
commit 09343166ac

View File

@@ -761,7 +761,8 @@ module ActiveRecord
begin
execute "ALTER TABLE #{quoted_table_name} ALTER COLUMN #{quote_column_name(column_name)} TYPE #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"
rescue ActiveRecord::StatementInvalid
rescue ActiveRecord::StatementInvalid => e
raise e if postgresql_version > 80000
# This is PostgreSQL 7.x, so we have to use a more arcane way of doing it.
begin
begin_db_transaction