Permalink
Browse files

Don't ignore :precision and :scale when adding columns on postgresql.…

… Closes #6868 [w.piekutowski]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8647 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent b812b23 commit 61e550ade937f812546b6fe561bc5ceb4460b9fb @NZKoz NZKoz committed Jan 16, 2008
@@ -587,13 +587,14 @@ def rename_table(name, new_name)
execute "ALTER TABLE #{name} RENAME TO #{new_name}"
end
- # Adds a column to a table.
+ # Adds a new column to the named table.
+ # See TableDefinition#column for details of the options you can use.
def add_column(table_name, column_name, type, options = {})
default = options[:default]
notnull = options[:null] == false
# Add the column.
- execute("ALTER TABLE #{quote_table_name(table_name)} ADD COLUMN #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit])}")
+ execute("ALTER TABLE #{quote_table_name(table_name)} ADD COLUMN #{quoted_column_name} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}")
change_column_default(table_name, column_name, default) if options_include_default?(options)
change_column_null(table_name, column_name, false, default) if notnull
@@ -268,6 +268,15 @@ def test_native_decimal_insert_manual_vs_automatic
Person.reset_column_information
end
+ def test_add_column_with_precision_and_scale
+ Person.connection.add_column 'people', 'wealth', :decimal, :precision => 9, :scale => 7
+ Person.reset_column_information
+
+ wealth_column = Person.columns_hash['wealth']
+ assert_equal 9, wealth_column.precision
+ assert_equal 7, wealth_column.scale
+ end
+
def test_native_types
Person.delete_all
Person.connection.add_column "people", "last_name", :string

0 comments on commit 61e550a

Please sign in to comment.