@@ -35,6 +35,7 @@ class Type_handler
3535 type_handler_adjusted_to_max_octet_length (uint max_octet_length,
3636 CHARSET_INFO *cs) const
3737 { return this ; }
38+ virtual ~Type_handler () {}
3839};
3940
4041
@@ -45,6 +46,7 @@ class Type_handler_real_result: public Type_handler
4546public:
4647 Item_result result_type () const { return REAL_RESULT; }
4748 Item_result cmp_type () const { return REAL_RESULT; }
49+ virtual ~Type_handler_real_result () {}
4850};
4951
5052
@@ -53,6 +55,7 @@ class Type_handler_decimal_result: public Type_handler
5355public:
5456 Item_result result_type () const { return DECIMAL_RESULT; }
5557 Item_result cmp_type () const { return DECIMAL_RESULT; }
58+ virtual ~Type_handler_decimal_result () {};
5659};
5760
5861
@@ -61,6 +64,7 @@ class Type_handler_int_result: public Type_handler
6164public:
6265 Item_result result_type () const { return INT_RESULT; }
6366 Item_result cmp_type () const { return INT_RESULT; }
67+ virtual ~Type_handler_int_result () {}
6468};
6569
6670
@@ -69,6 +73,7 @@ class Type_handler_temporal_result: public Type_handler
6973public:
7074 Item_result result_type () const { return STRING_RESULT; }
7175 Item_result cmp_type () const { return TIME_RESULT; }
76+ virtual ~Type_handler_temporal_result () {}
7277};
7378
7479
@@ -77,6 +82,7 @@ class Type_handler_string_result: public Type_handler
7782public:
7883 Item_result result_type () const { return STRING_RESULT; }
7984 Item_result cmp_type () const { return STRING_RESULT; }
85+ virtual ~Type_handler_string_result () {}
8086 const Type_handler *
8187 type_handler_adjusted_to_max_octet_length (uint max_octet_length,
8288 CHARSET_INFO *cs) const ;
@@ -106,160 +112,183 @@ class Type_handler_string_result: public Type_handler
106112class Type_handler_tiny : public Type_handler_int_result
107113{
108114public:
115+ virtual ~Type_handler_tiny () {}
109116 enum_field_types field_type () const { return MYSQL_TYPE_TINY; }
110117};
111118
112119
113120class Type_handler_short : public Type_handler_int_result
114121{
115122public:
123+ virtual ~Type_handler_short () {}
116124 enum_field_types field_type () const { return MYSQL_TYPE_SHORT; }
117125};
118126
119127
120128class Type_handler_long : public Type_handler_int_result
121129{
122130public:
131+ virtual ~Type_handler_long () {}
123132 enum_field_types field_type () const { return MYSQL_TYPE_LONG; }
124133};
125134
126135
127136class Type_handler_longlong : public Type_handler_int_result
128137{
129138public:
139+ virtual ~Type_handler_longlong () {}
130140 enum_field_types field_type () const { return MYSQL_TYPE_LONGLONG; }
131141};
132142
133143
134144class Type_handler_int24 : public Type_handler_int_result
135145{
136146public:
147+ virtual ~Type_handler_int24 () {}
137148 enum_field_types field_type () const { return MYSQL_TYPE_INT24; }
138149};
139150
140151
141152class Type_handler_year : public Type_handler_int_result
142153{
143154public:
155+ virtual ~Type_handler_year () {}
144156 enum_field_types field_type () const { return MYSQL_TYPE_YEAR; }
145157};
146158
147159
148160class Type_handler_bit : public Type_handler_int_result
149161{
150162public:
163+ virtual ~Type_handler_bit () {}
151164 enum_field_types field_type () const { return MYSQL_TYPE_BIT; }
152165};
153166
154167
155168class Type_handler_float : public Type_handler_real_result
156169{
157170public:
171+ virtual ~Type_handler_float () {}
158172 enum_field_types field_type () const { return MYSQL_TYPE_FLOAT; }
159173};
160174
161175
162176class Type_handler_double : public Type_handler_real_result
163177{
164178public:
179+ virtual ~Type_handler_double () {}
165180 enum_field_types field_type () const { return MYSQL_TYPE_DOUBLE; }
166181};
167182
168183
169184class Type_handler_time : public Type_handler_temporal_result
170185{
171186public:
187+ virtual ~Type_handler_time () {}
172188 enum_field_types field_type () const { return MYSQL_TYPE_TIME; }
173189};
174190
175191
176192class Type_handler_date : public Type_handler_temporal_result
177193{
178194public:
195+ virtual ~Type_handler_date () {}
179196 enum_field_types field_type () const { return MYSQL_TYPE_DATE; }
180197};
181198
182199
183200class Type_handler_datetime : public Type_handler_temporal_result
184201{
185202public:
203+ virtual ~Type_handler_datetime () {}
186204 enum_field_types field_type () const { return MYSQL_TYPE_DATETIME; }
187205};
188206
189207
190208class Type_handler_timestamp : public Type_handler_temporal_result
191209{
192210public:
211+ virtual ~Type_handler_timestamp () {}
193212 enum_field_types field_type () const { return MYSQL_TYPE_TIMESTAMP; }
194213};
195214
196215
197216class Type_handler_olddecimal : public Type_handler_decimal_result
198217{
199218public:
219+ virtual ~Type_handler_olddecimal () {}
200220 enum_field_types field_type () const { return MYSQL_TYPE_DECIMAL; }
201221};
202222
203223
204224class Type_handler_newdecimal : public Type_handler_decimal_result
205225{
206226public:
227+ virtual ~Type_handler_newdecimal () {}
207228 enum_field_types field_type () const { return MYSQL_TYPE_NEWDECIMAL; }
208229};
209230
210231
211232class Type_handler_null : public Type_handler_string_result
212233{
213234public:
235+ virtual ~Type_handler_null () {}
214236 enum_field_types field_type () const { return MYSQL_TYPE_NULL; }
215237};
216238
217239
218240class Type_handler_string : public Type_handler_string_result
219241{
220242public:
243+ virtual ~Type_handler_string () {}
221244 enum_field_types field_type () const { return MYSQL_TYPE_STRING; }
222245};
223246
224247
225248class Type_handler_varchar : public Type_handler_string_result
226249{
227250public:
251+ virtual ~Type_handler_varchar () {}
228252 enum_field_types field_type () const { return MYSQL_TYPE_VARCHAR; }
229253};
230254
231255
232256class Type_handler_tiny_blob : public Type_handler_string_result
233257{
234258public:
259+ virtual ~Type_handler_tiny_blob () {}
235260 enum_field_types field_type () const { return MYSQL_TYPE_TINY_BLOB; }
236261};
237262
238263
239264class Type_handler_medium_blob : public Type_handler_string_result
240265{
241266public:
267+ virtual ~Type_handler_medium_blob () {}
242268 enum_field_types field_type () const { return MYSQL_TYPE_MEDIUM_BLOB; }
243269};
244270
245271
246272class Type_handler_long_blob : public Type_handler_string_result
247273{
248274public:
275+ virtual ~Type_handler_long_blob () {}
249276 enum_field_types field_type () const { return MYSQL_TYPE_LONG_BLOB; }
250277};
251278
252279
253280class Type_handler_blob : public Type_handler_string_result
254281{
255282public:
283+ virtual ~Type_handler_blob () {}
256284 enum_field_types field_type () const { return MYSQL_TYPE_BLOB; }
257285};
258286
259287
260288class Type_handler_geometry : public Type_handler_string_result
261289{
262290public:
291+ virtual ~Type_handler_geometry () {}
263292 enum_field_types field_type () const { return MYSQL_TYPE_GEOMETRY; }
264293};
265294
0 commit comments