@@ -35,6 +35,7 @@ class Type_handler
35
35
type_handler_adjusted_to_max_octet_length (uint max_octet_length,
36
36
CHARSET_INFO *cs) const
37
37
{ return this ; }
38
+ virtual ~Type_handler () {}
38
39
};
39
40
40
41
@@ -45,6 +46,7 @@ class Type_handler_real_result: public Type_handler
45
46
public:
46
47
Item_result result_type () const { return REAL_RESULT; }
47
48
Item_result cmp_type () const { return REAL_RESULT; }
49
+ virtual ~Type_handler_real_result () {}
48
50
};
49
51
50
52
@@ -53,6 +55,7 @@ class Type_handler_decimal_result: public Type_handler
53
55
public:
54
56
Item_result result_type () const { return DECIMAL_RESULT; }
55
57
Item_result cmp_type () const { return DECIMAL_RESULT; }
58
+ virtual ~Type_handler_decimal_result () {};
56
59
};
57
60
58
61
@@ -61,6 +64,7 @@ class Type_handler_int_result: public Type_handler
61
64
public:
62
65
Item_result result_type () const { return INT_RESULT; }
63
66
Item_result cmp_type () const { return INT_RESULT; }
67
+ virtual ~Type_handler_int_result () {}
64
68
};
65
69
66
70
@@ -69,6 +73,7 @@ class Type_handler_temporal_result: public Type_handler
69
73
public:
70
74
Item_result result_type () const { return STRING_RESULT; }
71
75
Item_result cmp_type () const { return TIME_RESULT; }
76
+ virtual ~Type_handler_temporal_result () {}
72
77
};
73
78
74
79
@@ -77,6 +82,7 @@ class Type_handler_string_result: public Type_handler
77
82
public:
78
83
Item_result result_type () const { return STRING_RESULT; }
79
84
Item_result cmp_type () const { return STRING_RESULT; }
85
+ virtual ~Type_handler_string_result () {}
80
86
const Type_handler *
81
87
type_handler_adjusted_to_max_octet_length (uint max_octet_length,
82
88
CHARSET_INFO *cs) const ;
@@ -106,160 +112,183 @@ class Type_handler_string_result: public Type_handler
106
112
class Type_handler_tiny : public Type_handler_int_result
107
113
{
108
114
public:
115
+ virtual ~Type_handler_tiny () {}
109
116
enum_field_types field_type () const { return MYSQL_TYPE_TINY; }
110
117
};
111
118
112
119
113
120
class Type_handler_short : public Type_handler_int_result
114
121
{
115
122
public:
123
+ virtual ~Type_handler_short () {}
116
124
enum_field_types field_type () const { return MYSQL_TYPE_SHORT; }
117
125
};
118
126
119
127
120
128
class Type_handler_long : public Type_handler_int_result
121
129
{
122
130
public:
131
+ virtual ~Type_handler_long () {}
123
132
enum_field_types field_type () const { return MYSQL_TYPE_LONG; }
124
133
};
125
134
126
135
127
136
class Type_handler_longlong : public Type_handler_int_result
128
137
{
129
138
public:
139
+ virtual ~Type_handler_longlong () {}
130
140
enum_field_types field_type () const { return MYSQL_TYPE_LONGLONG; }
131
141
};
132
142
133
143
134
144
class Type_handler_int24 : public Type_handler_int_result
135
145
{
136
146
public:
147
+ virtual ~Type_handler_int24 () {}
137
148
enum_field_types field_type () const { return MYSQL_TYPE_INT24; }
138
149
};
139
150
140
151
141
152
class Type_handler_year : public Type_handler_int_result
142
153
{
143
154
public:
155
+ virtual ~Type_handler_year () {}
144
156
enum_field_types field_type () const { return MYSQL_TYPE_YEAR; }
145
157
};
146
158
147
159
148
160
class Type_handler_bit : public Type_handler_int_result
149
161
{
150
162
public:
163
+ virtual ~Type_handler_bit () {}
151
164
enum_field_types field_type () const { return MYSQL_TYPE_BIT; }
152
165
};
153
166
154
167
155
168
class Type_handler_float : public Type_handler_real_result
156
169
{
157
170
public:
171
+ virtual ~Type_handler_float () {}
158
172
enum_field_types field_type () const { return MYSQL_TYPE_FLOAT; }
159
173
};
160
174
161
175
162
176
class Type_handler_double : public Type_handler_real_result
163
177
{
164
178
public:
179
+ virtual ~Type_handler_double () {}
165
180
enum_field_types field_type () const { return MYSQL_TYPE_DOUBLE; }
166
181
};
167
182
168
183
169
184
class Type_handler_time : public Type_handler_temporal_result
170
185
{
171
186
public:
187
+ virtual ~Type_handler_time () {}
172
188
enum_field_types field_type () const { return MYSQL_TYPE_TIME; }
173
189
};
174
190
175
191
176
192
class Type_handler_date : public Type_handler_temporal_result
177
193
{
178
194
public:
195
+ virtual ~Type_handler_date () {}
179
196
enum_field_types field_type () const { return MYSQL_TYPE_DATE; }
180
197
};
181
198
182
199
183
200
class Type_handler_datetime : public Type_handler_temporal_result
184
201
{
185
202
public:
203
+ virtual ~Type_handler_datetime () {}
186
204
enum_field_types field_type () const { return MYSQL_TYPE_DATETIME; }
187
205
};
188
206
189
207
190
208
class Type_handler_timestamp : public Type_handler_temporal_result
191
209
{
192
210
public:
211
+ virtual ~Type_handler_timestamp () {}
193
212
enum_field_types field_type () const { return MYSQL_TYPE_TIMESTAMP; }
194
213
};
195
214
196
215
197
216
class Type_handler_olddecimal : public Type_handler_decimal_result
198
217
{
199
218
public:
219
+ virtual ~Type_handler_olddecimal () {}
200
220
enum_field_types field_type () const { return MYSQL_TYPE_DECIMAL; }
201
221
};
202
222
203
223
204
224
class Type_handler_newdecimal : public Type_handler_decimal_result
205
225
{
206
226
public:
227
+ virtual ~Type_handler_newdecimal () {}
207
228
enum_field_types field_type () const { return MYSQL_TYPE_NEWDECIMAL; }
208
229
};
209
230
210
231
211
232
class Type_handler_null : public Type_handler_string_result
212
233
{
213
234
public:
235
+ virtual ~Type_handler_null () {}
214
236
enum_field_types field_type () const { return MYSQL_TYPE_NULL; }
215
237
};
216
238
217
239
218
240
class Type_handler_string : public Type_handler_string_result
219
241
{
220
242
public:
243
+ virtual ~Type_handler_string () {}
221
244
enum_field_types field_type () const { return MYSQL_TYPE_STRING; }
222
245
};
223
246
224
247
225
248
class Type_handler_varchar : public Type_handler_string_result
226
249
{
227
250
public:
251
+ virtual ~Type_handler_varchar () {}
228
252
enum_field_types field_type () const { return MYSQL_TYPE_VARCHAR; }
229
253
};
230
254
231
255
232
256
class Type_handler_tiny_blob : public Type_handler_string_result
233
257
{
234
258
public:
259
+ virtual ~Type_handler_tiny_blob () {}
235
260
enum_field_types field_type () const { return MYSQL_TYPE_TINY_BLOB; }
236
261
};
237
262
238
263
239
264
class Type_handler_medium_blob : public Type_handler_string_result
240
265
{
241
266
public:
267
+ virtual ~Type_handler_medium_blob () {}
242
268
enum_field_types field_type () const { return MYSQL_TYPE_MEDIUM_BLOB; }
243
269
};
244
270
245
271
246
272
class Type_handler_long_blob : public Type_handler_string_result
247
273
{
248
274
public:
275
+ virtual ~Type_handler_long_blob () {}
249
276
enum_field_types field_type () const { return MYSQL_TYPE_LONG_BLOB; }
250
277
};
251
278
252
279
253
280
class Type_handler_blob : public Type_handler_string_result
254
281
{
255
282
public:
283
+ virtual ~Type_handler_blob () {}
256
284
enum_field_types field_type () const { return MYSQL_TYPE_BLOB; }
257
285
};
258
286
259
287
260
288
class Type_handler_geometry : public Type_handler_string_result
261
289
{
262
290
public:
291
+ virtual ~Type_handler_geometry () {}
263
292
enum_field_types field_type () const { return MYSQL_TYPE_GEOMETRY; }
264
293
};
265
294
0 commit comments