~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/unireg.cc

  • Committer: Brian Aker
  • Date: 2009-02-02 23:10:18 UTC
  • mfrom: (779.3.40 devel)
  • Revision ID: brian@tangent.org-20090202231018-zlp0hka6kgwy1vfy
Merge from Monty

Show diffs side-by-side

added added

removed removed

Lines of Context:
615
615
 
616
616
    default:
617
617
      abort(); /* Somebody's brain broke. haven't added index type to proto */
618
 
      break;
619
618
    }
620
619
 
621
620
    if (key_info[i].flags & HA_NOSAME)
1144
1143
static bool pack_fields(File file, List<Create_field> &create_fields,
1145
1144
                        ulong data_offset)
1146
1145
{
1147
 
  register uint32_t i;
 
1146
  register uint32_t field_element;
1148
1147
  uint32_t int_count, comment_length=0, vcol_info_length=0;
1149
1148
  unsigned char buff[MAX_FIELD_WIDTH];
1150
1149
  Create_field *field;
1196
1195
  buff[0]=(unsigned char) NAMES_SEP_CHAR;
1197
1196
  if (my_write(file, buff, 1, MYF_RW))
1198
1197
    return(1);
1199
 
  i=0;
 
1198
  field_element=0;
1200
1199
  it.rewind();
1201
1200
  while ((field=it++))
1202
1201
  {
1203
1202
    char *pos= strcpy((char*) buff,field->field_name);
1204
1203
    pos+= strlen(field->field_name);
1205
1204
    *pos++=NAMES_SEP_CHAR;
1206
 
    if (i == create_fields.elements-1)
 
1205
    if (field_element == create_fields.elements-1)
1207
1206
      *pos++=0;
1208
1207
    if (my_write(file, buff, (size_t) (pos-(char*) buff),MYF_RW))
1209
1208
      return(1);
1210
 
    i++;
 
1209
    field_element++;
1211
1210
  }
1212
1211
 
1213
1212
        /* Write intervals */
1223
1222
      {
1224
1223
        unsigned char  sep= 0;
1225
1224
        unsigned char  occ[256];
1226
 
        uint32_t           i;
 
1225
        uint32_t       length_index;
1227
1226
        unsigned char *val= NULL;
1228
1227
 
1229
1228
        memset(occ, 0, sizeof(occ));
1230
1229
 
1231
 
        for (i=0; (val= (unsigned char*) field->interval->type_names[i]); i++)
1232
 
          for (uint32_t j = 0; j < field->interval->type_lengths[i]; j++)
 
1230
        for (length_index=0;
 
1231
             (val= (unsigned char*) field->interval->type_names[length_index]);
 
1232
              length_index++)
 
1233
          for (uint32_t j = 0;
 
1234
               j < field->interval->type_lengths[length_index];
 
1235
               j++)
1233
1236
            occ[(unsigned int) (val[j])]= 1;
1234
1237
 
1235
1238
        if (!occ[(unsigned char)NAMES_SEP_CHAR])
1238
1241
          sep= ',';
1239
1242
        else
1240
1243
        {
1241
 
          for (uint32_t i=1; i<256; i++)
 
1244
          for (uint32_t x=1; x<256; x++)
1242
1245
          {
1243
 
            if(!occ[i])
 
1246
            if(!occ[x])
1244
1247
            {
1245
 
              sep= i;
 
1248
              sep= x;
1246
1249
              break;
1247
1250
            }
1248
1251
          }