~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table.cc

  • Committer: Eric Day
  • Date: 2010-03-25 19:28:37 UTC
  • mfrom: (1405 staging)
  • mto: This revision was merged to the branch mainline in revision 1409.
  • Revision ID: eday@oddments.org-20100325192837-4exmacbrywjovsqp
Merged trunk, rsolved conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
512
512
      break;
513
513
    case DRIZZLE_TYPE_ENUM:
514
514
      {
515
 
        message::Table::Field::SetFieldOptions field_options= pfield.set_options();
 
515
        message::Table::Field::EnumerationValues field_options= pfield.enumeration_values();
516
516
 
517
517
        field_pack_length[fieldnr]=
518
518
          get_enum_pack_length(field_options.field_value_size());
614
614
    if (pfield.type() != message::Table::Field::ENUM)
615
615
      continue;
616
616
 
617
 
    message::Table::Field::SetFieldOptions field_options= pfield.set_options();
 
617
    message::Table::Field::EnumerationValues field_options= pfield.enumeration_values();
618
618
 
619
619
    const CHARSET_INFO *charset= get_charset(field_options.has_collation_id() ?
620
620
                                             field_options.collation_id() : 0);
761
761
 
762
762
    if (field_type == DRIZZLE_TYPE_ENUM)
763
763
    {
764
 
      message::Table::Field::SetFieldOptions field_options= pfield.set_options();
 
764
      message::Table::Field::EnumerationValues field_options= pfield.enumeration_values();
765
765
 
766
766
      charset= get_charset(field_options.has_collation_id()?
767
767
                           field_options.collation_id() : 0);
873
873
    {
874
874
      field_length= 0;
875
875
 
876
 
      message::Table::Field::SetFieldOptions fo= pfield.set_options();
 
876
      message::Table::Field::EnumerationValues fo= pfield.enumeration_values();
877
877
 
878
 
      for(int valnr= 0; valnr < fo.field_value_size(); valnr++)
 
878
      for (int valnr= 0; valnr < fo.field_value_size(); valnr++)
879
879
      {
880
880
        if (fo.field_value(valnr).length() > field_length)
 
881
        {
881
882
          field_length= charset->cset->numchars(charset,
882
883
                                                fo.field_value(valnr).c_str(),
883
884
                                                fo.field_value(valnr).c_str()
884
885
                                                + fo.field_value(valnr).length())
885
886
            * charset->mbmaxlen;
 
887
        }
886
888
      }
887
889
    }
888
 
      break;
 
890
    break;
889
891
    case DRIZZLE_TYPE_LONG:
890
892
      {
891
893
        uint32_t sign_len= pfield.constraints().is_unsigned() ? 0 : 1;
1237
1239
   6    Unknown .frm version
1238
1240
*/
1239
1241
 
1240
 
int open_table_def(Session& session, TableShare *share)
 
1242
int open_table_def(Session& session, TableIdentifier &identifier, TableShare *share)
1241
1243
{
1242
1244
  int error;
1243
1245
  bool error_given;
1244
1246
 
1245
 
  TableIdentifier identifier(share->normalized_path.str);
1246
 
 
1247
1247
  error= 1;
1248
1248
  error_given= 0;
1249
1249
 
3303
3303
      cursor->closeMarkForDelete(s->table_name.str);
3304
3304
 
3305
3305
    TableIdentifier identifier(s->table_name.str);
3306
 
    s->db_type()->doDropTable(*session, identifier, s->table_name.str);
 
3306
    s->db_type()->doDropTable(*session, identifier);
3307
3307
 
3308
3308
    delete cursor;
3309
3309
  }
3418
3418
 err1:
3419
3419
  {
3420
3420
    TableIdentifier identifier(new_table.s->table_name.str);
3421
 
    new_table.s->db_type()->doDropTable(*session, identifier, new_table.s->table_name.str);
 
3421
    new_table.s->db_type()->doDropTable(*session, identifier);
3422
3422
  }
3423
3423
 
3424
3424
 err2:
3679
3679
  session->slave_proxy_id, separated by '\0'.
3680
3680
*/
3681
3681
 
3682
 
bool Table::rename_temporary_table(const char *db, const char *table_name)
 
3682
bool Table::renameAlterTemporaryTable(TableIdentifier &identifier)
3683
3683
{
3684
3684
  char *key;
3685
3685
  uint32_t key_length;
3686
3686
  TableShare *share= s;
3687
3687
 
3688
 
  if (!(key=(char*) alloc_root(&share->mem_root, MAX_DBKEY_LENGTH)))
 
3688
  if (not (key=(char*) alloc_root(&share->mem_root, MAX_DBKEY_LENGTH)))
3689
3689
    return true;
3690
3690
 
3691
 
  key_length= TableShare::createKey(key, db, table_name);
 
3691
  key_length= TableShare::createKey(key, identifier);
3692
3692
  share->set_table_cache_key(key, key_length);
3693
3693
 
3694
3694
  return false;