~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_table.cc

  • Committer: Padraig O'Sullivan
  • Date: 2009-07-08 05:17:48 UTC
  • mto: (1089.3.4 merge)
  • mto: This revision was merged to the branch mainline in revision 1092.
  • Revision ID: osullivan.padraig@gmail.com-20090708051748-divjj0ls5islzb7b
Modified the flags member of the Alter_info class to be std::bitset instead
of uint32_t

Show diffs side-by-side

added added

removed removed

Lines of Context:
2613
2613
  local_create_info.db_type= schema_table->table->s->db_type();
2614
2614
  local_create_info.row_type= schema_table->table->s->row_type;
2615
2615
  local_create_info.default_table_charset=default_charset_info;
2616
 
  alter_info.flags= (ALTER_CHANGE_COLUMN | ALTER_RECREATE);
 
2616
  alter_info.flags.set(ALTER_CHANGE_COLUMN);
 
2617
  alter_info.flags.set(ALTER_RECREATE);
2617
2618
  schema_table->table->use_all_columns();
2618
2619
  if (mysql_prepare_alter_table(session, schema_table->table,
2619
2620
                                &local_create_info, &alter_info))
2946
2947
 
2947
2948
void setup_ha_alter_flags(Alter_info *alter_info, HA_ALTER_FLAGS *alter_flags)
2948
2949
{
2949
 
  uint32_t flags= alter_info->flags;
2950
 
 
2951
 
  if (ALTER_ADD_COLUMN & flags)
 
2950
  if (alter_info->flags.test(ALTER_ADD_COLUMN))
2952
2951
    alter_flags->set(HA_ADD_COLUMN);
2953
 
  if (ALTER_DROP_COLUMN & flags)
 
2952
  if (alter_info->flags.test(ALTER_DROP_COLUMN))
2954
2953
    alter_flags->set(HA_DROP_COLUMN);
2955
 
  if (ALTER_RENAME & flags)
 
2954
  if (alter_info->flags.test(ALTER_RENAME))
2956
2955
    alter_flags->set(HA_RENAME_TABLE);
2957
 
  if (ALTER_CHANGE_COLUMN & flags)
 
2956
  if (alter_info->flags.test(ALTER_CHANGE_COLUMN))
2958
2957
    alter_flags->set(HA_CHANGE_COLUMN);
2959
 
  if (ALTER_COLUMN_DEFAULT & flags)
 
2958
  if (alter_info->flags.test(ALTER_COLUMN_DEFAULT))
2960
2959
    alter_flags->set(HA_COLUMN_DEFAULT_VALUE);
2961
 
  if (ALTER_COLUMN_STORAGE & flags)
 
2960
  if (alter_info->flags.test(ALTER_COLUMN_STORAGE))
2962
2961
    alter_flags->set(HA_COLUMN_STORAGE);
2963
 
  if (ALTER_COLUMN_FORMAT & flags)
 
2962
  if (alter_info->flags.test(ALTER_COLUMN_FORMAT))
2964
2963
    alter_flags->set(HA_COLUMN_FORMAT);
2965
 
  if (ALTER_COLUMN_ORDER & flags)
 
2964
  if (alter_info->flags.test(ALTER_COLUMN_ORDER))
2966
2965
    alter_flags->set(HA_ALTER_COLUMN_ORDER);
2967
 
  if (ALTER_STORAGE & flags)
 
2966
  if (alter_info->flags.test(ALTER_STORAGE))
2968
2967
    alter_flags->set(HA_ALTER_STORAGE);
2969
 
  if (ALTER_ROW_FORMAT & flags)
 
2968
  if (alter_info->flags.test(ALTER_ROW_FORMAT))
2970
2969
    alter_flags->set(HA_ALTER_ROW_FORMAT);
2971
 
  if (ALTER_RECREATE & flags)
 
2970
  if (alter_info->flags.test(ALTER_RECREATE))
2972
2971
    alter_flags->set(HA_RECREATE);
2973
 
  if (ALTER_FOREIGN_KEY & flags)
 
2972
  if (alter_info->flags.test(ALTER_FOREIGN_KEY))
2974
2973
    alter_flags->set(HA_ALTER_FOREIGN_KEY);
2975
2974
}
2976
2975
 
3557
3556
  char path[FN_REFLEN];
3558
3557
  ha_rows copied= 0,deleted= 0;
3559
3558
  StorageEngine *old_db_type, *new_db_type, *save_old_db_type;
 
3559
  bitset<32> tmp;
3560
3560
 
3561
3561
  new_name_buff[0]= '\0';
3562
3562
 
3695
3695
  }
3696
3696
 
3697
3697
  session->set_proc_info("setup");
3698
 
  if (!(alter_info->flags & ~(ALTER_RENAME | ALTER_KEYS_ONOFF)) &&
3699
 
      !table->s->tmp_table) // no need to touch frm
 
3698
  /*
 
3699
   * test if no other bits except ALTER_RENAME and ALTER_KEYS_ONOFF are set
 
3700
   */
 
3701
  tmp.set();
 
3702
  tmp.reset(ALTER_RENAME);
 
3703
  tmp.reset(ALTER_KEYS_ONOFF);
 
3704
  tmp&= alter_info->flags;
 
3705
  if (! (tmp.any()) &&
 
3706
      ! table->s->tmp_table) // no need to touch frm
3700
3707
  {
3701
3708
    switch (alter_info->keys_onoff) {
3702
3709
    case LEAVE_AS_IS:
4338
4345
  create_info.row_type=ROW_TYPE_NOT_USED;
4339
4346
  create_info.default_table_charset=default_charset_info;
4340
4347
  /* Force alter table to recreate table */
4341
 
  alter_info.flags= (ALTER_CHANGE_COLUMN | ALTER_RECREATE);
 
4348
  alter_info.flags.set(ALTER_CHANGE_COLUMN);
 
4349
  alter_info.flags.set(ALTER_RECREATE);
4342
4350
  return(mysql_alter_table(session, NULL, NULL, &create_info,
4343
4351
                                table_list, &alter_info, 0,
4344
4352
                                (order_st *) 0, 0));