Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7911

Show
Ignore:
Timestamp:
10/15/07 07:40:30 (9 months ago)
Author:
lawrence
Message:

SQL Server Migration: change_column and change_column_default do not escape column names properly. Closes #9537 [lawrence]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • adapters/sqlserver/lib/active_record/connection_adapters/sqlserver_adapter.rb

    r7900 r7911  
    485485       
    486486      def change_column(table_name, column_name, type, options = {}) #:nodoc: 
    487         sql_commands = ["ALTER TABLE #{table_name} ALTER COLUMN #{column_name} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"] 
     487        sql_commands = ["ALTER TABLE #{table_name} ALTER COLUMN #{quote_column_name(column_name)} #{type_to_sql(type, options[:limit], options[:precision], options[:scale])}"] 
    488488        if options_include_default?(options) 
    489489          remove_default_constraint(table_name, column_name) 
    490           sql_commands << "ALTER TABLE #{table_name} ADD CONSTRAINT DF_#{table_name}_#{column_name} DEFAULT #{quote(options[:default], options[:column])} FOR #{column_name}" 
     490          sql_commands << "ALTER TABLE #{table_name} ADD CONSTRAINT DF_#{table_name}_#{column_name} DEFAULT #{quote(options[:default], options[:column])} FOR #{quote_column_name(column_name)}" 
    491491        end 
    492492        sql_commands.each {|c| 
     
    497497      def change_column_default(table_name, column_name, default) 
    498498        remove_default_constraint(table_name, column_name) 
    499         execute "ALTER TABLE #{table_name} ADD CONSTRAINT DF_#{table_name}_#{column_name} DEFAULT #{quote(default, column_name)} FOR #{column_name}"    
     499        execute "ALTER TABLE #{table_name} ADD CONSTRAINT DF_#{table_name}_#{column_name} DEFAULT #{quote(default, column_name)} FOR #{quote_column_name(column_name)}"   
    500500      end 
    501501       
     
    503503        remove_check_constraints(table_name, column_name) 
    504504        remove_default_constraint(table_name, column_name) 
    505         execute "ALTER TABLE [#{table_name}] DROP COLUMN [#{column_name}]
     505        execute "ALTER TABLE [#{table_name}] DROP COLUMN #{quote_column_name(column_name)}
    506506      end 
    507507