~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field.cc

  • Committer: Brian Aker
  • Date: 2008-08-14 20:59:41 UTC
  • Revision ID: brian@tangent.org-20080814205941-rdqc6mqguf50mvoq
Remove SET

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
79
79
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
80
80
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
81
 
  //DRIZZLE_TYPE_SET
82
 
    DRIZZLE_TYPE_VARCHAR,
83
81
  //DRIZZLE_TYPE_BLOB
84
82
    DRIZZLE_TYPE_BLOB,
85
83
  },
103
101
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
104
102
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
105
103
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
106
 
  //DRIZZLE_TYPE_SET
107
 
    DRIZZLE_TYPE_VARCHAR,
108
104
  //DRIZZLE_TYPE_BLOB
109
105
    DRIZZLE_TYPE_BLOB,
110
106
  },
128
124
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
129
125
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
130
126
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
131
 
  //DRIZZLE_TYPE_SET
132
 
    DRIZZLE_TYPE_VARCHAR,
133
127
  //DRIZZLE_TYPE_BLOB
134
128
    DRIZZLE_TYPE_BLOB,
135
129
  },
153
147
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
154
148
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
155
149
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
156
 
  //DRIZZLE_TYPE_SET
157
 
    DRIZZLE_TYPE_VARCHAR,
158
150
  //DRIZZLE_TYPE_BLOB
159
151
    DRIZZLE_TYPE_BLOB,
160
152
  },
178
170
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
179
171
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
180
172
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_VARCHAR,
181
 
  //DRIZZLE_TYPE_SET
182
 
    DRIZZLE_TYPE_VARCHAR,
183
173
  //DRIZZLE_TYPE_BLOB
184
174
    DRIZZLE_TYPE_BLOB,
185
175
  },
203
193
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
204
194
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
205
195
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_ENUM,
206
 
  //DRIZZLE_TYPE_SET
207
 
    DRIZZLE_TYPE_SET,
208
196
  //DRIZZLE_TYPE_BLOB
209
197
    DRIZZLE_TYPE_BLOB,
210
198
  },
228
216
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
229
217
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
230
218
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
231
 
  //DRIZZLE_TYPE_SET
232
 
    DRIZZLE_TYPE_VARCHAR,
233
219
  //DRIZZLE_TYPE_BLOB
234
220
    DRIZZLE_TYPE_BLOB,
235
221
  },
253
239
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
254
240
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
255
241
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
256
 
  //DRIZZLE_TYPE_SET
257
 
    DRIZZLE_TYPE_VARCHAR,
258
242
  //DRIZZLE_TYPE_BLOB
259
243
    DRIZZLE_TYPE_BLOB,
260
244
  },
278
262
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
279
263
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
280
264
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
281
 
  //DRIZZLE_TYPE_SET
282
 
    DRIZZLE_TYPE_VARCHAR,
283
265
  //DRIZZLE_TYPE_BLOB
284
266
    DRIZZLE_TYPE_BLOB,
285
267
  },
303
285
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
304
286
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
305
287
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
306
 
  //DRIZZLE_TYPE_SET
307
 
    DRIZZLE_TYPE_VARCHAR,
308
288
  //DRIZZLE_TYPE_BLOB
309
289
    DRIZZLE_TYPE_BLOB,
310
290
  },
328
308
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
329
309
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
330
310
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
331
 
  //DRIZZLE_TYPE_SET
332
 
    DRIZZLE_TYPE_VARCHAR,
333
311
  //DRIZZLE_TYPE_BLOB
334
312
    DRIZZLE_TYPE_BLOB,
335
313
  },
353
331
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
354
332
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
355
333
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
356
 
  //DRIZZLE_TYPE_SET
357
 
    DRIZZLE_TYPE_VARCHAR,
358
334
  //DRIZZLE_TYPE_BLOB
359
335
    DRIZZLE_TYPE_BLOB,
360
336
  },
378
354
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
379
355
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
380
356
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
381
 
  //DRIZZLE_TYPE_SET
382
 
    DRIZZLE_TYPE_VARCHAR,
383
357
  //DRIZZLE_TYPE_BLOB
384
358
    DRIZZLE_TYPE_BLOB,
385
359
  },
403
377
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
404
378
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
405
379
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
406
 
  //DRIZZLE_TYPE_SET
407
 
    DRIZZLE_TYPE_VARCHAR,
408
380
  //DRIZZLE_TYPE_BLOB
409
381
    DRIZZLE_TYPE_BLOB,
410
382
  },
428
400
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
429
401
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
430
402
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
431
 
  //DRIZZLE_TYPE_SET
432
 
    DRIZZLE_TYPE_VARCHAR,
433
 
  //DRIZZLE_TYPE_BLOB
434
 
    DRIZZLE_TYPE_BLOB,
435
 
  },
436
 
  /* DRIZZLE_TYPE_SET -> */
437
 
  {
438
 
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
439
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
440
 
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
441
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
442
 
  //DRIZZLE_TYPE_DOUBLE
443
 
    DRIZZLE_TYPE_VARCHAR,
444
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
445
 
    DRIZZLE_TYPE_SET,         DRIZZLE_TYPE_VARCHAR,
446
 
  //DRIZZLE_TYPE_LONGLONG
447
 
    DRIZZLE_TYPE_VARCHAR,
448
 
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
449
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
450
 
  //DRIZZLE_TYPE_DATETIME
451
 
    DRIZZLE_TYPE_VARCHAR,
452
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
453
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
454
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
455
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
456
 
  //DRIZZLE_TYPE_SET
457
 
    DRIZZLE_TYPE_VARCHAR,
458
403
  //DRIZZLE_TYPE_BLOB
459
404
    DRIZZLE_TYPE_BLOB,
460
405
  },
478
423
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
479
424
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
480
425
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
481
 
  //DRIZZLE_TYPE_SET
482
 
    DRIZZLE_TYPE_BLOB,
483
426
  //DRIZZLE_TYPE_BLOB
484
427
    DRIZZLE_TYPE_BLOB,
485
428
  },
525
468
  STRING_RESULT,            STRING_RESULT,
526
469
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
527
470
  DECIMAL_RESULT,           STRING_RESULT,
528
 
  //DRIZZLE_TYPE_SET
529
 
  STRING_RESULT,
530
471
  //DRIZZLE_TYPE_BLOB
531
472
  STRING_RESULT,
532
473
};
2059
2000
    pack_length= calc_pack_length(sql_type, length);
2060
2001
    break;
2061
2002
  case DRIZZLE_TYPE_ENUM:
2062
 
  case DRIZZLE_TYPE_SET:
2063
2003
    /* Pack_length already calculated in sql_parse.cc */
2064
2004
    length*= charset->mbmaxlen;
2065
2005
    key_length= pack_length;
2331
2271
  case DRIZZLE_TYPE_DATETIME:
2332
2272
    length= MAX_DATETIME_WIDTH;
2333
2273
    break;
2334
 
  case DRIZZLE_TYPE_SET:
2335
 
    {
2336
 
      pack_length= get_set_pack_length(fld_interval_list->elements);
2337
 
 
2338
 
      List_iterator<String> it(*fld_interval_list);
2339
 
      String *tmp;
2340
 
      while ((tmp= it++))
2341
 
        interval_list.push_back(tmp);
2342
 
      /*
2343
 
        Set fake length to 1 to pass the below conditions.
2344
 
        Real length will be set in mysql_prepare_table()
2345
 
        when we know the character set of the column
2346
 
      */
2347
 
      length= 1;
2348
 
      break;
2349
 
    }
2350
2274
  case DRIZZLE_TYPE_ENUM:
2351
2275
    {
2352
2276
      /* Should be safe. */
2364
2288
  char_length= length;
2365
2289
 
2366
2290
  if (!(flags & BLOB_FLAG) &&
2367
 
      ((length > max_field_charlength && fld_type != DRIZZLE_TYPE_SET &&
 
2291
      ((length > max_field_charlength &&
2368
2292
        fld_type != DRIZZLE_TYPE_ENUM &&
2369
2293
        (fld_type != DRIZZLE_TYPE_VARCHAR || fld_default_value)) ||
2370
2294
       (!length && fld_type != DRIZZLE_TYPE_VARCHAR)))
2415
2339
  case DRIZZLE_TYPE_LONGLONG: return 8; /* Don't crash if no int64_t */
2416
2340
  case DRIZZLE_TYPE_NULL        : return 0;
2417
2341
  case DRIZZLE_TYPE_BLOB:               return 4+portable_sizeof_char_ptr;
2418
 
  case DRIZZLE_TYPE_SET:
2419
2342
  case DRIZZLE_TYPE_ENUM:
2420
2343
  case DRIZZLE_TYPE_NEWDECIMAL:
2421
2344
    abort(); return 0;                          // This shouldn't happen
2495
2418
        return new Field_enum(ptr,field_length,null_pos,null_bit,
2496
2419
                                  unireg_check, field_name,
2497
2420
                                  pack_length, interval, field_charset);
2498
 
      else
2499
 
        return new Field_set(ptr,field_length,null_pos,null_bit,
2500
 
                             unireg_check, field_name,
2501
 
                             pack_length, interval, field_charset);
2502
2421
    }
2503
2422
  }
2504
2423
 
2588
2507
    break;
2589
2508
    /* Change CHAR -> VARCHAR if dynamic record length */
2590
2509
  case DRIZZLE_TYPE_ENUM:
2591
 
  case DRIZZLE_TYPE_SET:
2592
2510
  case DRIZZLE_TYPE_VARCHAR:
2593
2511
    /* This is corrected in create_length_to_internal_length */
2594
2512
    length= (length+charset->mbmaxlen-1) / charset->mbmaxlen;