MySQL 9.1.0
Source Code Documentation
object_keys.h
Go to the documentation of this file.
1/* Copyright (c) 2014, 2024, 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 designed to work 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 either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef DD__OBJECT_KEYS_INCLUDED
25#define DD__OBJECT_KEYS_INCLUDED
26
27#include <stddef.h>
28#include <string.h>
29#include <sys/types.h>
30
31#include "my_inttypes.h"
33#include "sql/dd/impl/object_key.h" // dd::Object_key
34#include "sql/dd/object_id.h" // dd::Object_id
35#include "sql/dd/string_type.h"
36#include "template_utils.h"
37
38namespace dd {
39
40///////////////////////////////////////////////////////////////////////////
41
42class Raw_table;
43struct Raw_key;
44
45///////////////////////////////////////////////////////////////////////////
46
47// NOTE: the current naming convention is as follows:
48// - use '_key' suffix to name keys identifying 0 or 1 row;
49// - use '_range_key' suffix to name keys identifying 0 or N rows.
50
51///////////////////////////////////////////////////////////////////////////
52
53// Key type to be used for keys that are not supported by an object type.
54class Void_key : public Object_key {
55 public:
56 Void_key() = default;
57
58 public:
59 /* purecov: begin inspected */
60 Raw_key *create_access_key(Raw_table *) const override { return nullptr; }
61 /* purecov: end */
62
63 /* purecov: begin inspected */
64 String_type str() const override { return ""; }
65 /* purecov: end */
66
67 // We need a comparison operator since the type will be used
68 // as a template type argument.
69 /* purecov: begin inspected */
70 bool operator<(const Void_key &rhs) const { return this < &rhs; }
71 /* purecov: end */
72};
73
74///////////////////////////////////////////////////////////////////////////
75
76// Entity_object-id primary key for global objects.
77class Primary_id_key : public Object_key {
78 public:
79 Primary_id_key() = default;
80
81 Primary_id_key(Object_id object_id) : m_object_id(object_id) {}
82
83 // Update a preallocated instance.
84 void update(Object_id object_id) { m_object_id = object_id; }
85
86 public:
87 Raw_key *create_access_key(Raw_table *db_table) const override;
88
89 String_type str() const override;
90
91 bool operator<(const Primary_id_key &rhs) const {
92 return m_object_id < rhs.m_object_id;
93 }
94
95 private:
97};
98
99///////////////////////////////////////////////////////////////////////////
100
101// Entity_object-id partial key for looking for containing objects.
103 public:
104 Parent_id_range_key(int id_index_no, int id_column_no, Object_id object_id)
105 : m_id_index_no(id_index_no),
106 m_id_column_no(id_column_no),
107 m_object_id(object_id) {}
108
109 public:
110 Raw_key *create_access_key(Raw_table *db_table) const override;
111
112 String_type str() const override;
113
114 private:
118};
119
120///////////////////////////////////////////////////////////////////////////
121
122// Entity_object-name key for global objects.
124 public:
125 Global_name_key() = default;
126
127 Global_name_key(int name_column_no, const String_type &object_name,
128 const CHARSET_INFO *cs)
129 : m_name_column_no(name_column_no),
130 m_object_name(object_name),
131 m_cs(cs) {}
132
133 // Update a preallocated instance.
134 void update(int name_column_no, const String_type &object_name,
135 const CHARSET_INFO *cs) {
136 m_name_column_no = name_column_no;
137 m_object_name = object_name;
138 m_cs = cs;
139 }
140
141 public:
142 Raw_key *create_access_key(Raw_table *db_table) const override;
143
144 /* purecov: begin inspected */
145 String_type str() const override { return m_object_name; }
146 /* purecov: end */
147
148 bool operator<(const Global_name_key &rhs) const {
149 return (my_strnncoll(m_cs,
150 pointer_cast<const uchar *>(m_object_name.c_str()),
151 m_object_name.length(),
152 pointer_cast<const uchar *>(rhs.m_object_name.c_str()),
153 rhs.m_object_name.length()) < 0);
154 }
155
156 private:
159 // Collation used for the name in the table.
161};
162
163///////////////////////////////////////////////////////////////////////////
164
165// Entity_object-name key for objects which are identified within a container.
166class Item_name_key : public Object_key {
167 public:
168 Item_name_key() = default;
169
170 Item_name_key(int container_id_column_no, Object_id container_id,
171 int name_column_no, const String_type &object_name,
172 const CHARSET_INFO *cs)
173 : m_container_id_column_no(container_id_column_no),
174 m_name_column_no(name_column_no),
175 m_container_id(container_id),
176 m_object_name(object_name),
177 m_cs(cs) {}
178
179 // Update a preallocated instance.
180 void update(int container_id_column_no, Object_id container_id,
181 int name_column_no, const String_type &object_name,
182 const CHARSET_INFO *cs) {
183 m_container_id_column_no = container_id_column_no;
184 m_name_column_no = name_column_no;
185 m_container_id = container_id;
186 m_object_name = object_name;
187 m_cs = cs;
188 }
189
190 public:
191 Raw_key *create_access_key(Raw_table *db_table) const override;
192
193 String_type str() const override;
194
195 bool operator<(const Item_name_key &rhs) const {
197 return (m_container_id < rhs.m_container_id);
198
199 return (my_strnncoll(m_cs,
200 pointer_cast<const uchar *>(m_object_name.c_str()),
201 m_object_name.length(),
202 pointer_cast<const uchar *>(rhs.m_object_name.c_str()),
203 rhs.m_object_name.length()) < 0);
204 }
205
206 private:
209
212 // Collation used for the name in the table.
214};
215
216///////////////////////////////////////////////////////////////////////////
217
218// TODO: find a better name.
220 public:
221 Se_private_id_key() = default;
222
223 /* purecov: begin deadcode */
224 Se_private_id_key(int index_no, int engine_column_no,
225 const String_type &engine, int private_id_column_no,
226 Object_id private_id)
227 : m_index_no(index_no),
228 m_engine_column_no(engine_column_no),
229 m_engine(engine),
230 m_private_id_column_no(private_id_column_no),
231 m_private_id(private_id) {}
232 /* purecov: end */
233
234 // Update a preallocated instance.
235 void update(int index_no, int engine_column_no, const String_type &engine,
236 int private_id_column_no, Object_id private_id) {
237 m_index_no = index_no;
238 m_engine_column_no = engine_column_no;
239 m_engine = engine;
240 m_private_id_column_no = private_id_column_no;
241 m_private_id = private_id;
242 }
243
244 public:
245 Raw_key *create_access_key(Raw_table *db_table) const override;
246
247 String_type str() const override;
248
249 bool operator<(const Se_private_id_key &rhs) const {
250 return m_private_id < rhs.m_private_id ? true
251 : rhs.m_private_id < m_private_id ? false
252 : m_engine < rhs.m_engine;
253 }
254
255 private:
257
260
263};
264
265///////////////////////////////////////////////////////////////////////////
266
267class Composite_pk : public Object_key {
268 public:
269 Composite_pk(int index_no, uint first_column_no, ulonglong first_id,
270 uint second_column_no, ulonglong second_id)
271 : m_index_no(index_no),
272 m_first_column_no(first_column_no),
273 m_first_id(first_id),
274 m_second_column_no(second_column_no),
275 m_second_id(second_id) {}
276
277 public:
278 Raw_key *create_access_key(Raw_table *db_table) const override;
279
280 String_type str() const override;
281
282 private:
284
287
290};
291
292///////////////////////////////////////////////////////////////////////////
293
295 public:
296 Composite_char_key(int index_no, uint first_column_no,
297 const String_type &first_name, uint second_column_no,
298 const String_type &second_name)
299 : m_index_no(index_no),
300 m_first_column_no(first_column_no),
301 m_first_name(first_name),
302 m_second_column_no(second_column_no),
303 m_second_name(second_name) {}
304
305 public:
306 Raw_key *create_access_key(Raw_table *db_table) const override;
307
308 String_type str() const override;
309
310 private:
312
315
318};
319
320///////////////////////////////////////////////////////////////////////////
321
323 public:
324 Composite_4char_key(int index_no, uint first_column_no,
325 const String_type &first_name, uint second_column_no,
326 const String_type &second_name, uint third_column_no,
327 const String_type &third_name, uint fourth_column_no,
328 const String_type &fourth_name)
329 : m_index_no(index_no),
330 m_first_column_no(first_column_no),
331 m_first_name(first_name),
332 m_second_column_no(second_column_no),
333 m_second_name(second_name),
334 m_third_column_no(third_column_no),
335 m_third_name(third_name),
336 m_fourth_column_no(fourth_column_no),
337 m_fourth_name(fourth_name) {}
338
339 public:
340 Raw_key *create_access_key(Raw_table *db_table) const override;
341
342 String_type str() const override;
343
344 private:
346
349
352
355
358};
359
360///////////////////////////////////////////////////////////////////////////
361
363 public:
364 Composite_obj_id_3char_key(int index_no, uint id_column_no, Object_id id,
365 uint first_column_no,
366 const String_type &first_name,
367 uint second_column_no,
368 const String_type &second_name,
369 uint third_column_no,
370 const String_type &third_name)
371 : m_index_no(index_no),
372 m_id_column_no(id_column_no),
373 m_id(id),
374 m_first_column_no(first_column_no),
375 m_first_name(first_name),
376 m_second_column_no(second_column_no),
377 m_second_name(second_name),
378 m_third_column_no(third_column_no),
379 m_third_name(third_name) {}
380
381 public:
382 Raw_key *create_access_key(Raw_table *db_table) const override;
383
384 String_type str() const override;
385
386 private:
388
391
394
397
400};
401
402///////////////////////////////////////////////////////////////////////////
403
404// Range key to find index statistics entries by table name.
405// in mysql.index_stats.
407 public:
408 Index_stat_range_key(int index_no, int schema_name_column_no,
409 const String_type &schema_name, int table_name_column_no,
410 const String_type &table_name)
411 : m_index_no(index_no),
412 m_schema_name_column_no(schema_name_column_no),
413 m_schema_name(schema_name),
414 m_table_name_column_no(table_name_column_no),
416
417 public:
418 Raw_key *create_access_key(Raw_table *db_table) const override;
419
420 String_type str() const override;
421
422 private:
424
427
430};
431
432///////////////////////////////////////////////////////////////////////////
433
435 public:
436 Routine_name_key() = default;
437
438 Routine_name_key(int index_no, int container_id_column_no,
439 Object_id container_id, int type_column_no, uint type,
440 int name_column_no, const String_type &object_name,
441 const CHARSET_INFO *cs)
442 : m_index_no(index_no),
443 m_container_id_column_no(container_id_column_no),
444 m_type_column_no(type_column_no),
445 m_name_column_no(name_column_no),
446 m_container_id(container_id),
447 m_type(type),
448 m_object_name(object_name),
449 m_cs(cs) {}
450
451 // Update a preallocated instance.
452 void update(int index_no, int container_id_column_no, Object_id container_id,
453 int type_column_no, uint type, int name_column_no,
454 const String_type &object_name, const CHARSET_INFO *cs) {
455 m_index_no = index_no;
456 m_container_id_column_no = container_id_column_no;
457 m_type_column_no = type_column_no;
458 m_name_column_no = name_column_no;
459 m_container_id = container_id;
460 m_type = type;
461 m_object_name = object_name;
462 m_cs = cs;
463 }
464
465 public:
466 Raw_key *create_access_key(Raw_table *db_table) const override;
467
468 String_type str() const override;
469
470 bool operator<(const Routine_name_key &rhs) const;
471
472 private:
477
479 uint m_type;
481 // Collation used for the routine name in the table.
483};
484
485///////////////////////////////////////////////////////////////////////////
486
487// Range key to find rows using catalog/schema/table name.
489 public:
490 Table_reference_range_key(int index_no, int catalog_name_column_no,
491 const String_type &catalog_name,
492 int schema_name_column_no,
493 const String_type &schema_name,
494 int table_name_column_no,
495 const String_type &table_name)
496 : m_index_no(index_no),
497 m_catalog_name_column_no(catalog_name_column_no),
498 m_catalog_name(catalog_name),
499 m_schema_name_column_no(schema_name_column_no),
500 m_schema_name(schema_name),
501 m_table_name_column_no(table_name_column_no),
503
504 public:
505 Raw_key *create_access_key(Raw_table *db_table) const override;
506
507 String_type str() const override;
508
509 private:
511
514
517
520};
521
522///////////////////////////////////////////////////////////////////////////
523
524// Range key to find sub partition entries by table id and parent partition
525// id in mysql.partitions.
527 public:
528 Sub_partition_range_key(int index_no, int table_id_column_no,
529 const Object_id table_id,
530 int parent_partition_id_column_no,
531 const Object_id parent_partition_id)
532 : m_index_no(index_no),
533 m_table_id_column_no(table_id_column_no),
534 m_table_id(table_id),
535 m_parent_partition_id_column_no(parent_partition_id_column_no),
536 m_parent_partition_id(parent_partition_id) {}
537
538 public:
539 Raw_key *create_access_key(Raw_table *db_table) const override;
540
541 String_type str() const override;
542
543 private:
545
548
551};
552
553///////////////////////////////////////////////////////////////////////////
554
555// Range key to find rows using definer name.
557 public:
558 Definer_reference_range_key(int index_no, int definer_column_no,
559 const String_type &definer)
560 : m_index_no(index_no),
561 m_definer_column_no(definer_column_no),
562 m_definer(definer) {}
563
564 public:
565 Raw_key *create_access_key(Raw_table *db_table) const override;
566
567 String_type str() const override;
568
569 private:
573};
574
575///////////////////////////////////////////////////////////////////////////
576
577// Range key to find rows using table type and definer name.
579 public:
580 View_definer_reference_range_key(int index_no, int table_type_column_no,
581 uint table_type, int definer_column_no,
582 const String_type &definer)
583 : m_index_no(index_no),
584 m_table_type_column_no(table_type_column_no),
585 m_table_type(table_type),
586 m_definer_column_no(definer_column_no),
587 m_definer(definer) {}
588
589 public:
590 Raw_key *create_access_key(Raw_table *db_table) const override;
591
592 String_type str() const override;
593
594 private:
600};
601
602//////////////////////////////////////////////////////////////////////////////
603
604} // namespace dd
605#endif // DD__OBJECT_KEYS_INCLUDED
Definition: object_keys.h:322
String_type m_second_name
Definition: object_keys.h:351
String_type m_first_name
Definition: object_keys.h:348
int m_fourth_column_no
Definition: object_keys.h:356
int m_second_column_no
Definition: object_keys.h:350
String_type m_fourth_name
Definition: object_keys.h:357
int m_index_no
Definition: object_keys.h:345
String_type str() const override
Definition: object_keys.cc:382
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:354
String_type m_third_name
Definition: object_keys.h:354
Composite_4char_key(int index_no, uint first_column_no, const String_type &first_name, uint second_column_no, const String_type &second_name, uint third_column_no, const String_type &third_name, uint fourth_column_no, const String_type &fourth_name)
Definition: object_keys.h:324
int m_first_column_no
Definition: object_keys.h:347
int m_third_column_no
Definition: object_keys.h:353
Definition: object_keys.h:294
int m_index_no
Definition: object_keys.h:311
String_type m_second_name
Definition: object_keys.h:317
Composite_char_key(int index_no, uint first_column_no, const String_type &first_name, uint second_column_no, const String_type &second_name)
Definition: object_keys.h:296
int m_first_column_no
Definition: object_keys.h:313
String_type m_first_name
Definition: object_keys.h:314
int m_second_column_no
Definition: object_keys.h:316
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:322
String_type str() const override
Definition: object_keys.cc:344
Definition: object_keys.h:362
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:393
int m_id_column_no
Definition: object_keys.h:389
String_type m_second_name
Definition: object_keys.h:396
int m_index_no
Definition: object_keys.h:387
Composite_obj_id_3char_key(int index_no, uint id_column_no, Object_id id, uint first_column_no, const String_type &first_name, uint second_column_no, const String_type &second_name, uint third_column_no, const String_type &third_name)
Definition: object_keys.h:364
Object_id m_id
Definition: object_keys.h:390
int m_first_column_no
Definition: object_keys.h:392
String_type str() const override
Definition: object_keys.cc:421
String_type m_first_name
Definition: object_keys.h:393
int m_second_column_no
Definition: object_keys.h:395
int m_third_column_no
Definition: object_keys.h:398
String_type m_third_name
Definition: object_keys.h:399
Definition: object_keys.h:267
ulonglong m_second_id
Definition: object_keys.h:289
int m_first_column_no
Definition: object_keys.h:285
int m_index_no
Definition: object_keys.h:283
Composite_pk(int index_no, uint first_column_no, ulonglong first_id, uint second_column_no, ulonglong second_id)
Definition: object_keys.h:269
ulonglong m_first_id
Definition: object_keys.h:286
String_type str() const override
Definition: object_keys.cc:262
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:241
int m_second_column_no
Definition: object_keys.h:288
Definition: object_keys.h:556
Definer_reference_range_key(int index_no, int definer_column_no, const String_type &definer)
Definition: object_keys.h:558
String_type str() const override
Definition: object_keys.cc:562
String_type m_definer
Definition: object_keys.h:572
int m_index_no
Definition: object_keys.h:570
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:539
int m_definer_column_no
Definition: object_keys.h:571
Definition: object_keys.h:123
const CHARSET_INFO * m_cs
Definition: object_keys.h:160
String_type m_object_name
Definition: object_keys.h:158
Global_name_key()=default
Global_name_key(int name_column_no, const String_type &object_name, const CHARSET_INFO *cs)
Definition: object_keys.h:127
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:124
bool operator<(const Global_name_key &rhs) const
Definition: object_keys.h:148
int m_name_column_no
Definition: object_keys.h:157
void update(int name_column_no, const String_type &object_name, const CHARSET_INFO *cs)
Definition: object_keys.h:134
String_type str() const override
Definition: object_keys.h:145
Definition: object_keys.h:406
int m_index_no
Definition: object_keys.h:423
String_type str() const override
Definition: object_keys.cc:453
String_type m_table_name
Definition: object_keys.h:429
String_type m_schema_name
Definition: object_keys.h:426
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:431
int m_schema_name_column_no
Definition: object_keys.h:425
int m_table_name_column_no
Definition: object_keys.h:428
Index_stat_range_key(int index_no, int schema_name_column_no, const String_type &schema_name, int table_name_column_no, const String_type &table_name)
Definition: object_keys.h:408
Definition: object_keys.h:166
Object_id m_container_id
Definition: object_keys.h:210
int m_container_id_column_no
Definition: object_keys.h:207
String_type m_object_name
Definition: object_keys.h:211
const CHARSET_INFO * m_cs
Definition: object_keys.h:213
bool operator<(const Item_name_key &rhs) const
Definition: object_keys.h:195
Item_name_key()=default
int m_name_column_no
Definition: object_keys.h:208
Item_name_key(int container_id_column_no, Object_id container_id, int name_column_no, const String_type &object_name, const CHARSET_INFO *cs)
Definition: object_keys.h:170
String_type str() const override
Definition: object_keys.cc:192
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:158
void update(int container_id_column_no, Object_id container_id, int name_column_no, const String_type &object_name, const CHARSET_INFO *cs)
Definition: object_keys.h:180
Definition: object_key.h:38
Definition: object_keys.h:102
Parent_id_range_key(int id_index_no, int id_column_no, Object_id object_id)
Definition: object_keys.h:104
int m_id_index_no
Definition: object_keys.h:115
int m_id_column_no
Definition: object_keys.h:116
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:91
String_type str() const override
Definition: object_keys.cc:112
Object_id m_object_id
Definition: object_keys.h:117
Definition: object_keys.h:77
String_type str() const override
Definition: object_keys.cc:80
void update(Object_id object_id)
Definition: object_keys.h:84
Primary_id_key(Object_id object_id)
Definition: object_keys.h:81
bool operator<(const Primary_id_key &rhs) const
Definition: object_keys.h:91
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:48
Object_id m_object_id
Definition: object_keys.h:96
Primary_id_key()=default
Definition: raw_table.h:44
Definition: object_keys.h:434
uint m_type
Definition: object_keys.h:479
String_type m_object_name
Definition: object_keys.h:480
void update(int index_no, int container_id_column_no, Object_id container_id, int type_column_no, uint type, int name_column_no, const String_type &object_name, const CHARSET_INFO *cs)
Definition: object_keys.h:452
Object_id m_container_id
Definition: object_keys.h:478
int m_name_column_no
Definition: object_keys.h:476
String_type str() const override
Definition: object_keys.cc:298
int m_container_id_column_no
Definition: object_keys.h:474
Routine_name_key()=default
Routine_name_key(int index_no, int container_id_column_no, Object_id container_id, int type_column_no, uint type, int name_column_no, const String_type &object_name, const CHARSET_INFO *cs)
Definition: object_keys.h:438
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:273
int m_type_column_no
Definition: object_keys.h:475
const CHARSET_INFO * m_cs
Definition: object_keys.h:482
bool operator<(const Routine_name_key &rhs) const
Definition: object_keys.cc:307
int m_index_no
Definition: object_keys.h:473
Definition: object_keys.h:219
Se_private_id_key()=default
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:203
void update(int index_no, int engine_column_no, const String_type &engine, int private_id_column_no, Object_id private_id)
Definition: object_keys.h:235
int m_engine_column_no
Definition: object_keys.h:258
String_type m_engine
Definition: object_keys.h:259
int m_index_no
Definition: object_keys.h:256
String_type str() const override
Definition: object_keys.cc:231
bool operator<(const Se_private_id_key &rhs) const
Definition: object_keys.h:249
Object_id m_private_id
Definition: object_keys.h:262
Se_private_id_key(int index_no, int engine_column_no, const String_type &engine, int private_id_column_no, Object_id private_id)
Definition: object_keys.h:224
int m_private_id_column_no
Definition: object_keys.h:261
Definition: object_keys.h:526
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:500
int m_parent_partition_id_column_no
Definition: object_keys.h:549
int m_table_id_column_no
Definition: object_keys.h:546
Sub_partition_range_key(int index_no, int table_id_column_no, const Object_id table_id, int parent_partition_id_column_no, const Object_id parent_partition_id)
Definition: object_keys.h:528
String_type str() const override
Definition: object_keys.cc:528
Object_id m_parent_partition_id
Definition: object_keys.h:550
Object_id m_table_id
Definition: object_keys.h:547
int m_index_no
Definition: object_keys.h:544
Definition: object_keys.h:488
String_type str() const override
Definition: object_keys.cc:488
int m_index_no
Definition: object_keys.h:510
Table_reference_range_key(int index_no, int catalog_name_column_no, const String_type &catalog_name, int schema_name_column_no, const String_type &schema_name, int table_name_column_no, const String_type &table_name)
Definition: object_keys.h:490
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:464
String_type m_schema_name
Definition: object_keys.h:516
int m_catalog_name_column_no
Definition: object_keys.h:512
String_type m_catalog_name
Definition: object_keys.h:513
String_type m_table_name
Definition: object_keys.h:519
int m_table_name_column_no
Definition: object_keys.h:518
int m_schema_name_column_no
Definition: object_keys.h:515
Definition: object_keys.h:578
int m_index_no
Definition: object_keys.h:595
int m_table_type_column_no
Definition: object_keys.h:596
uint m_table_type
Definition: object_keys.h:597
String_type m_definer
Definition: object_keys.h:599
View_definer_reference_range_key(int index_no, int table_type_column_no, uint table_type, int definer_column_no, const String_type &definer)
Definition: object_keys.h:580
int m_definer_column_no
Definition: object_keys.h:598
String_type str() const override
Definition: object_keys.cc:592
Raw_key * create_access_key(Raw_table *db_table) const override
Definition: object_keys.cc:568
Definition: object_keys.h:54
Void_key()=default
Raw_key * create_access_key(Raw_table *) const override
Definition: object_keys.h:60
String_type str() const override
Definition: object_keys.h:64
bool operator<(const Void_key &rhs) const
Definition: object_keys.h:70
A better implementation of the UNIX ctype(3) library.
int my_strnncoll(const CHARSET_INFO *cs, const uint8_t *a, size_t a_length, const uint8_t *b, size_t b_length)
Definition: m_ctype.h:631
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
Definition: commit_order_queue.h:34
The version of the current data dictionary table definitions.
Definition: dictionary_client.h:43
unsigned long long Object_id
Definition: object_id.h:31
Char_string_template< String_type_allocator > String_type
Definition: string_type.h:51
const char * table_name
Definition: rules_table_service.cc:56
required string type
Definition: replication_group_member_actions.proto:34
Definition: m_ctype.h:421
Definition: raw_key.h:34
unsigned long id[MAX_DEAD]
Definition: xcom_base.cc:510