~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field.cc

  • Committer: Monty Taylor
  • Date: 2008-10-20 21:28:35 UTC
  • mto: This revision was merged to the branch mainline in revision 532.
  • Revision ID: monty@inaugust.com-20081020212835-8nnc4n60mzayf7l9
Removed the split.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2000-2006 MySQL AB
2
 
 
3
 
   This program is free software; you can redistribute it and/or modify
4
 
   it under the terms of the GNU General Public License as published by
5
 
   the Free Software Foundation; version 2 of the License.
6
 
 
7
 
   This program is distributed in the hope that it will be useful,
8
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
 
   GNU General Public License for more details.
11
 
 
12
 
   You should have received a copy of the GNU General Public License
13
 
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
 
 
 
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
 
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
 
3
 *
 
4
 *  Copyright (C) 2008 MySQL
 
5
 *
 
6
 *  This program is free software; you can redistribute it and/or modify
 
7
 *  it under the terms of the GNU General Public License as published by
 
8
 *  the Free Software Foundation; either version 2 of the License, or
 
9
 *  (at your option) any later version.
 
10
 *
 
11
 *  This program is distributed in the hope that it will be useful,
 
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
 *  GNU General Public License for more details.
 
15
 *
 
16
 *  You should have received a copy of the GNU General Public License
 
17
 *  along with this program; if not, write to the Free Software
 
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
19
 */
16
20
 
17
21
/**
18
22
  @file
36
40
#endif
37
41
 
38
42
 
39
 
/*
40
 
  Rules for merging different types of fields in UNION
41
 
 
42
 
  NOTE: to avoid 256*256 table, gap in table types numeration is skiped
43
 
  following #defines describe that gap and how to canculate number of fields
44
 
  and index of field in thia array.
45
 
*/
46
 
#define FIELDTYPE_TEAR_FROM (DRIZZLE_TYPE_VARCHAR + 1)
47
 
#define FIELDTYPE_TEAR_TO   (DRIZZLE_TYPE_VIRTUAL - 1)
48
 
#define FIELDTYPE_NUM (FIELDTYPE_TEAR_FROM + (255 - FIELDTYPE_TEAR_TO))
49
 
inline int field_type2index (enum_field_types field_type)
50
 
{
51
 
  return (field_type < FIELDTYPE_TEAR_FROM ?
52
 
          field_type :
53
 
          ((int)FIELDTYPE_TEAR_FROM) + (field_type - FIELDTYPE_TEAR_TO) - 1);
54
 
}
55
 
 
56
 
 
57
 
static enum_field_types field_types_merge_rules [FIELDTYPE_NUM][FIELDTYPE_NUM]=
 
43
static enum_field_types
 
44
field_types_merge_rules [DRIZZLE_TYPE_MAX+1][DRIZZLE_TYPE_MAX+1]=
58
45
{
59
46
  /* DRIZZLE_TYPE_TINY -> */
60
47
  {
61
 
  //DRIZZLE_TYPE_TINY
 
48
    //DRIZZLE_TYPE_TINY
62
49
    DRIZZLE_TYPE_TINY,
63
 
  //DRIZZLE_TYPE_LONG
 
50
    //DRIZZLE_TYPE_LONG
64
51
    DRIZZLE_TYPE_LONG,
65
 
  //DRIZZLE_TYPE_DOUBLE
 
52
    //DRIZZLE_TYPE_DOUBLE
66
53
    DRIZZLE_TYPE_DOUBLE,
67
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
68
 
    DRIZZLE_TYPE_TINY,        DRIZZLE_TYPE_VARCHAR,
69
 
  //DRIZZLE_TYPE_LONGLONG
 
54
    //DRIZZLE_TYPE_NULL
 
55
    DRIZZLE_TYPE_TINY,
 
56
    //DRIZZLE_TYPE_TIMESTAMP
 
57
    DRIZZLE_TYPE_VARCHAR,
 
58
    //DRIZZLE_TYPE_LONGLONG
70
59
    DRIZZLE_TYPE_LONGLONG,
71
 
  //DRIZZLE_TYPE_TIME
72
 
    DRIZZLE_TYPE_VARCHAR,
73
 
  //DRIZZLE_TYPE_DATETIME
74
 
    DRIZZLE_TYPE_VARCHAR,
75
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
76
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
77
 
  //DRIZZLE_TYPE_VIRTUAL
 
60
    //DRIZZLE_TYPE_TIME
 
61
    DRIZZLE_TYPE_VARCHAR,
 
62
    //DRIZZLE_TYPE_DATETIME
 
63
    DRIZZLE_TYPE_VARCHAR,
 
64
    //DRIZZLE_TYPE_NEWDATE
 
65
    DRIZZLE_TYPE_VARCHAR,
 
66
    //DRIZZLE_TYPE_VARCHAR
 
67
    DRIZZLE_TYPE_VARCHAR,
 
68
    //DRIZZLE_TYPE_VIRTUAL
78
69
    DRIZZLE_TYPE_VIRTUAL,
79
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
80
 
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
81
 
  //DRIZZLE_TYPE_BLOB
 
70
    //DRIZZLE_TYPE_NEWDECIMAL
 
71
    DRIZZLE_TYPE_NEWDECIMAL,
 
72
    //DRIZZLE_TYPE_ENUM
 
73
    DRIZZLE_TYPE_VARCHAR,
 
74
    //DRIZZLE_TYPE_BLOB
82
75
    DRIZZLE_TYPE_BLOB,
83
76
  },
84
77
  /* DRIZZLE_TYPE_LONG -> */
85
78
  {
86
 
  //DRIZZLE_TYPE_TINY
87
 
    DRIZZLE_TYPE_LONG,
88
 
  //DRIZZLE_TYPE_LONG
89
 
    DRIZZLE_TYPE_LONG,
90
 
  //DRIZZLE_TYPE_DOUBLE
 
79
    //DRIZZLE_TYPE_TINY
 
80
    DRIZZLE_TYPE_LONG,
 
81
    //DRIZZLE_TYPE_LONG
 
82
    DRIZZLE_TYPE_LONG,
 
83
    //DRIZZLE_TYPE_DOUBLE
91
84
    DRIZZLE_TYPE_DOUBLE,
92
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
93
 
    DRIZZLE_TYPE_LONG,         DRIZZLE_TYPE_VARCHAR,
94
 
  //DRIZZLE_TYPE_LONGLONG
 
85
    //DRIZZLE_TYPE_NULL
 
86
    DRIZZLE_TYPE_LONG,
 
87
    //DRIZZLE_TYPE_TIMESTAMP
 
88
    DRIZZLE_TYPE_VARCHAR,
 
89
    //DRIZZLE_TYPE_LONGLONG
95
90
    DRIZZLE_TYPE_LONGLONG,
96
 
  //DRIZZLE_TYPE_TIME
97
 
    DRIZZLE_TYPE_VARCHAR,
98
 
  //DRIZZLE_TYPE_DATETIME
99
 
    DRIZZLE_TYPE_VARCHAR,
100
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
101
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
102
 
  //DRIZZLE_TYPE_VIRTUAL
 
91
    //DRIZZLE_TYPE_TIME
 
92
    DRIZZLE_TYPE_VARCHAR,
 
93
    //DRIZZLE_TYPE_DATETIME
 
94
    DRIZZLE_TYPE_VARCHAR,
 
95
    //DRIZZLE_TYPE_NEWDATE
 
96
    DRIZZLE_TYPE_VARCHAR,
 
97
    //DRIZZLE_TYPE_VARCHAR
 
98
    DRIZZLE_TYPE_VARCHAR,
 
99
    //DRIZZLE_TYPE_VIRTUAL
103
100
    DRIZZLE_TYPE_VIRTUAL,
104
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
105
 
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
106
 
  //DRIZZLE_TYPE_BLOB
 
101
    //DRIZZLE_TYPE_NEWDECIMAL
 
102
    DRIZZLE_TYPE_NEWDECIMAL,
 
103
    //DRIZZLE_TYPE_ENUM
 
104
    DRIZZLE_TYPE_VARCHAR,
 
105
    //DRIZZLE_TYPE_BLOB
107
106
    DRIZZLE_TYPE_BLOB,
108
107
  },
109
108
  /* DRIZZLE_TYPE_DOUBLE -> */
110
109
  {
111
 
  //DRIZZLE_TYPE_TINY
112
 
    DRIZZLE_TYPE_DOUBLE,
113
 
  //DRIZZLE_TYPE_LONG
114
 
    DRIZZLE_TYPE_DOUBLE,
115
 
  //DRIZZLE_TYPE_DOUBLE
116
 
    DRIZZLE_TYPE_DOUBLE,
117
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
118
 
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_VARCHAR,
119
 
  //DRIZZLE_TYPE_LONGLONG
120
 
    DRIZZLE_TYPE_DOUBLE,
121
 
  //DRIZZLE_TYPE_TIME
122
 
    DRIZZLE_TYPE_VARCHAR,
123
 
  //DRIZZLE_TYPE_DATETIME
124
 
    DRIZZLE_TYPE_VARCHAR,
125
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
126
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
127
 
  //DRIZZLE_TYPE_VIRTUAL
 
110
    //DRIZZLE_TYPE_TINY
 
111
    DRIZZLE_TYPE_DOUBLE,
 
112
    //DRIZZLE_TYPE_LONG
 
113
    DRIZZLE_TYPE_DOUBLE,
 
114
    //DRIZZLE_TYPE_DOUBLE
 
115
    DRIZZLE_TYPE_DOUBLE,
 
116
    //DRIZZLE_TYPE_NULL
 
117
    DRIZZLE_TYPE_DOUBLE,
 
118
    //DRIZZLE_TYPE_TIMESTAMP
 
119
    DRIZZLE_TYPE_VARCHAR,
 
120
    //DRIZZLE_TYPE_LONGLONG
 
121
    DRIZZLE_TYPE_DOUBLE,
 
122
    //DRIZZLE_TYPE_TIME
 
123
    DRIZZLE_TYPE_VARCHAR,
 
124
    //DRIZZLE_TYPE_DATETIME
 
125
    DRIZZLE_TYPE_VARCHAR,
 
126
    //DRIZZLE_TYPE_NEWDATE
 
127
    DRIZZLE_TYPE_VARCHAR,
 
128
    //DRIZZLE_TYPE_VARCHAR
 
129
    DRIZZLE_TYPE_VARCHAR,
 
130
    //DRIZZLE_TYPE_VIRTUAL
128
131
    DRIZZLE_TYPE_VIRTUAL,
129
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
130
 
    DRIZZLE_TYPE_DOUBLE,      DRIZZLE_TYPE_VARCHAR,
131
 
  //DRIZZLE_TYPE_BLOB
 
132
    //DRIZZLE_TYPE_NEWDECIMAL
 
133
    DRIZZLE_TYPE_DOUBLE,
 
134
    //DRIZZLE_TYPE_ENUM
 
135
    DRIZZLE_TYPE_VARCHAR,
 
136
    //DRIZZLE_TYPE_BLOB
132
137
    DRIZZLE_TYPE_BLOB,
133
138
  },
134
139
  /* DRIZZLE_TYPE_NULL -> */
135
140
  {
136
 
  //DRIZZLE_TYPE_TINY
 
141
    //DRIZZLE_TYPE_TINY
137
142
    DRIZZLE_TYPE_TINY,
138
 
  //DRIZZLE_TYPE_LONG
 
143
    //DRIZZLE_TYPE_LONG
139
144
    DRIZZLE_TYPE_LONG,
140
 
  //DRIZZLE_TYPE_DOUBLE
 
145
    //DRIZZLE_TYPE_DOUBLE
141
146
    DRIZZLE_TYPE_DOUBLE,
142
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
143
 
    DRIZZLE_TYPE_NULL,        DRIZZLE_TYPE_TIMESTAMP,
144
 
  //DRIZZLE_TYPE_LONGLONG
 
147
    //DRIZZLE_TYPE_NULL
 
148
    DRIZZLE_TYPE_NULL,
 
149
    //DRIZZLE_TYPE_TIMESTAMP
 
150
    DRIZZLE_TYPE_TIMESTAMP,
 
151
    //DRIZZLE_TYPE_LONGLONG
145
152
    DRIZZLE_TYPE_LONGLONG,
146
 
  //DRIZZLE_TYPE_TIME
 
153
    //DRIZZLE_TYPE_TIME
147
154
    DRIZZLE_TYPE_TIME,
148
 
  //DRIZZLE_TYPE_DATETIME
 
155
    //DRIZZLE_TYPE_DATETIME
149
156
    DRIZZLE_TYPE_DATETIME,
150
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
151
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
152
 
  //DRIZZLE_TYPE_VIRTUAL
 
157
    //DRIZZLE_TYPE_NEWDATE
 
158
    DRIZZLE_TYPE_NEWDATE,
 
159
    //DRIZZLE_TYPE_VARCHAR
 
160
    DRIZZLE_TYPE_VARCHAR,
 
161
    //DRIZZLE_TYPE_VIRTUAL
153
162
    DRIZZLE_TYPE_VIRTUAL,
154
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
155
 
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_ENUM,
156
 
  //DRIZZLE_TYPE_BLOB
 
163
    //DRIZZLE_TYPE_NEWDECIMAL
 
164
    DRIZZLE_TYPE_NEWDECIMAL,
 
165
    //DRIZZLE_TYPE_ENUM
 
166
    DRIZZLE_TYPE_ENUM,
 
167
    //DRIZZLE_TYPE_BLOB
157
168
    DRIZZLE_TYPE_BLOB,
158
169
  },
159
170
  /* DRIZZLE_TYPE_TIMESTAMP -> */
160
171
  {
161
 
  //DRIZZLE_TYPE_TINY
162
 
    DRIZZLE_TYPE_VARCHAR,
163
 
  //DRIZZLE_TYPE_LONG
164
 
    DRIZZLE_TYPE_VARCHAR,
165
 
  //DRIZZLE_TYPE_DOUBLE
166
 
    DRIZZLE_TYPE_VARCHAR,
167
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
168
 
    DRIZZLE_TYPE_TIMESTAMP,   DRIZZLE_TYPE_TIMESTAMP,
169
 
  //DRIZZLE_TYPE_LONGLONG
170
 
    DRIZZLE_TYPE_VARCHAR,
171
 
  //DRIZZLE_TYPE_TIME
172
 
    DRIZZLE_TYPE_DATETIME,
173
 
  //DRIZZLE_TYPE_DATETIME
174
 
    DRIZZLE_TYPE_DATETIME,
175
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
176
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
177
 
  //DRIZZLE_TYPE_VIRTUAL
 
172
    //DRIZZLE_TYPE_TINY
 
173
    DRIZZLE_TYPE_VARCHAR,
 
174
    //DRIZZLE_TYPE_LONG
 
175
    DRIZZLE_TYPE_VARCHAR,
 
176
    //DRIZZLE_TYPE_DOUBLE
 
177
    DRIZZLE_TYPE_VARCHAR,
 
178
    //DRIZZLE_TYPE_NULL
 
179
    DRIZZLE_TYPE_TIMESTAMP,
 
180
    //DRIZZLE_TYPE_TIMESTAMP
 
181
    DRIZZLE_TYPE_TIMESTAMP,
 
182
    //DRIZZLE_TYPE_LONGLONG
 
183
    DRIZZLE_TYPE_VARCHAR,
 
184
    //DRIZZLE_TYPE_TIME
 
185
    DRIZZLE_TYPE_DATETIME,
 
186
    //DRIZZLE_TYPE_DATETIME
 
187
    DRIZZLE_TYPE_DATETIME,
 
188
    //DRIZZLE_TYPE_NEWDATE
 
189
    DRIZZLE_TYPE_NEWDATE,
 
190
    //DRIZZLE_TYPE_VARCHAR
 
191
    DRIZZLE_TYPE_VARCHAR,
 
192
    //DRIZZLE_TYPE_VIRTUAL
178
193
    DRIZZLE_TYPE_VIRTUAL,
179
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
180
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
181
 
  //DRIZZLE_TYPE_BLOB
 
194
    //DRIZZLE_TYPE_NEWDECIMAL
 
195
    DRIZZLE_TYPE_VARCHAR,
 
196
    //DRIZZLE_TYPE_ENUM
 
197
    DRIZZLE_TYPE_VARCHAR,
 
198
    //DRIZZLE_TYPE_BLOB
182
199
    DRIZZLE_TYPE_BLOB,
183
200
  },
184
201
  /* DRIZZLE_TYPE_LONGLONG -> */
185
202
  {
186
 
  //DRIZZLE_TYPE_TINY
187
 
    DRIZZLE_TYPE_LONGLONG,
188
 
  //DRIZZLE_TYPE_LONG
189
 
    DRIZZLE_TYPE_LONGLONG,
190
 
  //DRIZZLE_TYPE_DOUBLE
 
203
    //DRIZZLE_TYPE_TINY
 
204
    DRIZZLE_TYPE_LONGLONG,
 
205
    //DRIZZLE_TYPE_LONG
 
206
    DRIZZLE_TYPE_LONGLONG,
 
207
    //DRIZZLE_TYPE_DOUBLE
191
208
    DRIZZLE_TYPE_DOUBLE,
192
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
193
 
    DRIZZLE_TYPE_LONGLONG,    DRIZZLE_TYPE_VARCHAR,
194
 
  //DRIZZLE_TYPE_LONGLONG
195
 
    DRIZZLE_TYPE_LONGLONG,
196
 
  //DRIZZLE_TYPE_TIME
197
 
    DRIZZLE_TYPE_VARCHAR,
198
 
  //DRIZZLE_TYPE_DATETIME
199
 
    DRIZZLE_TYPE_VARCHAR,
200
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
201
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
202
 
  //DRIZZLE_TYPE_VIRTUAL
 
209
    //DRIZZLE_TYPE_NULL
 
210
    DRIZZLE_TYPE_LONGLONG,
 
211
    //DRIZZLE_TYPE_TIMESTAMP
 
212
    DRIZZLE_TYPE_VARCHAR,
 
213
    //DRIZZLE_TYPE_LONGLONG
 
214
    DRIZZLE_TYPE_LONGLONG,
 
215
    //DRIZZLE_TYPE_TIME
 
216
    DRIZZLE_TYPE_VARCHAR,
 
217
    //DRIZZLE_TYPE_DATETIME
 
218
    DRIZZLE_TYPE_VARCHAR,
 
219
    //DRIZZLE_TYPE_NEWDATE
 
220
    DRIZZLE_TYPE_NEWDATE,
 
221
    //DRIZZLE_TYPE_VARCHAR
 
222
    DRIZZLE_TYPE_VARCHAR,
 
223
    //DRIZZLE_TYPE_VIRTUAL
203
224
    DRIZZLE_TYPE_VIRTUAL,
204
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
205
 
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
206
 
  //DRIZZLE_TYPE_BLOB
 
225
    //DRIZZLE_TYPE_NEWDECIMAL
 
226
    //DRIZZLE_TYPE_ENUM
 
227
    DRIZZLE_TYPE_NEWDECIMAL,
 
228
    DRIZZLE_TYPE_VARCHAR,
 
229
    //DRIZZLE_TYPE_BLOB
207
230
    DRIZZLE_TYPE_BLOB,
208
231
  },
209
232
  /* DRIZZLE_TYPE_TIME -> */
210
233
  {
211
 
  //DRIZZLE_TYPE_TINY
212
 
    DRIZZLE_TYPE_VARCHAR,
213
 
  //DRIZZLE_TYPE_LONG
214
 
    DRIZZLE_TYPE_VARCHAR,
215
 
  //DRIZZLE_TYPE_DOUBLE
216
 
    DRIZZLE_TYPE_VARCHAR,
217
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
218
 
    DRIZZLE_TYPE_TIME,        DRIZZLE_TYPE_DATETIME,
219
 
  //DRIZZLE_TYPE_LONGLONG
220
 
    DRIZZLE_TYPE_VARCHAR,
221
 
  //DRIZZLE_TYPE_TIME
222
 
    DRIZZLE_TYPE_TIME,
223
 
  //DRIZZLE_TYPE_DATETIME
224
 
    DRIZZLE_TYPE_DATETIME,
225
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
226
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
227
 
  //DRIZZLE_TYPE_VIRTUAL
 
234
    //DRIZZLE_TYPE_TINY
 
235
    DRIZZLE_TYPE_VARCHAR,
 
236
    //DRIZZLE_TYPE_LONG
 
237
    DRIZZLE_TYPE_VARCHAR,
 
238
    //DRIZZLE_TYPE_DOUBLE
 
239
    DRIZZLE_TYPE_VARCHAR,
 
240
    //DRIZZLE_TYPE_NULL
 
241
    DRIZZLE_TYPE_TIME,
 
242
    //DRIZZLE_TYPE_TIMESTAMP
 
243
    DRIZZLE_TYPE_DATETIME,
 
244
    //DRIZZLE_TYPE_LONGLONG
 
245
    DRIZZLE_TYPE_VARCHAR,
 
246
    //DRIZZLE_TYPE_TIME
 
247
    DRIZZLE_TYPE_TIME,
 
248
    //DRIZZLE_TYPE_DATETIME
 
249
    DRIZZLE_TYPE_DATETIME,
 
250
    //DRIZZLE_TYPE_NEWDATE
 
251
    DRIZZLE_TYPE_NEWDATE,
 
252
    //DRIZZLE_TYPE_VARCHAR
 
253
    DRIZZLE_TYPE_VARCHAR,
 
254
    //DRIZZLE_TYPE_VIRTUAL
228
255
    DRIZZLE_TYPE_VIRTUAL,
229
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
230
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
231
 
  //DRIZZLE_TYPE_BLOB
 
256
    //DRIZZLE_TYPE_NEWDECIMAL
 
257
    DRIZZLE_TYPE_VARCHAR,
 
258
    //DRIZZLE_TYPE_ENUM
 
259
    DRIZZLE_TYPE_VARCHAR,
 
260
    //DRIZZLE_TYPE_BLOB
232
261
    DRIZZLE_TYPE_BLOB,
233
262
  },
234
263
  /* DRIZZLE_TYPE_DATETIME -> */
235
264
  {
236
 
  //DRIZZLE_TYPE_TINY
237
 
    DRIZZLE_TYPE_VARCHAR,
238
 
  //DRIZZLE_TYPE_LONG
239
 
    DRIZZLE_TYPE_VARCHAR,
240
 
  //DRIZZLE_TYPE_DOUBLE
241
 
    DRIZZLE_TYPE_VARCHAR,
242
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
243
 
    DRIZZLE_TYPE_DATETIME,    DRIZZLE_TYPE_DATETIME,
244
 
  //DRIZZLE_TYPE_LONGLONG
245
 
    DRIZZLE_TYPE_VARCHAR,
246
 
  //DRIZZLE_TYPE_TIME
247
 
    DRIZZLE_TYPE_DATETIME,
248
 
  //DRIZZLE_TYPE_DATETIME
249
 
    DRIZZLE_TYPE_DATETIME,
250
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
251
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
252
 
  //DRIZZLE_TYPE_VIRTUAL
 
265
    //DRIZZLE_TYPE_TINY
 
266
    DRIZZLE_TYPE_VARCHAR,
 
267
    //DRIZZLE_TYPE_LONG
 
268
    DRIZZLE_TYPE_VARCHAR,
 
269
    //DRIZZLE_TYPE_DOUBLE
 
270
    DRIZZLE_TYPE_VARCHAR,
 
271
    //DRIZZLE_TYPE_NULL
 
272
    DRIZZLE_TYPE_DATETIME,
 
273
    //DRIZZLE_TYPE_TIMESTAMP
 
274
    DRIZZLE_TYPE_DATETIME,
 
275
    //DRIZZLE_TYPE_LONGLONG
 
276
    DRIZZLE_TYPE_VARCHAR,
 
277
    //DRIZZLE_TYPE_TIME
 
278
    DRIZZLE_TYPE_DATETIME,
 
279
    //DRIZZLE_TYPE_DATETIME
 
280
    DRIZZLE_TYPE_DATETIME,
 
281
    //DRIZZLE_TYPE_NEWDATE
 
282
    DRIZZLE_TYPE_NEWDATE,
 
283
    //DRIZZLE_TYPE_VARCHAR
 
284
    DRIZZLE_TYPE_VARCHAR,
 
285
    //DRIZZLE_TYPE_VIRTUAL
253
286
    DRIZZLE_TYPE_VIRTUAL,
254
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
255
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
256
 
  //DRIZZLE_TYPE_BLOB
 
287
    //DRIZZLE_TYPE_NEWDECIMAL
 
288
    DRIZZLE_TYPE_VARCHAR,
 
289
    //DRIZZLE_TYPE_ENUM
 
290
    DRIZZLE_TYPE_VARCHAR,
 
291
    //DRIZZLE_TYPE_BLOB
257
292
    DRIZZLE_TYPE_BLOB,
258
293
  },
259
294
  /* DRIZZLE_TYPE_NEWDATE -> */
260
295
  {
261
 
  //DRIZZLE_TYPE_TINY
262
 
    DRIZZLE_TYPE_VARCHAR,
263
 
  //DRIZZLE_TYPE_LONG
264
 
    DRIZZLE_TYPE_VARCHAR,
265
 
  //DRIZZLE_TYPE_DOUBLE
266
 
    DRIZZLE_TYPE_VARCHAR,
267
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
268
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_DATETIME,
269
 
  //DRIZZLE_TYPE_LONGLONG
270
 
    DRIZZLE_TYPE_VARCHAR,
271
 
  //DRIZZLE_TYPE_TIME
272
 
    DRIZZLE_TYPE_DATETIME,
273
 
  //DRIZZLE_TYPE_DATETIME
274
 
    DRIZZLE_TYPE_DATETIME,
275
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
276
 
    DRIZZLE_TYPE_NEWDATE,     DRIZZLE_TYPE_VARCHAR,
277
 
  //DRIZZLE_TYPE_VIRTUAL
 
296
    //DRIZZLE_TYPE_TINY
 
297
    DRIZZLE_TYPE_VARCHAR,
 
298
    //DRIZZLE_TYPE_LONG
 
299
    DRIZZLE_TYPE_VARCHAR,
 
300
    //DRIZZLE_TYPE_DOUBLE
 
301
    DRIZZLE_TYPE_VARCHAR,
 
302
    //DRIZZLE_TYPE_NULL
 
303
    DRIZZLE_TYPE_NEWDATE,
 
304
    //DRIZZLE_TYPE_TIMESTAMP
 
305
    DRIZZLE_TYPE_DATETIME,
 
306
    //DRIZZLE_TYPE_LONGLONG
 
307
    DRIZZLE_TYPE_VARCHAR,
 
308
    //DRIZZLE_TYPE_TIME
 
309
    DRIZZLE_TYPE_DATETIME,
 
310
    //DRIZZLE_TYPE_DATETIME
 
311
    DRIZZLE_TYPE_DATETIME,
 
312
    //DRIZZLE_TYPE_NEWDATE
 
313
    DRIZZLE_TYPE_NEWDATE,
 
314
    //DRIZZLE_TYPE_VARCHAR
 
315
    DRIZZLE_TYPE_VARCHAR,
 
316
    //DRIZZLE_TYPE_VIRTUAL
278
317
    DRIZZLE_TYPE_VIRTUAL,
279
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
280
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
281
 
  //DRIZZLE_TYPE_BLOB
 
318
    //DRIZZLE_TYPE_NEWDECIMAL
 
319
    DRIZZLE_TYPE_VARCHAR,
 
320
    //DRIZZLE_TYPE_ENUM
 
321
    DRIZZLE_TYPE_VARCHAR,
 
322
    //DRIZZLE_TYPE_BLOB
282
323
    DRIZZLE_TYPE_BLOB,
283
324
  },
284
325
  /* DRIZZLE_TYPE_VARCHAR -> */
285
326
  {
286
 
  //DRIZZLE_TYPE_TINY
287
 
    DRIZZLE_TYPE_VARCHAR,
288
 
  //DRIZZLE_TYPE_LONG
289
 
    DRIZZLE_TYPE_VARCHAR,
290
 
  //DRIZZLE_TYPE_DOUBLE
291
 
    DRIZZLE_TYPE_VARCHAR,
292
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
293
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
294
 
  //DRIZZLE_TYPE_LONGLONG
295
 
    DRIZZLE_TYPE_VARCHAR,
296
 
  //DRIZZLE_TYPE_TIME
297
 
    DRIZZLE_TYPE_VARCHAR,
298
 
  //DRIZZLE_TYPE_DATETIME
299
 
    DRIZZLE_TYPE_VARCHAR,
300
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
301
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
302
 
  //DRIZZLE_TYPE_VIRTUAL
 
327
    //DRIZZLE_TYPE_TINY
 
328
    DRIZZLE_TYPE_VARCHAR,
 
329
    //DRIZZLE_TYPE_LONG
 
330
    DRIZZLE_TYPE_VARCHAR,
 
331
    //DRIZZLE_TYPE_DOUBLE
 
332
    DRIZZLE_TYPE_VARCHAR,
 
333
    //DRIZZLE_TYPE_NULL
 
334
    DRIZZLE_TYPE_VARCHAR,
 
335
    //DRIZZLE_TYPE_TIMESTAMP
 
336
    DRIZZLE_TYPE_VARCHAR,
 
337
    //DRIZZLE_TYPE_LONGLONG
 
338
    DRIZZLE_TYPE_VARCHAR,
 
339
    //DRIZZLE_TYPE_TIME
 
340
    DRIZZLE_TYPE_VARCHAR,
 
341
    //DRIZZLE_TYPE_DATETIME
 
342
    DRIZZLE_TYPE_VARCHAR,
 
343
    //DRIZZLE_TYPE_NEWDATE
 
344
    DRIZZLE_TYPE_VARCHAR,
 
345
    //DRIZZLE_TYPE_VARCHAR
 
346
    DRIZZLE_TYPE_VARCHAR,
 
347
    //DRIZZLE_TYPE_VIRTUAL
303
348
    DRIZZLE_TYPE_VIRTUAL,
304
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
305
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
306
 
  //DRIZZLE_TYPE_BLOB
 
349
    //DRIZZLE_TYPE_NEWDECIMAL
 
350
    DRIZZLE_TYPE_VARCHAR,
 
351
    //DRIZZLE_TYPE_ENUM
 
352
    DRIZZLE_TYPE_VARCHAR,
 
353
    //DRIZZLE_TYPE_BLOB
307
354
    DRIZZLE_TYPE_BLOB,
308
355
  },
309
356
  /* DRIZZLE_TYPE_VIRTUAL -> */
310
357
  {
311
 
  //DRIZZLE_TYPE_TINY
312
 
    DRIZZLE_TYPE_VIRTUAL,
313
 
  //DRIZZLE_TYPE_LONG
314
 
    DRIZZLE_TYPE_VIRTUAL,
315
 
  //DRIZZLE_TYPE_DOUBLE
316
 
    DRIZZLE_TYPE_VIRTUAL,
317
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
318
 
    DRIZZLE_TYPE_VIRTUAL,  DRIZZLE_TYPE_VIRTUAL,
319
 
  //DRIZZLE_TYPE_LONGLONG
320
 
    DRIZZLE_TYPE_VIRTUAL,
321
 
  //DRIZZLE_TYPE_TIME
322
 
    DRIZZLE_TYPE_VIRTUAL,
323
 
  //DRIZZLE_TYPE_DATETIME
324
 
    DRIZZLE_TYPE_VIRTUAL,
325
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
326
 
    DRIZZLE_TYPE_VIRTUAL,     DRIZZLE_TYPE_VIRTUAL,
327
 
  //DRIZZLE_TYPE_VIRTUAL
328
 
    DRIZZLE_TYPE_VIRTUAL,
329
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
330
 
    DRIZZLE_TYPE_VIRTUAL,  DRIZZLE_TYPE_VIRTUAL,
331
 
  //DRIZZLE_TYPE_BLOB
 
358
    //DRIZZLE_TYPE_TINY
 
359
    DRIZZLE_TYPE_VIRTUAL,
 
360
    //DRIZZLE_TYPE_LONG
 
361
    DRIZZLE_TYPE_VIRTUAL,
 
362
    //DRIZZLE_TYPE_DOUBLE
 
363
    DRIZZLE_TYPE_VIRTUAL,
 
364
    //DRIZZLE_TYPE_NULL
 
365
    DRIZZLE_TYPE_VIRTUAL,
 
366
    //DRIZZLE_TYPE_TIMESTAMP
 
367
    DRIZZLE_TYPE_VIRTUAL,
 
368
    //DRIZZLE_TYPE_LONGLONG
 
369
    DRIZZLE_TYPE_VIRTUAL,
 
370
    //DRIZZLE_TYPE_TIME
 
371
    DRIZZLE_TYPE_VIRTUAL,
 
372
    //DRIZZLE_TYPE_DATETIME
 
373
    DRIZZLE_TYPE_VIRTUAL,
 
374
    //DRIZZLE_TYPE_NEWDATE
 
375
    DRIZZLE_TYPE_VIRTUAL,
 
376
    //DRIZZLE_TYPE_VARCHAR
 
377
    DRIZZLE_TYPE_VIRTUAL,
 
378
    //DRIZZLE_TYPE_VIRTUAL
 
379
    DRIZZLE_TYPE_VIRTUAL,
 
380
    //DRIZZLE_TYPE_NEWDECIMAL
 
381
    DRIZZLE_TYPE_VIRTUAL,
 
382
    //DRIZZLE_TYPE_ENUM
 
383
    DRIZZLE_TYPE_VIRTUAL,
 
384
    //DRIZZLE_TYPE_BLOB
332
385
    DRIZZLE_TYPE_VIRTUAL,
333
386
  },
334
387
  /* DRIZZLE_TYPE_NEWDECIMAL -> */
335
388
  {
336
 
  //DRIZZLE_TYPE_TINY
337
 
    DRIZZLE_TYPE_NEWDECIMAL,
338
 
  //DRIZZLE_TYPE_LONG
339
 
    DRIZZLE_TYPE_NEWDECIMAL,
340
 
  //DRIZZLE_TYPE_DOUBLE
 
389
    //DRIZZLE_TYPE_TINY
 
390
    DRIZZLE_TYPE_NEWDECIMAL,
 
391
    //DRIZZLE_TYPE_LONG
 
392
    DRIZZLE_TYPE_NEWDECIMAL,
 
393
    //DRIZZLE_TYPE_DOUBLE
341
394
    DRIZZLE_TYPE_DOUBLE,
342
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
343
 
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
344
 
  //DRIZZLE_TYPE_LONGLONG
345
 
    DRIZZLE_TYPE_NEWDECIMAL,
346
 
  //DRIZZLE_TYPE_TIME
347
 
    DRIZZLE_TYPE_VARCHAR,
348
 
  //DRIZZLE_TYPE_DATETIME
349
 
    DRIZZLE_TYPE_VARCHAR,
350
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
351
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
352
 
  //DRIZZLE_TYPE_VIRTUAL
 
395
    //DRIZZLE_TYPE_NULL
 
396
    DRIZZLE_TYPE_NEWDECIMAL,
 
397
    //DRIZZLE_TYPE_TIMESTAMP
 
398
    DRIZZLE_TYPE_VARCHAR,
 
399
    //DRIZZLE_TYPE_LONGLONG
 
400
    DRIZZLE_TYPE_NEWDECIMAL,
 
401
    //DRIZZLE_TYPE_TIME
 
402
    DRIZZLE_TYPE_VARCHAR,
 
403
    //DRIZZLE_TYPE_DATETIME
 
404
    DRIZZLE_TYPE_VARCHAR,
 
405
    //DRIZZLE_TYPE_NEWDATE
 
406
    DRIZZLE_TYPE_VARCHAR,
 
407
    //DRIZZLE_TYPE_VARCHAR
 
408
    DRIZZLE_TYPE_VARCHAR,
 
409
    //DRIZZLE_TYPE_VIRTUAL
353
410
    DRIZZLE_TYPE_VIRTUAL,
354
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
355
 
    DRIZZLE_TYPE_NEWDECIMAL,  DRIZZLE_TYPE_VARCHAR,
356
 
  //DRIZZLE_TYPE_BLOB
 
411
    //DRIZZLE_TYPE_NEWDECIMAL
 
412
    DRIZZLE_TYPE_NEWDECIMAL,
 
413
    //DRIZZLE_TYPE_ENUM
 
414
    DRIZZLE_TYPE_VARCHAR,
 
415
    //DRIZZLE_TYPE_BLOB
357
416
    DRIZZLE_TYPE_BLOB,
358
417
  },
359
418
  /* DRIZZLE_TYPE_ENUM -> */
360
419
  {
361
 
  //DRIZZLE_TYPE_TINY
362
 
    DRIZZLE_TYPE_VARCHAR,
363
 
  //DRIZZLE_TYPE_LONG
364
 
    DRIZZLE_TYPE_VARCHAR,
365
 
  //DRIZZLE_TYPE_DOUBLE
366
 
    DRIZZLE_TYPE_VARCHAR,
367
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
368
 
    DRIZZLE_TYPE_ENUM,        DRIZZLE_TYPE_VARCHAR,
369
 
  //DRIZZLE_TYPE_LONGLONG
370
 
    DRIZZLE_TYPE_VARCHAR,
371
 
  //DRIZZLE_TYPE_TIME
372
 
    DRIZZLE_TYPE_VARCHAR,
373
 
  //DRIZZLE_TYPE_DATETIME
374
 
    DRIZZLE_TYPE_VARCHAR,
375
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
376
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
377
 
  //DRIZZLE_TYPE_VIRTUAL
 
420
    //DRIZZLE_TYPE_TINY
 
421
    DRIZZLE_TYPE_VARCHAR,
 
422
    //DRIZZLE_TYPE_LONG
 
423
    DRIZZLE_TYPE_VARCHAR,
 
424
    //DRIZZLE_TYPE_DOUBLE
 
425
    DRIZZLE_TYPE_VARCHAR,
 
426
    //DRIZZLE_TYPE_NULL
 
427
    DRIZZLE_TYPE_ENUM,
 
428
    //DRIZZLE_TYPE_TIMESTAMP
 
429
    DRIZZLE_TYPE_VARCHAR,
 
430
    //DRIZZLE_TYPE_LONGLONG
 
431
    DRIZZLE_TYPE_VARCHAR,
 
432
    //DRIZZLE_TYPE_TIME
 
433
    DRIZZLE_TYPE_VARCHAR,
 
434
    //DRIZZLE_TYPE_DATETIME
 
435
    DRIZZLE_TYPE_VARCHAR,
 
436
    //DRIZZLE_TYPE_NEWDATE
 
437
    DRIZZLE_TYPE_VARCHAR,
 
438
    //DRIZZLE_TYPE_VARCHAR
 
439
    DRIZZLE_TYPE_VARCHAR,
 
440
    //DRIZZLE_TYPE_VIRTUAL
378
441
    DRIZZLE_TYPE_VIRTUAL,
379
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
380
 
    DRIZZLE_TYPE_VARCHAR,     DRIZZLE_TYPE_VARCHAR,
381
 
  //DRIZZLE_TYPE_BLOB
 
442
    //DRIZZLE_TYPE_NEWDECIMAL
 
443
    DRIZZLE_TYPE_VARCHAR,
 
444
    //DRIZZLE_TYPE_ENUM
 
445
    DRIZZLE_TYPE_VARCHAR,
 
446
    //DRIZZLE_TYPE_BLOB
382
447
    DRIZZLE_TYPE_BLOB,
383
448
  },
384
449
  /* DRIZZLE_TYPE_BLOB -> */
385
450
  {
386
 
  //DRIZZLE_TYPE_TINY
387
 
    DRIZZLE_TYPE_BLOB,
388
 
  //DRIZZLE_TYPE_LONG
389
 
    DRIZZLE_TYPE_BLOB,
390
 
  //DRIZZLE_TYPE_DOUBLE
391
 
    DRIZZLE_TYPE_BLOB,
392
 
  //DRIZZLE_TYPE_NULL         DRIZZLE_TYPE_TIMESTAMP
393
 
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
394
 
  //DRIZZLE_TYPE_LONGLONG
395
 
    DRIZZLE_TYPE_BLOB,
396
 
  //DRIZZLE_TYPE_TIME
397
 
    DRIZZLE_TYPE_BLOB,
398
 
  //DRIZZLE_TYPE_DATETIME
399
 
    DRIZZLE_TYPE_BLOB,
400
 
  //DRIZZLE_TYPE_NEWDATE      DRIZZLE_TYPE_VARCHAR
401
 
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
402
 
  //DRIZZLE_TYPE_VIRTUAL
 
451
    //DRIZZLE_TYPE_TINY
 
452
    DRIZZLE_TYPE_BLOB,
 
453
    //DRIZZLE_TYPE_LONG
 
454
    DRIZZLE_TYPE_BLOB,
 
455
    //DRIZZLE_TYPE_DOUBLE
 
456
    DRIZZLE_TYPE_BLOB,
 
457
    //DRIZZLE_TYPE_NULL
 
458
    DRIZZLE_TYPE_BLOB,
 
459
    //DRIZZLE_TYPE_TIMESTAMP
 
460
    DRIZZLE_TYPE_BLOB,
 
461
    //DRIZZLE_TYPE_LONGLONG
 
462
    DRIZZLE_TYPE_BLOB,
 
463
    //DRIZZLE_TYPE_TIME
 
464
    DRIZZLE_TYPE_BLOB,
 
465
    //DRIZZLE_TYPE_DATETIME
 
466
    DRIZZLE_TYPE_BLOB,
 
467
    //DRIZZLE_TYPE_NEWDATE
 
468
    DRIZZLE_TYPE_BLOB,
 
469
    //DRIZZLE_TYPE_VARCHAR
 
470
    DRIZZLE_TYPE_BLOB,
 
471
    //DRIZZLE_TYPE_VIRTUAL
403
472
    DRIZZLE_TYPE_VIRTUAL,
404
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
405
 
    DRIZZLE_TYPE_BLOB,        DRIZZLE_TYPE_BLOB,
406
 
  //DRIZZLE_TYPE_BLOB
 
473
    //DRIZZLE_TYPE_NEWDECIMAL
 
474
    DRIZZLE_TYPE_BLOB,
 
475
    //DRIZZLE_TYPE_ENUM
 
476
    DRIZZLE_TYPE_BLOB,
 
477
    //DRIZZLE_TYPE_BLOB
407
478
    DRIZZLE_TYPE_BLOB,
408
479
  },
409
480
};
421
492
enum_field_types Field::field_type_merge(enum_field_types a,
422
493
                                         enum_field_types b)
423
494
{
424
 
  assert(a < FIELDTYPE_TEAR_FROM || a > FIELDTYPE_TEAR_TO);
425
 
  assert(b < FIELDTYPE_TEAR_FROM || b > FIELDTYPE_TEAR_TO);
426
 
  return field_types_merge_rules[field_type2index(a)]
427
 
                                [field_type2index(b)];
 
495
  assert(a <= DRIZZLE_TYPE_MAX);
 
496
  assert(b <= DRIZZLE_TYPE_MAX);
 
497
  return field_types_merge_rules[a][b];
428
498
}
429
499
 
430
500
 
431
 
static Item_result field_types_result_type [FIELDTYPE_NUM]=
 
501
static Item_result field_types_result_type [DRIZZLE_TYPE_MAX+1]=
432
502
{
433
503
  //DRIZZLE_TYPE_TINY
434
504
  INT_RESULT,
492
562
 
493
563
Item_result Field::result_merge_type(enum_field_types field_type)
494
564
{
495
 
  assert(field_type < FIELDTYPE_TEAR_FROM || field_type
496
 
              > FIELDTYPE_TEAR_TO);
497
 
  return field_types_result_type[field_type2index(field_type)];
 
565
  assert(field_type <= DRIZZLE_TYPE_MAX);
 
566
  return field_types_result_type[field_type];
498
567
}
499
568
 
500
569
/*****************************************************************************