~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to server/field.cc

  • Committer: Patrick Galbraith
  • Date: 2008-07-28 01:47:41 UTC
  • mto: (212.1.8 codestyle)
  • mto: This revision was merged to the branch mainline in revision 217.
  • Revision ID: patg@ishvara-20080728014741-yoasv5trt1ef9rha
Renamed FIELD_TYPE to DRIZZLE_TYPE

Show diffs side-by-side

added added

removed removed

Lines of Context:
50
50
  following #defines describe that gap and how to canculate number of fields
51
51
  and index of field in thia array.
52
52
*/
53
 
#define FIELDTYPE_TEAR_FROM (FIELD_TYPE_VARCHAR + 1)
54
 
#define FIELDTYPE_TEAR_TO   (FIELD_TYPE_NEWDECIMAL - 1)
 
53
#define FIELDTYPE_TEAR_FROM (DRIZZLE_TYPE_VARCHAR + 1)
 
54
#define FIELDTYPE_TEAR_TO   (DRIZZLE_TYPE_NEWDECIMAL - 1)
55
55
#define FIELDTYPE_NUM (FIELDTYPE_TEAR_FROM + (255 - FIELDTYPE_TEAR_TO))
56
56
inline int field_type2index (enum_field_types field_type)
57
57
{
63
63
 
64
64
static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]=
65
65
{
66
 
  /* FIELD_TYPE_DECIMAL -> */
67
 
  {
68
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
69
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_NEWDECIMAL,
70
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
71
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_NEWDECIMAL,
72
 
  //FIELD_TYPE_DOUBLE
73
 
    FIELD_TYPE_DOUBLE,
74
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
75
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
76
 
  //FIELD_TYPE_LONGLONG
77
 
    FIELD_TYPE_NEWDECIMAL,
78
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
79
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
80
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
81
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
82
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
83
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
84
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
85
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
86
 
  //FIELD_TYPE_SET
87
 
    FIELD_TYPE_VARCHAR,
88
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
89
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
90
 
  //FIELD_TYPE_STRING       
91
 
    FIELD_TYPE_STRING
92
 
  },
93
 
  /* FIELD_TYPE_TINY -> */
94
 
  {
95
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
96
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_TINY,
97
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
98
 
    FIELD_TYPE_SHORT,       FIELD_TYPE_LONG,
99
 
  //FIELD_TYPE_DOUBLE
100
 
    FIELD_TYPE_DOUBLE,
101
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
102
 
    FIELD_TYPE_TINY,        FIELD_TYPE_VARCHAR,
103
 
  //FIELD_TYPE_LONGLONG
104
 
    FIELD_TYPE_LONGLONG,
105
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
106
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
107
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
108
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_TINY,
109
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
110
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
111
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
112
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
113
 
  //FIELD_TYPE_SET
114
 
    FIELD_TYPE_VARCHAR,
115
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
116
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
117
 
  //FIELD_TYPE_STRING       
118
 
    FIELD_TYPE_STRING     
119
 
  },
120
 
  /* FIELD_TYPE_SHORT -> */
121
 
  {
122
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
123
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_SHORT,
124
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
125
 
    FIELD_TYPE_SHORT,       FIELD_TYPE_LONG,
126
 
  //FIELD_TYPE_DOUBLE
127
 
    FIELD_TYPE_DOUBLE,
128
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
129
 
    FIELD_TYPE_SHORT,       FIELD_TYPE_VARCHAR,
130
 
  //FIELD_TYPE_LONGLONG
131
 
    FIELD_TYPE_LONGLONG,
132
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
133
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
134
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
135
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_SHORT,
136
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
137
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
138
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
139
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
140
 
  //FIELD_TYPE_SET
141
 
    FIELD_TYPE_VARCHAR,
142
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
143
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
144
 
  //FIELD_TYPE_STRING
145
 
    FIELD_TYPE_STRING
146
 
  },
147
 
  /* FIELD_TYPE_LONG -> */
148
 
  {
149
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
150
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_LONG,
151
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
152
 
    FIELD_TYPE_LONG,        FIELD_TYPE_LONG,
153
 
  //FIELD_TYPE_DOUBLE
154
 
    FIELD_TYPE_DOUBLE,
155
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
156
 
    FIELD_TYPE_LONG,         FIELD_TYPE_VARCHAR,
157
 
  //FIELD_TYPE_LONGLONG
158
 
    FIELD_TYPE_LONGLONG,
159
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
160
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
161
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
162
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_LONG,
163
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
164
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
165
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
166
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
167
 
  //FIELD_TYPE_SET
168
 
    FIELD_TYPE_VARCHAR,
169
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
170
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
171
 
  //FIELD_TYPE_STRING
172
 
    FIELD_TYPE_STRING
173
 
  },
174
 
  /* FIELD_TYPE_DOUBLE -> */
175
 
  {
176
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
177
 
    FIELD_TYPE_DOUBLE,      FIELD_TYPE_DOUBLE,
178
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
179
 
    FIELD_TYPE_DOUBLE,      FIELD_TYPE_DOUBLE,
180
 
  //FIELD_TYPE_DOUBLE
181
 
    FIELD_TYPE_DOUBLE,
182
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
183
 
    FIELD_TYPE_DOUBLE,      FIELD_TYPE_VARCHAR,
184
 
  //FIELD_TYPE_LONGLONG
185
 
    FIELD_TYPE_DOUBLE,
186
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
187
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
188
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
189
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_DOUBLE,
190
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
191
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
192
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
193
 
    FIELD_TYPE_DOUBLE,      FIELD_TYPE_VARCHAR,
194
 
  //FIELD_TYPE_SET
195
 
    FIELD_TYPE_VARCHAR,
196
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
197
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
198
 
  //FIELD_TYPE_STRING
199
 
    FIELD_TYPE_STRING
200
 
  },
201
 
  /* FIELD_TYPE_NULL -> */
202
 
  {
203
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
204
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_TINY,
205
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
206
 
    FIELD_TYPE_SHORT,       FIELD_TYPE_LONG,
207
 
  //FIELD_TYPE_DOUBLE
208
 
    FIELD_TYPE_DOUBLE,
209
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
210
 
    FIELD_TYPE_NULL,        FIELD_TYPE_TIMESTAMP,
211
 
  //FIELD_TYPE_LONGLONG
212
 
    FIELD_TYPE_LONGLONG,
213
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
214
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_TIME,
215
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
216
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_YEAR,
217
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
218
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
219
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
220
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_ENUM,
221
 
  //FIELD_TYPE_SET
222
 
    FIELD_TYPE_SET,
223
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
224
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
225
 
  //FIELD_TYPE_STRING
226
 
    FIELD_TYPE_STRING
227
 
  },
228
 
  /* FIELD_TYPE_TIMESTAMP -> */
229
 
  {
230
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
231
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
232
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
233
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
234
 
  //FIELD_TYPE_DOUBLE
235
 
    FIELD_TYPE_VARCHAR,
236
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
237
 
    FIELD_TYPE_TIMESTAMP,   FIELD_TYPE_TIMESTAMP,
238
 
  //FIELD_TYPE_LONGLONG
239
 
    FIELD_TYPE_VARCHAR,
240
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
241
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_DATETIME,
242
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
243
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_VARCHAR,
244
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
245
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
246
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
247
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
248
 
  //FIELD_TYPE_SET
249
 
    FIELD_TYPE_VARCHAR,
250
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
251
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
252
 
  //FIELD_TYPE_STRING
253
 
    FIELD_TYPE_STRING
254
 
  },
255
 
  /* FIELD_TYPE_LONGLONG -> */
256
 
  {
257
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
258
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_LONGLONG,
259
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
260
 
    FIELD_TYPE_LONGLONG,    FIELD_TYPE_LONGLONG,
261
 
  //FIELD_TYPE_DOUBLE
262
 
    FIELD_TYPE_DOUBLE,
263
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
264
 
    FIELD_TYPE_LONGLONG,    FIELD_TYPE_VARCHAR,
265
 
  //FIELD_TYPE_LONGLONG
266
 
    FIELD_TYPE_LONGLONG,
267
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
268
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
269
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
270
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_LONGLONG,
271
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
272
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
273
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
274
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
275
 
  //FIELD_TYPE_SET
276
 
    FIELD_TYPE_VARCHAR,
277
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
278
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
279
 
  //FIELD_TYPE_STRING
280
 
    FIELD_TYPE_STRING
281
 
  },
282
 
  /* FIELD_TYPE_DATE -> */
283
 
  {
284
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
285
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
286
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
287
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
288
 
  //FIELD_TYPE_DOUBLE
289
 
    FIELD_TYPE_VARCHAR,
290
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
291
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_DATETIME,
292
 
  //FIELD_TYPE_LONGLONG
293
 
    FIELD_TYPE_VARCHAR,
294
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
295
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_DATETIME,
296
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
297
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_VARCHAR,
298
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
299
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
300
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
301
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
302
 
  //FIELD_TYPE_SET
303
 
    FIELD_TYPE_VARCHAR,
304
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
305
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
306
 
  //FIELD_TYPE_STRING
307
 
    FIELD_TYPE_STRING
308
 
  },
309
 
  /* FIELD_TYPE_TIME -> */
310
 
  {
311
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
312
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
313
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
314
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
315
 
  //FIELD_TYPE_DOUBLE
316
 
    FIELD_TYPE_VARCHAR,
317
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
318
 
    FIELD_TYPE_TIME,        FIELD_TYPE_DATETIME,
319
 
  //FIELD_TYPE_LONGLONG
320
 
    FIELD_TYPE_VARCHAR,
321
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
322
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_TIME,
323
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
324
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_VARCHAR,
325
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
326
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
327
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
328
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
329
 
  //FIELD_TYPE_SET
330
 
    FIELD_TYPE_VARCHAR,
331
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
332
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
333
 
  //FIELD_TYPE_STRING
334
 
    FIELD_TYPE_STRING
335
 
  },
336
 
  /* FIELD_TYPE_DATETIME -> */
337
 
  {
338
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
339
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
340
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
341
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
342
 
  //FIELD_TYPE_DOUBLE
343
 
    FIELD_TYPE_VARCHAR,
344
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
345
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_DATETIME,
346
 
  //FIELD_TYPE_LONGLONG
347
 
    FIELD_TYPE_VARCHAR,
348
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
349
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_DATETIME,
350
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
351
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_VARCHAR,
352
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
353
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
354
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
355
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
356
 
  //FIELD_TYPE_SET
357
 
    FIELD_TYPE_VARCHAR,
358
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
359
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
360
 
  //FIELD_TYPE_STRING
361
 
    FIELD_TYPE_STRING
362
 
  },
363
 
  /* FIELD_TYPE_YEAR -> */
364
 
  {
365
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
366
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_TINY,
367
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
368
 
    FIELD_TYPE_SHORT,       FIELD_TYPE_LONG,
369
 
  //FIELD_TYPE_DOUBLE
370
 
    FIELD_TYPE_DOUBLE,
371
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
372
 
    FIELD_TYPE_YEAR,        FIELD_TYPE_VARCHAR,
373
 
  //FIELD_TYPE_LONGLONG
374
 
    FIELD_TYPE_LONGLONG,
375
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
376
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
377
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
378
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_YEAR,
379
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
380
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
381
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
382
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
383
 
  //FIELD_TYPE_SET
384
 
    FIELD_TYPE_VARCHAR,
385
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
386
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
387
 
  //FIELD_TYPE_STRING
388
 
    FIELD_TYPE_STRING
389
 
  },
390
 
  /* FIELD_TYPE_NEWDATE -> */
391
 
  {
392
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
393
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
394
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
395
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
396
 
  //FIELD_TYPE_DOUBLE
397
 
    FIELD_TYPE_VARCHAR,
398
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
399
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_DATETIME,
400
 
  //FIELD_TYPE_LONGLONG
401
 
    FIELD_TYPE_VARCHAR,
402
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
403
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_DATETIME,
404
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
405
 
    FIELD_TYPE_DATETIME,    FIELD_TYPE_VARCHAR,
406
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
407
 
    FIELD_TYPE_NEWDATE,     FIELD_TYPE_VARCHAR,
408
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
409
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
410
 
  //FIELD_TYPE_SET
411
 
    FIELD_TYPE_VARCHAR,
412
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
413
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
414
 
  //FIELD_TYPE_STRING
415
 
    FIELD_TYPE_STRING
416
 
  },
417
 
  /* FIELD_TYPE_VARCHAR -> */
418
 
  {
419
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
420
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
421
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
422
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
423
 
  //FIELD_TYPE_DOUBLE
424
 
    FIELD_TYPE_VARCHAR,
425
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
426
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
427
 
  //FIELD_TYPE_LONGLONG
428
 
    FIELD_TYPE_VARCHAR,
429
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
430
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
431
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
432
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
433
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
434
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
435
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
436
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
437
 
  //FIELD_TYPE_SET
438
 
    FIELD_TYPE_VARCHAR,
439
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
440
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
441
 
  //FIELD_TYPE_STRING
442
 
    FIELD_TYPE_VARCHAR
443
 
  },
444
 
  /* FIELD_TYPE_NEWDECIMAL -> */
445
 
  {
446
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
447
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_NEWDECIMAL,
448
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
449
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_NEWDECIMAL,
450
 
  //FIELD_TYPE_DOUBLE
451
 
    FIELD_TYPE_DOUBLE,
452
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
453
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
454
 
  //FIELD_TYPE_LONGLONG
455
 
    FIELD_TYPE_NEWDECIMAL,
456
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
457
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
458
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
459
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_NEWDECIMAL,
460
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
461
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
462
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
463
 
    FIELD_TYPE_NEWDECIMAL,  FIELD_TYPE_VARCHAR,
464
 
  //FIELD_TYPE_SET
465
 
    FIELD_TYPE_VARCHAR,
466
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
467
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
468
 
  //FIELD_TYPE_STRING
469
 
    FIELD_TYPE_STRING
470
 
  },
471
 
  /* FIELD_TYPE_ENUM -> */
472
 
  {
473
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
474
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
475
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
476
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
477
 
  //FIELD_TYPE_DOUBLE
478
 
    FIELD_TYPE_VARCHAR,
479
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
480
 
    FIELD_TYPE_ENUM,        FIELD_TYPE_VARCHAR,
481
 
  //FIELD_TYPE_LONGLONG
482
 
    FIELD_TYPE_VARCHAR,
483
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
484
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
485
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
486
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
487
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
488
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
489
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
490
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
491
 
  //FIELD_TYPE_SET
492
 
    FIELD_TYPE_VARCHAR,
493
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
494
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
495
 
  //FIELD_TYPE_STRING
496
 
    FIELD_TYPE_STRING
497
 
  },
498
 
  /* FIELD_TYPE_SET -> */
499
 
  {
500
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
501
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
502
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
503
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
504
 
  //FIELD_TYPE_DOUBLE
505
 
    FIELD_TYPE_VARCHAR,
506
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
507
 
    FIELD_TYPE_SET,         FIELD_TYPE_VARCHAR,
508
 
  //FIELD_TYPE_LONGLONG
509
 
    FIELD_TYPE_VARCHAR,
510
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
511
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
512
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
513
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
514
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
515
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
516
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
517
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
518
 
  //FIELD_TYPE_SET
519
 
    FIELD_TYPE_VARCHAR,
520
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
521
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
522
 
  //FIELD_TYPE_STRING
523
 
    FIELD_TYPE_STRING
524
 
  },
525
 
  /* FIELD_TYPE_BLOB -> */
526
 
  {
527
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
528
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
529
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
530
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
531
 
  //FIELD_TYPE_DOUBLE
532
 
    FIELD_TYPE_BLOB,
533
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
534
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
535
 
  //FIELD_TYPE_LONGLONG
536
 
    FIELD_TYPE_BLOB,
537
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
538
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
539
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
540
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
541
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
542
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
543
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
544
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
545
 
  //FIELD_TYPE_SET
546
 
    FIELD_TYPE_BLOB,
547
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
548
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_BLOB,
549
 
  //FIELD_TYPE_STRING
550
 
    FIELD_TYPE_BLOB
551
 
  },
552
 
  /* FIELD_TYPE_VAR_STRING -> */
553
 
  {
554
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
555
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
556
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
557
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
558
 
  //FIELD_TYPE_DOUBLE
559
 
    FIELD_TYPE_VARCHAR,
560
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
561
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
562
 
  //FIELD_TYPE_LONGLONG
563
 
    FIELD_TYPE_VARCHAR,
564
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
565
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
566
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
567
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
568
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
569
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
570
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
571
 
    FIELD_TYPE_VARCHAR,     FIELD_TYPE_VARCHAR,
572
 
  //FIELD_TYPE_SET
573
 
    FIELD_TYPE_VARCHAR,
574
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
575
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
576
 
  //FIELD_TYPE_STRING
577
 
    FIELD_TYPE_VARCHAR
578
 
  },
579
 
  /* FIELD_TYPE_STRING -> */
580
 
  {
581
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
582
 
    FIELD_TYPE_STRING,      FIELD_TYPE_STRING,
583
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
584
 
    FIELD_TYPE_STRING,      FIELD_TYPE_STRING,
585
 
  //FIELD_TYPE_DOUBLE
586
 
    FIELD_TYPE_STRING,
587
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
588
 
    FIELD_TYPE_STRING,      FIELD_TYPE_STRING,
589
 
  //FIELD_TYPE_LONGLONG
590
 
    FIELD_TYPE_STRING,
591
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
592
 
    FIELD_TYPE_STRING,      FIELD_TYPE_STRING,
593
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
594
 
    FIELD_TYPE_STRING,      FIELD_TYPE_STRING,
595
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
596
 
    FIELD_TYPE_STRING,      FIELD_TYPE_VARCHAR,
597
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
598
 
    FIELD_TYPE_STRING,      FIELD_TYPE_STRING,
599
 
  //FIELD_TYPE_SET
600
 
    FIELD_TYPE_STRING,
601
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
602
 
    FIELD_TYPE_BLOB,        FIELD_TYPE_VARCHAR,
603
 
  //FIELD_TYPE_STRING
604
 
    FIELD_TYPE_STRING
 
66
  /* DRIZZLE_TYPE_DECIMAL -> */
 
67
  {
 
68
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
69
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_NEWDECIMAL,
 
70
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
71
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_NEWDECIMAL,
 
72
  //DRIZZLE_TYPE_DOUBLE
 
73
    DRIZZLE_TYPE_DOUBLE,
 
74
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
75
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
76
  //DRIZZLE_TYPE_LONGLONG
 
77
    DRIZZLE_TYPE_NEWDECIMAL,
 
78
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
79
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
80
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
81
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
82
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
83
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
84
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
85
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
86
  //DRIZZLE_TYPE_SET
 
87
    DRIZZLE_TYPE_VARCHAR,
 
88
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
89
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
90
  //DRIZZLE_TYPE_STRING       
 
91
    DRIZZLE_TYPE_STRING
 
92
  },
 
93
  /* DRIZZLE_TYPE_TINY -> */
 
94
  {
 
95
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
96
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_TINY,
 
97
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
98
    DRIZZLE_TYPE_SHORT,       DRIZZLE_TYPE_LONG,
 
99
  //DRIZZLE_TYPE_DOUBLE
 
100
    DRIZZLE_TYPE_DOUBLE,
 
101
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
102
    DRIZZLE_TYPE_TINY,        DRIZZLE_TYPE_VARCHAR,
 
103
  //DRIZZLE_TYPE_LONGLONG
 
104
    DRIZZLE_TYPE_LONGLONG,
 
105
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
106
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
107
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
108
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_TINY,
 
109
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
110
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
111
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
112
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
113
  //DRIZZLE_TYPE_SET
 
114
    DRIZZLE_TYPE_VARCHAR,
 
115
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
116
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
117
  //DRIZZLE_TYPE_STRING       
 
118
    DRIZZLE_TYPE_STRING     
 
119
  },
 
120
  /* DRIZZLE_TYPE_SHORT -> */
 
121
  {
 
122
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
123
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_SHORT,
 
124
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
125
    DRIZZLE_TYPE_SHORT,       DRIZZLE_TYPE_LONG,
 
126
  //DRIZZLE_TYPE_DOUBLE
 
127
    DRIZZLE_TYPE_DOUBLE,
 
128
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
129
    DRIZZLE_TYPE_SHORT,       DRIZZLE_TYPE_VARCHAR,
 
130
  //DRIZZLE_TYPE_LONGLONG
 
131
    DRIZZLE_TYPE_LONGLONG,
 
132
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
133
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
134
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
135
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_SHORT,
 
136
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
137
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
138
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
139
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
140
  //DRIZZLE_TYPE_SET
 
141
    DRIZZLE_TYPE_VARCHAR,
 
142
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
143
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
144
  //DRIZZLE_TYPE_STRING
 
145
    DRIZZLE_TYPE_STRING
 
146
  },
 
147
  /* DRIZZLE_TYPE_LONG -> */
 
148
  {
 
149
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
150
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_LONG,
 
151
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
152
    DRIZZLE_TYPE_LONG,        DRIZZLE_TYPE_LONG,
 
153
  //DRIZZLE_TYPE_DOUBLE
 
154
    DRIZZLE_TYPE_DOUBLE,
 
155
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
156
    DRIZZLE_TYPE_LONG,         DRIZZLE_TYPE_VARCHAR,
 
157
  //DRIZZLE_TYPE_LONGLONG
 
158
    DRIZZLE_TYPE_LONGLONG,
 
159
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
160
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
161
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
162
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_LONG,
 
163
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
164
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
165
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
166
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
167
  //DRIZZLE_TYPE_SET
 
168
    DRIZZLE_TYPE_VARCHAR,
 
169
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
170
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
171
  //DRIZZLE_TYPE_STRING
 
172
    DRIZZLE_TYPE_STRING
 
173
  },
 
174
  /* DRIZZLE_TYPE_DOUBLE -> */
 
175
  {
 
176
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
177
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_DOUBLE,
 
178
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
179
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_DOUBLE,
 
180
  //DRIZZLE_TYPE_DOUBLE
 
181
    DRIZZLE_TYPE_DOUBLE,
 
182
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
183
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_VARCHAR,
 
184
  //DRIZZLE_TYPE_LONGLONG
 
185
    DRIZZLE_TYPE_DOUBLE,
 
186
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
187
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
188
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
189
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_DOUBLE,
 
190
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
191
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
192
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
193
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_VARCHAR,
 
194
  //DRIZZLE_TYPE_SET
 
195
    DRIZZLE_TYPE_VARCHAR,
 
196
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
197
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
198
  //DRIZZLE_TYPE_STRING
 
199
    DRIZZLE_TYPE_STRING
 
200
  },
 
201
  /* DRIZZLE_TYPE_NULL -> */
 
202
  {
 
203
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
204
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_TINY,
 
205
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
206
    DRIZZLE_TYPE_SHORT,       DRIZZLE_TYPE_LONG,
 
207
  //DRIZZLE_TYPE_DOUBLE
 
208
    DRIZZLE_TYPE_DOUBLE,
 
209
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
210
    DRIZZLE_TYPE_NULL,        DRIZZLE_TYPE_TIMESTAMP,
 
211
  //DRIZZLE_TYPE_LONGLONG
 
212
    DRIZZLE_TYPE_LONGLONG,
 
213
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
214
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_TIME,
 
215
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
216
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_YEAR,
 
217
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
218
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
219
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
220
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_ENUM,
 
221
  //DRIZZLE_TYPE_SET
 
222
    DRIZZLE_TYPE_SET,
 
223
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
224
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
225
  //DRIZZLE_TYPE_STRING
 
226
    DRIZZLE_TYPE_STRING
 
227
  },
 
228
  /* DRIZZLE_TYPE_TIMESTAMP -> */
 
229
  {
 
230
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
231
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
232
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
233
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
234
  //DRIZZLE_TYPE_DOUBLE
 
235
    DRIZZLE_TYPE_VARCHAR,
 
236
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
237
    DRIZZLE_TYPE_TIMESTAMP,   DRIZZLE_TYPE_TIMESTAMP,
 
238
  //DRIZZLE_TYPE_LONGLONG
 
239
    DRIZZLE_TYPE_VARCHAR,
 
240
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
241
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_DATETIME,
 
242
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
243
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_VARCHAR,
 
244
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
245
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
246
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
247
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
248
  //DRIZZLE_TYPE_SET
 
249
    DRIZZLE_TYPE_VARCHAR,
 
250
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
251
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
252
  //DRIZZLE_TYPE_STRING
 
253
    DRIZZLE_TYPE_STRING
 
254
  },
 
255
  /* DRIZZLE_TYPE_LONGLONG -> */
 
256
  {
 
257
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
258
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_LONGLONG,
 
259
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
260
    DRIZZLE_TYPE_LONGLONG,    DRIZZLE_TYPE_LONGLONG,
 
261
  //DRIZZLE_TYPE_DOUBLE
 
262
    DRIZZLE_TYPE_DOUBLE,
 
263
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
264
    DRIZZLE_TYPE_LONGLONG,    DRIZZLE_TYPE_VARCHAR,
 
265
  //DRIZZLE_TYPE_LONGLONG
 
266
    DRIZZLE_TYPE_LONGLONG,
 
267
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
268
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
269
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
270
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_LONGLONG,
 
271
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
272
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
273
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
274
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
275
  //DRIZZLE_TYPE_SET
 
276
    DRIZZLE_TYPE_VARCHAR,
 
277
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
278
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
279
  //DRIZZLE_TYPE_STRING
 
280
    DRIZZLE_TYPE_STRING
 
281
  },
 
282
  /* DRIZZLE_TYPE_DATE -> */
 
283
  {
 
284
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
285
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
286
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
287
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
288
  //DRIZZLE_TYPE_DOUBLE
 
289
    DRIZZLE_TYPE_VARCHAR,
 
290
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
291
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_DATETIME,
 
292
  //DRIZZLE_TYPE_LONGLONG
 
293
    DRIZZLE_TYPE_VARCHAR,
 
294
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
295
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_DATETIME,
 
296
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
297
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_VARCHAR,
 
298
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
299
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
300
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
301
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
302
  //DRIZZLE_TYPE_SET
 
303
    DRIZZLE_TYPE_VARCHAR,
 
304
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
305
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
306
  //DRIZZLE_TYPE_STRING
 
307
    DRIZZLE_TYPE_STRING
 
308
  },
 
309
  /* DRIZZLE_TYPE_TIME -> */
 
310
  {
 
311
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
312
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
313
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
314
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
315
  //DRIZZLE_TYPE_DOUBLE
 
316
    DRIZZLE_TYPE_VARCHAR,
 
317
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
318
    DRIZZLE_TYPE_TIME,        DRIZZLE_TYPE_DATETIME,
 
319
  //DRIZZLE_TYPE_LONGLONG
 
320
    DRIZZLE_TYPE_VARCHAR,
 
321
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
322
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_TIME,
 
323
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
324
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_VARCHAR,
 
325
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
326
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
327
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
328
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
329
  //DRIZZLE_TYPE_SET
 
330
    DRIZZLE_TYPE_VARCHAR,
 
331
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
332
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
333
  //DRIZZLE_TYPE_STRING
 
334
    DRIZZLE_TYPE_STRING
 
335
  },
 
336
  /* DRIZZLE_TYPE_DATETIME -> */
 
337
  {
 
338
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
339
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
340
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
341
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
342
  //DRIZZLE_TYPE_DOUBLE
 
343
    DRIZZLE_TYPE_VARCHAR,
 
344
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
345
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_DATETIME,
 
346
  //DRIZZLE_TYPE_LONGLONG
 
347
    DRIZZLE_TYPE_VARCHAR,
 
348
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
349
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_DATETIME,
 
350
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
351
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_VARCHAR,
 
352
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
353
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
354
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
355
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
356
  //DRIZZLE_TYPE_SET
 
357
    DRIZZLE_TYPE_VARCHAR,
 
358
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
359
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
360
  //DRIZZLE_TYPE_STRING
 
361
    DRIZZLE_TYPE_STRING
 
362
  },
 
363
  /* DRIZZLE_TYPE_YEAR -> */
 
364
  {
 
365
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
366
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_TINY,
 
367
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
368
    DRIZZLE_TYPE_SHORT,       DRIZZLE_TYPE_LONG,
 
369
  //DRIZZLE_TYPE_DOUBLE
 
370
    DRIZZLE_TYPE_DOUBLE,
 
371
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
372
    DRIZZLE_TYPE_YEAR,        DRIZZLE_TYPE_VARCHAR,
 
373
  //DRIZZLE_TYPE_LONGLONG
 
374
    DRIZZLE_TYPE_LONGLONG,
 
375
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
376
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
377
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
378
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_YEAR,
 
379
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
380
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
381
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
382
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
383
  //DRIZZLE_TYPE_SET
 
384
    DRIZZLE_TYPE_VARCHAR,
 
385
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
386
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
387
  //DRIZZLE_TYPE_STRING
 
388
    DRIZZLE_TYPE_STRING
 
389
  },
 
390
  /* DRIZZLE_TYPE_NEWDATE -> */
 
391
  {
 
392
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
393
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
394
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
395
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
396
  //DRIZZLE_TYPE_DOUBLE
 
397
    DRIZZLE_TYPE_VARCHAR,
 
398
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
399
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_DATETIME,
 
400
  //DRIZZLE_TYPE_LONGLONG
 
401
    DRIZZLE_TYPE_VARCHAR,
 
402
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
403
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_DATETIME,
 
404
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
405
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_VARCHAR,
 
406
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
407
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
 
408
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
409
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
410
  //DRIZZLE_TYPE_SET
 
411
    DRIZZLE_TYPE_VARCHAR,
 
412
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
413
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
414
  //DRIZZLE_TYPE_STRING
 
415
    DRIZZLE_TYPE_STRING
 
416
  },
 
417
  /* DRIZZLE_TYPE_VARCHAR -> */
 
418
  {
 
419
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
420
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
421
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
422
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
423
  //DRIZZLE_TYPE_DOUBLE
 
424
    DRIZZLE_TYPE_VARCHAR,
 
425
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
426
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
427
  //DRIZZLE_TYPE_LONGLONG
 
428
    DRIZZLE_TYPE_VARCHAR,
 
429
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
430
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
431
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
432
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
433
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
434
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
435
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
436
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
437
  //DRIZZLE_TYPE_SET
 
438
    DRIZZLE_TYPE_VARCHAR,
 
439
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
440
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
441
  //DRIZZLE_TYPE_STRING
 
442
    DRIZZLE_TYPE_VARCHAR
 
443
  },
 
444
  /* DRIZZLE_TYPE_NEWDECIMAL -> */
 
445
  {
 
446
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
447
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_NEWDECIMAL,
 
448
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
449
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_NEWDECIMAL,
 
450
  //DRIZZLE_TYPE_DOUBLE
 
451
    DRIZZLE_TYPE_DOUBLE,
 
452
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
453
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
454
  //DRIZZLE_TYPE_LONGLONG
 
455
    DRIZZLE_TYPE_NEWDECIMAL,
 
456
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
457
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
458
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
459
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_NEWDECIMAL,
 
460
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
461
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
462
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
463
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
 
464
  //DRIZZLE_TYPE_SET
 
465
    DRIZZLE_TYPE_VARCHAR,
 
466
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
467
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
468
  //DRIZZLE_TYPE_STRING
 
469
    DRIZZLE_TYPE_STRING
 
470
  },
 
471
  /* DRIZZLE_TYPE_ENUM -> */
 
472
  {
 
473
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
474
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
475
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
476
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
477
  //DRIZZLE_TYPE_DOUBLE
 
478
    DRIZZLE_TYPE_VARCHAR,
 
479
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
480
    DRIZZLE_TYPE_ENUM,        DRIZZLE_TYPE_VARCHAR,
 
481
  //DRIZZLE_TYPE_LONGLONG
 
482
    DRIZZLE_TYPE_VARCHAR,
 
483
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
484
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
485
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
486
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
487
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
488
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
489
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
490
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
491
  //DRIZZLE_TYPE_SET
 
492
    DRIZZLE_TYPE_VARCHAR,
 
493
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
494
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
495
  //DRIZZLE_TYPE_STRING
 
496
    DRIZZLE_TYPE_STRING
 
497
  },
 
498
  /* DRIZZLE_TYPE_SET -> */
 
499
  {
 
500
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
501
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
502
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
503
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
504
  //DRIZZLE_TYPE_DOUBLE
 
505
    DRIZZLE_TYPE_VARCHAR,
 
506
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
507
    DRIZZLE_TYPE_SET,         DRIZZLE_TYPE_VARCHAR,
 
508
  //DRIZZLE_TYPE_LONGLONG
 
509
    DRIZZLE_TYPE_VARCHAR,
 
510
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
511
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
512
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
513
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
514
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
515
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
516
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
517
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
518
  //DRIZZLE_TYPE_SET
 
519
    DRIZZLE_TYPE_VARCHAR,
 
520
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
521
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
522
  //DRIZZLE_TYPE_STRING
 
523
    DRIZZLE_TYPE_STRING
 
524
  },
 
525
  /* DRIZZLE_TYPE_BLOB -> */
 
526
  {
 
527
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
528
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
529
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
530
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
531
  //DRIZZLE_TYPE_DOUBLE
 
532
    DRIZZLE_TYPE_BLOB,
 
533
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
534
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
535
  //DRIZZLE_TYPE_LONGLONG
 
536
    DRIZZLE_TYPE_BLOB,
 
537
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
538
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
539
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
540
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
541
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
542
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
543
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
544
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
545
  //DRIZZLE_TYPE_SET
 
546
    DRIZZLE_TYPE_BLOB,
 
547
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
548
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
 
549
  //DRIZZLE_TYPE_STRING
 
550
    DRIZZLE_TYPE_BLOB
 
551
  },
 
552
  /* DRIZZLE_TYPE_VAR_STRING -> */
 
553
  {
 
554
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
555
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
556
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
557
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
558
  //DRIZZLE_TYPE_DOUBLE
 
559
    DRIZZLE_TYPE_VARCHAR,
 
560
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
561
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
562
  //DRIZZLE_TYPE_LONGLONG
 
563
    DRIZZLE_TYPE_VARCHAR,
 
564
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
565
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
566
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
567
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
568
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
569
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
570
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
571
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
 
572
  //DRIZZLE_TYPE_SET
 
573
    DRIZZLE_TYPE_VARCHAR,
 
574
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
575
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
576
  //DRIZZLE_TYPE_STRING
 
577
    DRIZZLE_TYPE_VARCHAR
 
578
  },
 
579
  /* DRIZZLE_TYPE_STRING -> */
 
580
  {
 
581
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
 
582
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_STRING,
 
583
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
 
584
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_STRING,
 
585
  //DRIZZLE_TYPE_DOUBLE
 
586
    DRIZZLE_TYPE_STRING,
 
587
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
 
588
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_STRING,
 
589
  //DRIZZLE_TYPE_LONGLONG
 
590
    DRIZZLE_TYPE_STRING,
 
591
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
 
592
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_STRING,
 
593
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
 
594
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_STRING,
 
595
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
 
596
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_VARCHAR,
 
597
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
 
598
    DRIZZLE_TYPE_STRING,      DRIZZLE_TYPE_STRING,
 
599
  //DRIZZLE_TYPE_SET
 
600
    DRIZZLE_TYPE_STRING,
 
601
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
 
602
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_VARCHAR,
 
603
  //DRIZZLE_TYPE_STRING
 
604
    DRIZZLE_TYPE_STRING
605
605
  }
606
606
};
607
607
 
627
627
 
628
628
static Item_result field_types_result_type [FIELDTYPE_NUM]=
629
629
{
630
 
  //FIELD_TYPE_DECIMAL      FIELD_TYPE_TINY
 
630
  //DRIZZLE_TYPE_DECIMAL      DRIZZLE_TYPE_TINY
631
631
  DECIMAL_RESULT,           INT_RESULT,
632
 
  //FIELD_TYPE_SHORT        FIELD_TYPE_LONG
 
632
  //DRIZZLE_TYPE_SHORT        DRIZZLE_TYPE_LONG
633
633
  INT_RESULT,               INT_RESULT,
634
 
  //FIELD_TYPE_DOUBLE
 
634
  //DRIZZLE_TYPE_DOUBLE
635
635
  REAL_RESULT,
636
 
  //FIELD_TYPE_NULL         FIELD_TYPE_TIMESTAMP
 
636
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
637
637
  STRING_RESULT,            STRING_RESULT,
638
 
  //FIELD_TYPE_LONGLONG
 
638
  //DRIZZLE_TYPE_LONGLONG
639
639
  INT_RESULT,
640
 
  //FIELD_TYPE_DATE         FIELD_TYPE_TIME
 
640
  //DRIZZLE_TYPE_DATE         DRIZZLE_TYPE_TIME
641
641
  STRING_RESULT,            STRING_RESULT,
642
 
  //FIELD_TYPE_DATETIME     FIELD_TYPE_YEAR
 
642
  //DRIZZLE_TYPE_DATETIME     DRIZZLE_TYPE_YEAR
643
643
  STRING_RESULT,            INT_RESULT,
644
 
  //FIELD_TYPE_NEWDATE      FIELD_TYPE_VARCHAR
 
644
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
645
645
  STRING_RESULT,            STRING_RESULT,
646
 
  //FIELD_TYPE_NEWDECIMAL   FIELD_TYPE_ENUM
 
646
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
647
647
  DECIMAL_RESULT,           STRING_RESULT,
648
 
  //FIELD_TYPE_SET
 
648
  //DRIZZLE_TYPE_SET
649
649
  STRING_RESULT,
650
 
  //FIELD_TYPE_BLOB         FIELD_TYPE_VAR_STRING
 
650
  //DRIZZLE_TYPE_BLOB         DRIZZLE_TYPE_VAR_STRING
651
651
  STRING_RESULT,            STRING_RESULT,
652
 
  //FIELD_TYPE_STRING
 
652
  //DRIZZLE_TYPE_STRING
653
653
  STRING_RESULT
654
654
};
655
655
 
717
717
bool Field::type_can_have_key_part(enum enum_field_types type)
718
718
{
719
719
  switch (type) {
720
 
  case FIELD_TYPE_VARCHAR:
721
 
  case FIELD_TYPE_BLOB:
722
 
  case FIELD_TYPE_VAR_STRING:
723
 
  case FIELD_TYPE_STRING:
 
720
  case DRIZZLE_TYPE_VARCHAR:
 
721
  case DRIZZLE_TYPE_BLOB:
 
722
  case DRIZZLE_TYPE_VAR_STRING:
 
723
  case DRIZZLE_TYPE_STRING:
724
724
    return true;
725
725
  default:
726
726
    return false;
1386
1386
    return copy->length;
1387
1387
  }
1388
1388
  else if (!zero_pack() &&
1389
 
           (type() == FIELD_TYPE_STRING && copy->length >= 4 &&
 
1389
           (type() == DRIZZLE_TYPE_STRING && copy->length >= 4 &&
1390
1390
            copy->length < 256))
1391
1391
  {
1392
1392
    copy->strip=1;                              /* Remove end space */
2203
2203
void Create_field::create_length_to_internal_length(void)
2204
2204
{
2205
2205
  switch (sql_type) {
2206
 
  case FIELD_TYPE_BLOB:
2207
 
  case FIELD_TYPE_VAR_STRING:
2208
 
  case FIELD_TYPE_STRING:
2209
 
  case FIELD_TYPE_VARCHAR:
 
2206
  case DRIZZLE_TYPE_BLOB:
 
2207
  case DRIZZLE_TYPE_VAR_STRING:
 
2208
  case DRIZZLE_TYPE_STRING:
 
2209
  case DRIZZLE_TYPE_VARCHAR:
2210
2210
    length*= charset->mbmaxlen;
2211
2211
    key_length= length;
2212
2212
    pack_length= calc_pack_length(sql_type, length);
2213
2213
    break;
2214
 
  case FIELD_TYPE_ENUM:
2215
 
  case FIELD_TYPE_SET:
 
2214
  case DRIZZLE_TYPE_ENUM:
 
2215
  case DRIZZLE_TYPE_SET:
2216
2216
    /* Pack_length already calculated in sql_parse.cc */
2217
2217
    length*= charset->mbmaxlen;
2218
2218
    key_length= pack_length;
2219
2219
    break;
2220
 
  case FIELD_TYPE_NEWDECIMAL:
 
2220
  case DRIZZLE_TYPE_NEWDECIMAL:
2221
2221
    key_length= pack_length=
2222
2222
      my_decimal_get_binary_size(my_decimal_length_to_precision(length,
2223
2223
                                                                decimals,
2315
2315
    it is NOT NULL, not an AUTO_INCREMENT field and not a TIMESTAMP.
2316
2316
  */
2317
2317
  if (!fld_default_value && !(fld_type_modifier & AUTO_INCREMENT_FLAG) &&
2318
 
      (fld_type_modifier & NOT_NULL_FLAG) && fld_type != FIELD_TYPE_TIMESTAMP)
 
2318
      (fld_type_modifier & NOT_NULL_FLAG) && fld_type != DRIZZLE_TYPE_TIMESTAMP)
2319
2319
    flags|= NO_DEFAULT_VALUE_FLAG;
2320
2320
 
2321
2321
  if (fld_length && !(length= (uint) atoi(fld_length)))
2323
2323
  sign_len= fld_type_modifier & UNSIGNED_FLAG ? 0 : 1;
2324
2324
 
2325
2325
  switch (fld_type) {
2326
 
  case FIELD_TYPE_TINY:
 
2326
  case DRIZZLE_TYPE_TINY:
2327
2327
    if (!fld_length)
2328
2328
      length= MAX_TINYINT_WIDTH+sign_len;
2329
2329
    allowed_type_modifier= AUTO_INCREMENT_FLAG;
2330
2330
    break;
2331
 
  case FIELD_TYPE_SHORT:
 
2331
  case DRIZZLE_TYPE_SHORT:
2332
2332
    if (!fld_length)
2333
2333
      length= MAX_SMALLINT_WIDTH+sign_len;
2334
2334
    allowed_type_modifier= AUTO_INCREMENT_FLAG;
2335
2335
    break;
2336
 
  case FIELD_TYPE_LONG:
 
2336
  case DRIZZLE_TYPE_LONG:
2337
2337
    if (!fld_length)
2338
2338
      length= MAX_INT_WIDTH+sign_len;
2339
2339
    allowed_type_modifier= AUTO_INCREMENT_FLAG;
2340
2340
    break;
2341
 
  case FIELD_TYPE_LONGLONG:
 
2341
  case DRIZZLE_TYPE_LONGLONG:
2342
2342
    if (!fld_length)
2343
2343
      length= MAX_BIGINT_WIDTH;
2344
2344
    allowed_type_modifier= AUTO_INCREMENT_FLAG;
2345
2345
    break;
2346
 
  case FIELD_TYPE_NULL:
 
2346
  case DRIZZLE_TYPE_NULL:
2347
2347
    break;
2348
 
  case FIELD_TYPE_NEWDECIMAL:
 
2348
  case DRIZZLE_TYPE_NEWDECIMAL:
2349
2349
    my_decimal_trim(&length, &decimals);
2350
2350
    if (length > DECIMAL_MAX_PRECISION)
2351
2351
    {
2364
2364
    pack_length=
2365
2365
      my_decimal_get_binary_size(length, decimals);
2366
2366
    break;
2367
 
  case FIELD_TYPE_VARCHAR:
 
2367
  case DRIZZLE_TYPE_VARCHAR:
2368
2368
    /*
2369
2369
      Long VARCHAR's are automaticly converted to blobs in mysql_prepare_table
2370
2370
      if they don't have a default value
2371
2371
    */
2372
2372
    max_field_charlength= MAX_FIELD_VARCHARLENGTH;
2373
2373
    break;
2374
 
  case FIELD_TYPE_STRING:
 
2374
  case DRIZZLE_TYPE_STRING:
2375
2375
    break;
2376
 
  case FIELD_TYPE_BLOB:
 
2376
  case DRIZZLE_TYPE_BLOB:
2377
2377
    if (fld_default_value)
2378
2378
    {
2379
2379
      /* Allow empty as default value. */
2405
2405
    }
2406
2406
    flags|= BLOB_FLAG;
2407
2407
    break;
2408
 
  case FIELD_TYPE_YEAR:
 
2408
  case DRIZZLE_TYPE_YEAR:
2409
2409
    if (!fld_length || length != 2)
2410
2410
      length= 4; /* Default length */
2411
2411
    flags|= ZEROFILL_FLAG | UNSIGNED_FLAG;
2412
2412
    break;
2413
 
  case FIELD_TYPE_DOUBLE:
 
2413
  case DRIZZLE_TYPE_DOUBLE:
2414
2414
    allowed_type_modifier= AUTO_INCREMENT_FLAG;
2415
2415
    if (!fld_length && !fld_decimals)
2416
2416
    {
2424
2424
      return(true);
2425
2425
    }
2426
2426
    break;
2427
 
  case FIELD_TYPE_TIMESTAMP:
 
2427
  case DRIZZLE_TYPE_TIMESTAMP:
2428
2428
    if (!fld_length)
2429
2429
    {
2430
2430
      /* Compressed date YYYYMMDDHHMMSS */
2478
2478
                                              Field::NONE));
2479
2479
    }
2480
2480
    break;
2481
 
  case FIELD_TYPE_DATE:
 
2481
  case DRIZZLE_TYPE_DATE:
2482
2482
    /* Old date type. */
2483
 
    sql_type= FIELD_TYPE_NEWDATE;
 
2483
    sql_type= DRIZZLE_TYPE_NEWDATE;
2484
2484
    /* fall trough */
2485
 
  case FIELD_TYPE_NEWDATE:
2486
 
    length= 10;
2487
 
    break;
2488
 
  case FIELD_TYPE_TIME:
2489
 
    length= 10;
2490
 
    break;
2491
 
  case FIELD_TYPE_DATETIME:
 
2485
  case DRIZZLE_TYPE_NEWDATE:
 
2486
    length= 10;
 
2487
    break;
 
2488
  case DRIZZLE_TYPE_TIME:
 
2489
    length= 10;
 
2490
    break;
 
2491
  case DRIZZLE_TYPE_DATETIME:
2492
2492
    length= MAX_DATETIME_WIDTH;
2493
2493
    break;
2494
 
  case FIELD_TYPE_SET:
 
2494
  case DRIZZLE_TYPE_SET:
2495
2495
    {
2496
2496
      pack_length= get_set_pack_length(fld_interval_list->elements);
2497
2497
 
2507
2507
      length= 1;
2508
2508
      break;
2509
2509
    }
2510
 
  case FIELD_TYPE_ENUM:
 
2510
  case DRIZZLE_TYPE_ENUM:
2511
2511
    {
2512
2512
      /* Should be safe. */
2513
2513
      pack_length= get_enum_pack_length(fld_interval_list->elements);
2516
2516
      String *tmp;
2517
2517
      while ((tmp= it++))
2518
2518
        interval_list.push_back(tmp);
2519
 
      length= 1; /* See comment for FIELD_TYPE_SET above. */
 
2519
      length= 1; /* See comment for DRIZZLE_TYPE_SET above. */
2520
2520
      break;
2521
2521
   }
2522
 
  case FIELD_TYPE_VAR_STRING:
 
2522
  case DRIZZLE_TYPE_VAR_STRING:
2523
2523
    assert(0);  /* Impossible, we killed it */
2524
2524
    break;
2525
2525
  }
2527
2527
  char_length= length;
2528
2528
 
2529
2529
  if (!(flags & BLOB_FLAG) &&
2530
 
      ((length > max_field_charlength && fld_type != FIELD_TYPE_SET &&
2531
 
        fld_type != FIELD_TYPE_ENUM &&
2532
 
        (fld_type != FIELD_TYPE_VARCHAR || fld_default_value)) ||
 
2530
      ((length > max_field_charlength && fld_type != DRIZZLE_TYPE_SET &&
 
2531
        fld_type != DRIZZLE_TYPE_ENUM &&
 
2532
        (fld_type != DRIZZLE_TYPE_VARCHAR || fld_default_value)) ||
2533
2533
       (!length &&
2534
 
        fld_type != FIELD_TYPE_STRING &&
2535
 
        fld_type != FIELD_TYPE_VARCHAR)))
 
2534
        fld_type != DRIZZLE_TYPE_STRING &&
 
2535
        fld_type != DRIZZLE_TYPE_VARCHAR)))
2536
2536
  {
2537
 
    my_error((fld_type == FIELD_TYPE_VAR_STRING ||
2538
 
              fld_type == FIELD_TYPE_VARCHAR ||
2539
 
              fld_type == FIELD_TYPE_STRING) ?  ER_TOO_BIG_FIELDLENGTH :
 
2537
    my_error((fld_type == DRIZZLE_TYPE_VAR_STRING ||
 
2538
              fld_type == DRIZZLE_TYPE_VARCHAR ||
 
2539
              fld_type == DRIZZLE_TYPE_STRING) ?  ER_TOO_BIG_FIELDLENGTH :
2540
2540
                                                ER_TOO_BIG_DISPLAYWIDTH,
2541
2541
              MYF(0),
2542
2542
              fld_name, max_field_charlength); /* purecov: inspected */
2557
2557
{
2558
2558
  enum_field_types type;
2559
2559
 
2560
 
  type= FIELD_TYPE_BLOB;
 
2560
  type= DRIZZLE_TYPE_BLOB;
2561
2561
 
2562
2562
  return type;
2563
2563
}
2570
2570
uint32_t calc_pack_length(enum_field_types type,uint32_t length)
2571
2571
{
2572
2572
  switch (type) {
2573
 
  case FIELD_TYPE_VAR_STRING:
2574
 
  case FIELD_TYPE_STRING:
2575
 
  case FIELD_TYPE_VARCHAR:     return (length + (length < 256 ? 1: 2));
2576
 
  case FIELD_TYPE_YEAR:
2577
 
  case FIELD_TYPE_TINY  : return 1;
2578
 
  case FIELD_TYPE_SHORT : return 2;
2579
 
  case FIELD_TYPE_DATE:
2580
 
  case FIELD_TYPE_NEWDATE:
2581
 
  case FIELD_TYPE_TIME:   return 3;
2582
 
  case FIELD_TYPE_TIMESTAMP:
2583
 
  case FIELD_TYPE_LONG  : return 4;
2584
 
  case FIELD_TYPE_DOUBLE: return sizeof(double);
2585
 
  case FIELD_TYPE_DATETIME:
2586
 
  case FIELD_TYPE_LONGLONG: return 8;   /* Don't crash if no int64_t */
2587
 
  case FIELD_TYPE_NULL  : return 0;
2588
 
  case FIELD_TYPE_BLOB:         return 4+portable_sizeof_char_ptr;
2589
 
  case FIELD_TYPE_SET:
2590
 
  case FIELD_TYPE_ENUM:
2591
 
  case FIELD_TYPE_NEWDECIMAL:
 
2573
  case DRIZZLE_TYPE_VAR_STRING:
 
2574
  case DRIZZLE_TYPE_STRING:
 
2575
  case DRIZZLE_TYPE_VARCHAR:     return (length + (length < 256 ? 1: 2));
 
2576
  case DRIZZLE_TYPE_YEAR:
 
2577
  case DRIZZLE_TYPE_TINY        : return 1;
 
2578
  case DRIZZLE_TYPE_SHORT : return 2;
 
2579
  case DRIZZLE_TYPE_DATE:
 
2580
  case DRIZZLE_TYPE_NEWDATE:
 
2581
  case DRIZZLE_TYPE_TIME:   return 3;
 
2582
  case DRIZZLE_TYPE_TIMESTAMP:
 
2583
  case DRIZZLE_TYPE_LONG        : return 4;
 
2584
  case DRIZZLE_TYPE_DOUBLE: return sizeof(double);
 
2585
  case DRIZZLE_TYPE_DATETIME:
 
2586
  case DRIZZLE_TYPE_LONGLONG: return 8; /* Don't crash if no int64_t */
 
2587
  case DRIZZLE_TYPE_NULL        : return 0;
 
2588
  case DRIZZLE_TYPE_BLOB:               return 4+portable_sizeof_char_ptr;
 
2589
  case DRIZZLE_TYPE_SET:
 
2590
  case DRIZZLE_TYPE_ENUM:
 
2591
  case DRIZZLE_TYPE_NEWDECIMAL:
2592
2592
    abort(); return 0;                          // This shouldn't happen
2593
2593
  default:
2594
2594
    return 0;
2599
2599
uint pack_length_to_packflag(uint type)
2600
2600
{
2601
2601
  switch (type) {
2602
 
    case 1: return f_settype((uint) FIELD_TYPE_TINY);
2603
 
    case 2: return f_settype((uint) FIELD_TYPE_SHORT);
 
2602
    case 1: return f_settype((uint) DRIZZLE_TYPE_TINY);
 
2603
    case 2: return f_settype((uint) DRIZZLE_TYPE_SHORT);
2604
2604
    case 3: assert(1);
2605
 
    case 4: return f_settype((uint) FIELD_TYPE_LONG);
2606
 
    case 8: return f_settype((uint) FIELD_TYPE_LONGLONG);
 
2605
    case 4: return f_settype((uint) DRIZZLE_TYPE_LONG);
 
2606
    case 8: return f_settype((uint) DRIZZLE_TYPE_LONGLONG);
2607
2607
  }
2608
2608
  return 0;                                     // This shouldn't happen
2609
2609
}
2629
2629
  }
2630
2630
 
2631
2631
  switch (field_type) {
2632
 
  case FIELD_TYPE_DATE:
2633
 
  case FIELD_TYPE_NEWDATE:
2634
 
  case FIELD_TYPE_TIME:
2635
 
  case FIELD_TYPE_DATETIME:
2636
 
  case FIELD_TYPE_TIMESTAMP:
 
2632
  case DRIZZLE_TYPE_DATE:
 
2633
  case DRIZZLE_TYPE_NEWDATE:
 
2634
  case DRIZZLE_TYPE_TIME:
 
2635
  case DRIZZLE_TYPE_DATETIME:
 
2636
  case DRIZZLE_TYPE_TIMESTAMP:
2637
2637
    field_charset= &my_charset_bin;
2638
2638
  default: break;
2639
2639
  }
2642
2642
  {
2643
2643
    if (!f_is_packed(pack_flag))
2644
2644
    {
2645
 
      if (field_type == FIELD_TYPE_STRING ||
2646
 
          field_type == FIELD_TYPE_VAR_STRING)
 
2645
      if (field_type == DRIZZLE_TYPE_STRING ||
 
2646
          field_type == DRIZZLE_TYPE_VAR_STRING)
2647
2647
        return new Field_string(ptr,field_length,null_pos,null_bit,
2648
2648
                                unireg_check, field_name,
2649
2649
                                field_charset);
2650
 
      if (field_type == FIELD_TYPE_VARCHAR)
 
2650
      if (field_type == DRIZZLE_TYPE_VARCHAR)
2651
2651
        return new Field_varstring(ptr,field_length,
2652
2652
                                   HA_VARCHAR_PACKLENGTH(field_length),
2653
2653
                                   null_pos,null_bit,
2679
2679
  }
2680
2680
 
2681
2681
  switch (field_type) {
2682
 
  case FIELD_TYPE_NEWDECIMAL:
 
2682
  case DRIZZLE_TYPE_NEWDECIMAL:
2683
2683
    return new Field_new_decimal(ptr,field_length,null_pos,null_bit,
2684
2684
                                 unireg_check, field_name,
2685
2685
                                 f_decimals(pack_flag),
2686
2686
                                 f_is_zerofill(pack_flag) != 0,
2687
2687
                                 f_is_dec(pack_flag) == 0);
2688
 
  case FIELD_TYPE_DOUBLE:
 
2688
  case DRIZZLE_TYPE_DOUBLE:
2689
2689
    return new Field_double(ptr,field_length,null_pos,null_bit,
2690
2690
                            unireg_check, field_name,
2691
2691
                            f_decimals(pack_flag),
2692
2692
                            f_is_zerofill(pack_flag) != 0,
2693
2693
                            f_is_dec(pack_flag)== 0);
2694
 
  case FIELD_TYPE_TINY:
 
2694
  case DRIZZLE_TYPE_TINY:
2695
2695
    return new Field_tiny(ptr,field_length,null_pos,null_bit,
2696
2696
                          unireg_check, field_name,
2697
2697
                          f_is_zerofill(pack_flag) != 0,
2698
2698
                          f_is_dec(pack_flag) == 0);
2699
 
  case FIELD_TYPE_SHORT:
 
2699
  case DRIZZLE_TYPE_SHORT:
2700
2700
    return new Field_short(ptr,field_length,null_pos,null_bit,
2701
2701
                           unireg_check, field_name,
2702
2702
                           f_is_zerofill(pack_flag) != 0,
2703
2703
                           f_is_dec(pack_flag) == 0);
2704
 
  case FIELD_TYPE_LONG:
 
2704
  case DRIZZLE_TYPE_LONG:
2705
2705
    return new Field_long(ptr,field_length,null_pos,null_bit,
2706
2706
                           unireg_check, field_name,
2707
2707
                           f_is_zerofill(pack_flag) != 0,
2708
2708
                           f_is_dec(pack_flag) == 0);
2709
 
  case FIELD_TYPE_LONGLONG:
 
2709
  case DRIZZLE_TYPE_LONGLONG:
2710
2710
    return new Field_int64_t(ptr,field_length,null_pos,null_bit,
2711
2711
                              unireg_check, field_name,
2712
2712
                              f_is_zerofill(pack_flag) != 0,
2713
2713
                              f_is_dec(pack_flag) == 0);
2714
 
  case FIELD_TYPE_TIMESTAMP:
 
2714
  case DRIZZLE_TYPE_TIMESTAMP:
2715
2715
    return new Field_timestamp(ptr,field_length, null_pos, null_bit,
2716
2716
                               unireg_check, field_name, share,
2717
2717
                               field_charset);
2718
 
  case FIELD_TYPE_YEAR:
 
2718
  case DRIZZLE_TYPE_YEAR:
2719
2719
    return new Field_year(ptr,field_length,null_pos,null_bit,
2720
2720
                          unireg_check, field_name);
2721
 
  case FIELD_TYPE_DATE:
2722
 
  case FIELD_TYPE_NEWDATE:
 
2721
  case DRIZZLE_TYPE_DATE:
 
2722
  case DRIZZLE_TYPE_NEWDATE:
2723
2723
    return new Field_newdate(ptr,null_pos,null_bit,
2724
2724
                             unireg_check, field_name, field_charset);
2725
 
  case FIELD_TYPE_TIME:
 
2725
  case DRIZZLE_TYPE_TIME:
2726
2726
    return new Field_time(ptr,null_pos,null_bit,
2727
2727
                          unireg_check, field_name, field_charset);
2728
 
  case FIELD_TYPE_DATETIME:
 
2728
  case DRIZZLE_TYPE_DATETIME:
2729
2729
    return new Field_datetime(ptr,null_pos,null_bit,
2730
2730
                              unireg_check, field_name, field_charset);
2731
 
  case FIELD_TYPE_NULL:
 
2731
  case DRIZZLE_TYPE_NULL:
2732
2732
    return new Field_null(ptr, field_length, unireg_check, field_name,
2733
2733
                          field_charset);
2734
2734
  default:                                      // Impossible (Wrong version)
2760
2760
                  portable_sizeof_char_ptr);
2761
2761
 
2762
2762
  switch (sql_type) {
2763
 
  case FIELD_TYPE_BLOB:
2764
 
    sql_type= FIELD_TYPE_BLOB;
 
2763
  case DRIZZLE_TYPE_BLOB:
 
2764
    sql_type= DRIZZLE_TYPE_BLOB;
2765
2765
    length/= charset->mbmaxlen;
2766
2766
    key_length/= charset->mbmaxlen;
2767
2767
    break;
2768
 
  case FIELD_TYPE_STRING:
 
2768
  case DRIZZLE_TYPE_STRING:
2769
2769
    /* Change CHAR -> VARCHAR if dynamic record length */
2770
 
    if (old_field->type() == FIELD_TYPE_VAR_STRING)
2771
 
      sql_type= FIELD_TYPE_VARCHAR;
 
2770
    if (old_field->type() == DRIZZLE_TYPE_VAR_STRING)
 
2771
      sql_type= DRIZZLE_TYPE_VARCHAR;
2772
2772
    /* fall through */
2773
2773
 
2774
 
  case FIELD_TYPE_ENUM:
2775
 
  case FIELD_TYPE_SET:
2776
 
  case FIELD_TYPE_VARCHAR:
2777
 
  case FIELD_TYPE_VAR_STRING:
 
2774
  case DRIZZLE_TYPE_ENUM:
 
2775
  case DRIZZLE_TYPE_SET:
 
2776
  case DRIZZLE_TYPE_VARCHAR:
 
2777
  case DRIZZLE_TYPE_VAR_STRING:
2778
2778
    /* This is corrected in create_length_to_internal_length */
2779
2779
    length= (length+charset->mbmaxlen-1) / charset->mbmaxlen;
2780
2780
    break;
2791
2791
 
2792
2792
  if (!(flags & (NO_DEFAULT_VALUE_FLAG | BLOB_FLAG)) &&
2793
2793
      old_field->ptr && orig_field &&
2794
 
      (sql_type != FIELD_TYPE_TIMESTAMP ||                /* set def only if */
 
2794
      (sql_type != DRIZZLE_TYPE_TIMESTAMP ||                /* set def only if */
2795
2795
       old_field->table->timestamp_field != old_field ||  /* timestamp field */ 
2796
2796
       unireg_check == Field::TIMESTAMP_UN_FIELD))        /* has default val */
2797
2797
  {