Method: ActiveRecord::ConnectionAdapters::IBM_DB2_I5#change_column_null

Defined in:
lib/active_record/connection_adapters/ibm_db_adapter.rb

#change_column_null(table_name, column_name, null, default) ⇒ Object



3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3334

def change_column_null(table_name, column_name, null, default)
  if null && !default.nil?
    change_column_default(table_name, column_name, default)
  end 

  if !null.nil?
    if null
      change_column_sql = "ALTER TABLE #{table_name} ALTER #{column_name} DROP NOT NULL"
    else
      change_column_sql = "ALTER TABLE #{table_name} ALTER #{column_name} SET NOT NULL with DEFAULT #{default}"
    end
    stmt = execute_and_auto_confirm (change_column_sql)
    reorg_table(table_name)
  end

  ensure
    IBM_DB.free_stmt(stmt) if stmt
end