MySQL 8.0.30
Source Code Documentation
column_impl.h
Go to the documentation of this file.
1/* Copyright (c) 2014, 2022, Oracle and/or its affiliates.
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, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is also distributed with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have included with MySQL.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License, version 2.0, for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22
23#ifndef DD__COLUMN_IMPL_INCLUDED
24#define DD__COLUMN_IMPL_INCLUDED
25
26#include <assert.h>
27#include <stddef.h>
28#include <sys/types.h>
29#include <memory> // std::unique_ptr
30#include <new>
31#include <optional>
32
33#include "sql/dd/impl/properties_impl.h" // Properties_impl
34#include "sql/dd/impl/types/entity_object_impl.h" // dd::Entity_object_impl
36#include "sql/dd/object_id.h"
37#include "sql/dd/properties.h"
38#include "sql/dd/sdi_fwd.h"
39#include "sql/dd/string_type.h"
40#include "sql/dd/types/column.h" // dd::Column
41#include "sql/dd/types/column_type_element.h" // IWYU pragma: keep
42#include "sql/gis/srid.h" // gis::srid_t
43#include "sql/strfunc.h"
44
45namespace dd {
46
47///////////////////////////////////////////////////////////////////////////
48
49class Abstract_table;
50class Abstract_table_impl;
51class Object_table;
52class Open_dictionary_tables_ctx;
53class Properties;
54class Raw_record;
55class Sdi_rcontext;
56class Sdi_wcontext;
57class Weak_object;
58
59///////////////////////////////////////////////////////////////////////////
60
61class Column_impl : public Entity_object_impl, public Column {
62 public:
64
66
67 Column_impl(const Column_impl &src, Abstract_table_impl *parent);
68
69 ~Column_impl() override;
70
71 public:
72 const Object_table &object_table() const override;
73
75
76 bool validate() const override;
77
79
81
82 bool drop_children(Open_dictionary_tables_ctx *otx) const override;
83
84 bool restore_attributes(const Raw_record &r) override;
85
86 bool store_attributes(Raw_record *r) override;
87
88 void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const override;
89
90 bool deserialize(Sdi_rcontext *rctx, const RJ_Value &val) override;
91
92 void debug_print(String_type &outb) const override;
93
96 }
97
98 public:
99 /////////////////////////////////////////////////////////////////////////
100 // table.
101 /////////////////////////////////////////////////////////////////////////
102
103 const Abstract_table &table() const override;
104
105 Abstract_table &table() override;
106
107 /////////////////////////////////////////////////////////////////////////
108 // type.
109 /////////////////////////////////////////////////////////////////////////
110
111 enum_column_types type() const override { return m_type; }
112
114
115 /////////////////////////////////////////////////////////////////////////
116 // collation.
117 /////////////////////////////////////////////////////////////////////////
118
119 Object_id collation_id() const override { return m_collation_id; }
120
123 }
124
127 }
128
129 bool is_explicit_collation() const override {
131 }
132
133 /////////////////////////////////////////////////////////////////////////
134 // nullable.
135 /////////////////////////////////////////////////////////////////////////
136
137 bool is_nullable() const override { return m_is_nullable; }
138
139 void set_nullable(bool nullable) override { m_is_nullable = nullable; }
140
141 /////////////////////////////////////////////////////////////////////////
142 // is_zerofill.
143 /////////////////////////////////////////////////////////////////////////
144
145 bool is_zerofill() const override { return m_is_zerofill; }
146
147 void set_zerofill(bool zerofill) override { m_is_zerofill = zerofill; }
148
149 /////////////////////////////////////////////////////////////////////////
150 // is_unsigned.
151 /////////////////////////////////////////////////////////////////////////
152
153 bool is_unsigned() const override { return m_is_unsigned; }
154
155 void set_unsigned(bool unsigned_flag) override {
156 m_is_unsigned = unsigned_flag;
157 }
158
159 /////////////////////////////////////////////////////////////////////////
160 // auto increment.
161 /////////////////////////////////////////////////////////////////////////
162
163 bool is_auto_increment() const override { return m_is_auto_increment; }
164
165 void set_auto_increment(bool auto_increment) override {
167 }
168
169 /////////////////////////////////////////////////////////////////////////
170 // ordinal_position.
171 /////////////////////////////////////////////////////////////////////////
172
173 uint ordinal_position() const override { return m_ordinal_position; }
174
175 /////////////////////////////////////////////////////////////////////////
176 // char_length.
177 /////////////////////////////////////////////////////////////////////////
178
179 size_t char_length() const override { return m_char_length; }
180
181 void set_char_length(size_t char_length) override {
183 }
184
185 /////////////////////////////////////////////////////////////////////////
186 // numeric_precision.
187 /////////////////////////////////////////////////////////////////////////
188
189 uint numeric_precision() const override { return m_numeric_precision; }
190
193 }
194
195 /////////////////////////////////////////////////////////////////////////
196 // numeric_scale.
197 /////////////////////////////////////////////////////////////////////////
198
199 uint numeric_scale() const override { return m_numeric_scale; }
200
202 m_numeric_scale_null = false;
204 }
205
206 void set_numeric_scale_null(bool is_null) override {
207 m_numeric_scale_null = is_null;
208 }
209
210 bool is_numeric_scale_null() const override { return m_numeric_scale_null; }
211
212 /////////////////////////////////////////////////////////////////////////
213 // datetime_precision.
214 /////////////////////////////////////////////////////////////////////////
215
216 uint datetime_precision() const override { return m_datetime_precision; }
217
221 }
222
223 void set_datetime_precision_null(bool is_null) override {
225 }
226
227 bool is_datetime_precision_null() const override {
229 }
230
231 /////////////////////////////////////////////////////////////////////////
232 // has_no_default.
233 /////////////////////////////////////////////////////////////////////////
234
235 bool has_no_default() const override { return m_has_no_default; }
236
237 void set_has_no_default(bool has_no_default) override {
239 }
240
241 /////////////////////////////////////////////////////////////////////////
242 // default_value (binary).
243 /////////////////////////////////////////////////////////////////////////
244
245 const String_type &default_value() const override { return m_default_value; }
246
248 m_default_value_null = false;
250 }
251
252 void set_default_value_null(bool is_null) override {
253 m_default_value_null = is_null;
254 }
255
256 bool is_default_value_null() const override { return m_default_value_null; }
257
258 /////////////////////////////////////////////////////////////////////////
259 // default_value_utf8
260 /////////////////////////////////////////////////////////////////////////
261
262 const String_type &default_value_utf8() const override {
264 }
265
269 }
270
271 void set_default_value_utf8_null(bool is_null) override {
273 }
274
275 /* purecov: begin deadcode */
276 bool is_default_value_utf8_null() const override {
278 }
279 /* purecov: end */
280
281 /////////////////////////////////////////////////////////////////////////
282 // is virtual ?
283 /////////////////////////////////////////////////////////////////////////
284
285 bool is_virtual() const override { return m_is_virtual; }
286
288
289 /////////////////////////////////////////////////////////////////////////
290 // generation_expression (binary).
291 /////////////////////////////////////////////////////////////////////////
292
293 const String_type &generation_expression() const override {
295 }
296
298 const String_type &generation_expression) override {
300 }
301
302 bool is_generation_expression_null() const override {
303 return m_generation_expression.empty();
304 }
305
306 /////////////////////////////////////////////////////////////////////////
307 // generation_expression_utf8
308 /////////////////////////////////////////////////////////////////////////
309
310 const String_type &generation_expression_utf8() const override {
312 }
313
315 const String_type &generation_expression_utf8) override {
317 }
318
320 return m_generation_expression_utf8.empty();
321 }
322
323 /////////////////////////////////////////////////////////////////////////
324 // default_option.
325 /////////////////////////////////////////////////////////////////////////
326
327 const String_type &default_option() const override {
328 return m_default_option;
329 }
330
333 }
334
335 /////////////////////////////////////////////////////////////////////////
336 // update_option.
337 /////////////////////////////////////////////////////////////////////////
338
339 const String_type &update_option() const override { return m_update_option; }
340
343 }
344
345 /////////////////////////////////////////////////////////////////////////
346 // Comment.
347 /////////////////////////////////////////////////////////////////////////
348
349 const String_type &comment() const override { return m_comment; }
350
351 void set_comment(const String_type &comment) override { m_comment = comment; }
352
353 /////////////////////////////////////////////////////////////////////////
354 // Hidden.
355 /////////////////////////////////////////////////////////////////////////
356
357 enum_hidden_type hidden() const override { return m_hidden; }
358
360
361 /////////////////////////////////////////////////////////////////////////
362 // Options.
363 /////////////////////////////////////////////////////////////////////////
364
365 const Properties &options() const override { return m_options; }
366
367 Properties &options() override { return m_options; }
368
369 bool set_options(const String_type &options_raw) override {
370 return m_options.insert_values(options_raw);
371 }
372
373 /////////////////////////////////////////////////////////////////////////
374 // se_private_data.
375 /////////////////////////////////////////////////////////////////////////
376
377 const Properties &se_private_data() const override {
378 return m_se_private_data;
379 }
380
382
385 }
386
387 bool set_se_private_data(const String_type &se_private_data_raw) override {
388 return m_se_private_data.insert_values(se_private_data_raw);
389 }
390
391 LEX_CSTRING engine_attribute() const override {
393 }
394
396 m_engine_attribute.assign(a.str, a.length);
397 }
398
401 }
402
405 }
406
407 /////////////////////////////////////////////////////////////////////////
408 // Column key type.
409 /////////////////////////////////////////////////////////////////////////
410
413 }
414
415 enum_column_key column_key() const override { return m_column_key; }
416
417 /////////////////////////////////////////////////////////////////////////
418 // Spatial reference system ID
419 /////////////////////////////////////////////////////////////////////////
420 void set_srs_id(std::optional<gis::srid_t> srs_id) override {
422 }
423
424 std::optional<gis::srid_t> srs_id() const override { return m_srs_id; }
425
426 /////////////////////////////////////////////////////////////////////////
427 // Elements.
428 /////////////////////////////////////////////////////////////////////////
429
431
432 const Column_type_element_collection &elements() const override {
433 assert(type() == enum_column_types::ENUM ||
435 return m_elements;
436 }
437
438 /////////////////////////////////////////////////////////////////////////
439 // Column display type
440 /////////////////////////////////////////////////////////////////////////
441
442 const String_type &column_type_utf8() const override {
443 return m_column_type_utf8;
444 }
445
448 }
449
450 size_t elements_count() const override { return m_elements.size(); }
451
452 // Fix "inherits ... via dominance" warnings
454 const Entity_object_impl *impl() const override {
456 }
457 Object_id id() const override { return Entity_object_impl::id(); }
458 bool is_persistent() const override {
460 }
461 const String_type &name() const override {
463 }
464 void set_name(const String_type &name) override {
466 }
467
468 bool is_array() const override {
469 // Is this a typed array field?
470 if (options().exists("is_array")) {
471 bool is_array;
472 if (!options().get("is_array", &is_array)) return is_array;
473 }
474
475 return false;
476 }
477
478 public:
480 return new (std::nothrow) Column_impl(table);
481 }
482
483 static Column_impl *clone(const Column_impl &other,
485 return new (std::nothrow) Column_impl(other, table);
486 }
487
489 return new Column_impl(*this, parent);
490 }
491
492 private:
493 // Fields.
494
496
503
511
513
518
522
525
528
529 // Se-specific json attributes
532
533 // References to tightly-coupled objects.
534
536
538
540
541 // References to loosely-coupled objects.
542
545
547
548 std::optional<gis::srid_t> m_srs_id;
549};
550
551///////////////////////////////////////////////////////////////////////////
552
553} // namespace dd
554
555#endif // DD__COLUMN_IMPL_INCLUDED
Definition: abstract_table_impl.h:57
Abstract base class for tables and views.
Definition: abstract_table.h:68
Definition: collection.h:43
size_t size() const
Definition: collection.h:228
Definition: column_impl.h:61
void set_generation_expression(const String_type &generation_expression) override
Definition: column_impl.h:297
std::optional< gis::srid_t > srs_id() const override
Definition: column_impl.h:424
bool is_numeric_scale_null() const override
Definition: column_impl.h:210
size_t elements_count() const override
Definition: column_impl.h:450
void set_default_option(const String_type &default_option) override
Definition: column_impl.h:331
static Column_impl * restore_item(Abstract_table_impl *table)
Definition: column_impl.h:479
Abstract_table_impl * m_table
Definition: column_impl.h:535
enum_column_key column_key() const override
Definition: column_impl.h:415
bool set_options(const String_type &options_raw) override
Definition: column_impl.h:369
bool is_default_value_utf8_null() const override
Definition: column_impl.h:276
const Properties & se_private_data() const override
Definition: column_impl.h:377
const String_type & column_type_utf8() const override
Definition: column_impl.h:442
bool is_unsigned() const override
Definition: column_impl.h:153
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: column_impl.h:458
void set_column_type_utf8(const String_type &column_type_utf8) override
Definition: column_impl.h:446
size_t char_length() const override
Definition: column_impl.h:179
String_type m_update_option
Definition: column_impl.h:520
void set_has_no_default(bool has_no_default) override
Definition: column_impl.h:237
bool m_is_unsigned
Definition: column_impl.h:499
bool set_se_private_data(const String_type &se_private_data_raw) override
Definition: column_impl.h:387
void set_generation_expression_utf8(const String_type &generation_expression_utf8) override
Definition: column_impl.h:314
const String_type & generation_expression() const override
Definition: column_impl.h:293
bool m_is_nullable
Definition: column_impl.h:497
bool m_is_zerofill
Definition: column_impl.h:498
std::optional< gis::srid_t > m_srs_id
Definition: column_impl.h:548
Column_type_element * add_element() override
Definition: column_impl.cc:504
void set_name(const String_type &name) override
Definition: column_impl.h:464
const Properties & options() const override
Definition: column_impl.h:365
const String_type & name() const override
Definition: column_impl.h:461
bool is_datetime_precision_null() const override
Definition: column_impl.h:227
bool is_generation_expression_utf8_null() const override
Definition: column_impl.h:319
uint m_numeric_scale
Definition: column_impl.h:507
bool is_explicit_collation() const override
Definition: column_impl.h:129
void set_datetime_precision_null(bool is_null) override
Definition: column_impl.h:223
Properties & options() override
Definition: column_impl.h:367
bool is_auto_increment() const override
Definition: column_impl.h:163
bool validate() const override
Definition: column_impl.cc:137
const Entity_object_impl * impl() const override
Definition: column_impl.h:454
String_type m_default_value_utf8
Definition: column_impl.h:517
Object_id id() const override
The unique dictionary object id.
Definition: column_impl.h:457
enum_column_types m_type
Definition: column_impl.h:495
uint numeric_scale() const override
Definition: column_impl.h:199
Entity_object_impl * impl() override
Definition: column_impl.h:453
String_type m_column_type_utf8
Definition: column_impl.h:539
void set_hidden(enum_hidden_type hidden) override
Definition: column_impl.h:359
void set_default_value_utf8(const String_type &default_value_utf8) override
Definition: column_impl.h:266
bool store_children(Open_dictionary_tables_ctx *otx) override
Definition: column_impl.cc:178
void set_numeric_scale(uint numeric_scale) override
Definition: column_impl.h:201
String_type m_secondary_engine_attribute
Definition: column_impl.h:531
void set_srs_id(std::optional< gis::srid_t > srs_id) override
Definition: column_impl.h:420
void set_engine_attribute(LEX_CSTRING a) override
Definition: column_impl.h:395
bool m_numeric_scale_null
Definition: column_impl.h:508
Properties & se_private_data() override
Definition: column_impl.h:381
bool store_attributes(Raw_record *r) override
Definition: column_impl.cc:260
String_type m_generation_expression
Definition: column_impl.h:523
Column_impl()
Definition: column_impl.cc:75
Object_id collation_id() const override
Definition: column_impl.h:119
const String_type & default_option() const override
Definition: column_impl.h:327
Properties_impl m_se_private_data
Definition: column_impl.h:527
void set_numeric_precision(uint numeric_precision) override
Definition: column_impl.h:191
void set_type(enum_column_types type) override
Definition: column_impl.h:113
void set_comment(const String_type &comment) override
Definition: column_impl.h:351
uint numeric_precision() const override
Definition: column_impl.h:189
bool is_zerofill() const override
Definition: column_impl.h:145
uint ordinal_position() const override
Definition: column_impl.h:173
Properties_impl m_options
Definition: column_impl.h:526
bool deserialize(Sdi_rcontext *rctx, const RJ_Value &val) override
Re-establishes the state of *this by reading sdi information from the rapidjson DOM subobject provide...
Definition: column_impl.cc:387
bool m_is_explicit_collation
Definition: column_impl.h:544
void set_column_key(enum_column_key column_key) override
Definition: column_impl.h:411
void set_default_value_null(bool is_null) override
Definition: column_impl.h:252
const String_type & update_option() const override
Definition: column_impl.h:339
enum_column_key m_column_key
Definition: column_impl.h:546
void set_auto_increment(bool auto_increment) override
Definition: column_impl.h:165
uint m_datetime_precision
Definition: column_impl.h:509
Column_impl * clone(Abstract_table_impl *parent) const
Definition: column_impl.h:488
bool m_has_no_default
Definition: column_impl.h:512
bool m_is_virtual
Definition: column_impl.h:501
LEX_CSTRING secondary_engine_attribute() const override
Definition: column_impl.h:399
bool drop_children(Open_dictionary_tables_ctx *otx) const override
Definition: column_impl.cc:184
void set_unsigned(bool unsigned_flag) override
Definition: column_impl.h:155
const String_type & default_value_utf8() const override
Definition: column_impl.h:262
void set_update_option(const String_type &update_option) override
Definition: column_impl.h:341
String_type m_default_value
Definition: column_impl.h:515
const String_type & comment() const override
Definition: column_impl.h:349
LEX_CSTRING engine_attribute() const override
Definition: column_impl.h:391
void set_zerofill(bool zerofill) override
Definition: column_impl.h:147
bool restore_attributes(const Raw_record &r) override
Definition: column_impl.cc:195
uint m_datetime_precision_null
Definition: column_impl.h:510
String_type m_generation_expression_utf8
Definition: column_impl.h:524
bool m_default_value_utf8_null
Definition: column_impl.h:516
const Column_type_element_collection & elements() const override
Definition: column_impl.h:432
bool has_no_default() const override
Definition: column_impl.h:235
size_t m_char_length
Definition: column_impl.h:505
void set_ordinal_position(uint ordinal_position)
Definition: column_impl.h:94
void set_secondary_engine_attribute(LEX_CSTRING a) override
Definition: column_impl.h:403
uint m_numeric_precision
Definition: column_impl.h:506
bool is_nullable() const override
Definition: column_impl.h:137
void serialize(Sdi_wcontext *wctx, Sdi_writer *w) const override
Converts *this into json.
Definition: column_impl.cc:335
void set_nullable(bool nullable) override
Definition: column_impl.h:139
Column_type_element_collection m_elements
Definition: column_impl.h:537
String_type m_comment
Definition: column_impl.h:521
const String_type & default_value() const override
Definition: column_impl.h:245
enum_hidden_type hidden() const override
Definition: column_impl.h:357
void set_numeric_scale_null(bool is_null) override
Definition: column_impl.h:206
void set_is_explicit_collation(bool is_explicit_collation) override
Definition: column_impl.h:125
bool is_virtual() const override
Definition: column_impl.h:285
void set_default_value_utf8_null(bool is_null) override
Definition: column_impl.h:271
bool m_is_auto_increment
Definition: column_impl.h:500
static Column_impl * clone(const Column_impl &other, Abstract_table_impl *table)
Definition: column_impl.h:483
const Abstract_table & table() const override
Definition: column_impl.cc:131
static void register_tables(Open_dictionary_tables_ctx *otx)
Definition: column_impl.cc:564
String_type m_engine_attribute
Definition: column_impl.h:530
void set_collation_id(Object_id collation_id) override
Definition: column_impl.h:121
void set_virtual(bool is_virtual) override
Definition: column_impl.h:287
bool restore_children(Open_dictionary_tables_ctx *otx) override
Definition: column_impl.cc:163
enum_hidden_type m_hidden
Definition: column_impl.h:502
void set_datetime_precision(uint datetime_precision) override
Definition: column_impl.h:218
bool set_se_private_data(const Properties &se_private_data) override
Definition: column_impl.h:383
const String_type & generation_expression_utf8() const override
Definition: column_impl.h:310
~Column_impl() override
uint datetime_precision() const override
Definition: column_impl.h:216
bool is_generation_expression_null() const override
Definition: column_impl.h:302
String_type m_default_option
Definition: column_impl.h:519
uint m_ordinal_position
Definition: column_impl.h:504
bool is_array() const override
Definition: column_impl.h:468
const Object_table & object_table() const override
Definition: column_impl.cc:558
void debug_print(String_type &outb) const override
Definition: column_impl.cc:443
bool m_default_value_null
Definition: column_impl.h:514
enum_column_types type() const override
Definition: column_impl.h:111
void set_char_length(size_t char_length) override
Definition: column_impl.h:181
void set_default_value(const String_type &default_value) override
Definition: column_impl.h:247
bool is_default_value_null() const override
Definition: column_impl.h:256
Object_id m_collation_id
Definition: column_impl.h:543
Definition: column_type_element.h:43
Definition: column.h:86
enum_hidden_type
Definition: column.h:94
enum_column_key
Definition: column.h:92
Definition: entity_object_impl.h:43
void set_name(const String_type &name) override
Definition: entity_object_impl.h:61
Object_id id() const override
The unique dictionary object id.
Definition: entity_object_impl.h:48
const String_type & name() const override
Definition: entity_object_impl.h:59
Entity_object_impl * impl() override
Definition: entity_object_impl.h:67
bool is_persistent() const override
Is dictionary object persistent in dictionary tables ?
Definition: entity_object_impl.h:56
This class represents all data dictionary table like mysql.tables, mysql.columns and more.
Definition: object_table.h:71
Auxiliary class for opening dictionary tables.
Definition: transaction_impl.h:75
The Properties_impl class implements the Properties interface.
Definition: properties_impl.h:76
bool insert_values(const Properties &properties) override
Insert key/value pairs from a different property object.
Definition: properties_impl.cc:103
The Properties class defines an interface for storing key=value pairs, where both key and value may b...
Definition: properties.h:73
Definition: raw_record.h:45
Opaque context which keeps reusable resoureces needed during deserialization.
Definition: sdi.cc:230
Opaque context which keeps reusable resources needed during serialization.
Definition: sdi.cc:128
constexpr value_type zerofill
Definition: classic_protocol_constants.h:269
constexpr value_type auto_increment
Definition: classic_protocol_constants.h:272
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:42
RJ_Writer Sdi_writer
Alias for the rapidjson Writer type to use in serialization.
Definition: sdi_fwd.h:63
unsigned long long Object_id
Definition: object_id.h:30
enum_column_types
Definition: column.h:52
rapidjson::GenericValue< RJ_Encoding, RJ_Allocator > RJ_Value
Definition: sdi_fwd.h:48
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:50
static mysql_service_status_t get(reference_caching_cache cache, unsigned service_name_index, const my_h_service **refs) noexcept
Definition: component.cc:113
static int exists(node_address *name, node_list const *nodes, u_int with_uid)
Definition: node_list.cc:105
const mysql_service_registry_t * r
Definition: pfs_example_plugin_employee.cc:85
This header provides Rapidjson Type Aliases.
MYSQL_LEX_CSTRING lex_cstring_handle(const STDSTRINGLIKE_TYPE &s)
Return a LEX_CSTRING handle to a std::string like (meaning something which has the c_str() and length...
Definition: strfunc.h:83
Definition: mysql_lex_string.h:39
const char * str
Definition: mysql_lex_string.h:40
size_t length
Definition: mysql_lex_string.h:41
unsigned int uint
Definition: uca-dump.cc:29