MySQL 8.3.0
Source Code Documentation
sql_show.h
Go to the documentation of this file.
1/* Copyright (c) 2005, 2023, 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 SQL_SHOW_H
24#define SQL_SHOW_H
25
26#include <stddef.h>
27#include <sys/types.h>
28
29#include "field_types.h"
30#include "lex_string.h"
31#include "my_inttypes.h"
32#include "mysql/status_var.h"
33#include "sql/sql_select.h"
34#include "typelib.h"
35
36/* Forward declarations */
37class Item;
38class JOIN;
39class QEP_TAB;
40class Query_block;
41class String;
42class Table_ident;
43class THD;
44class sp_name;
45struct CHARSET_INFO;
46struct HA_CREATE_INFO;
47struct LEX;
48struct ST_SCHEMA_TABLE;
50struct TABLE;
51class Table_ref;
53enum enum_schema_tables : int;
54enum enum_var_type : int;
55
56/** Characters shown for the command in 'show processlist'. */
57constexpr const size_t PROCESS_LIST_WIDTH{100};
58/* Characters shown for the command in 'information_schema.processlist' */
59constexpr const size_t PROCESS_LIST_INFO_WIDTH{65535};
60
61bool store_create_info(THD *thd, Table_ref *table_list, String *packet,
62 HA_CREATE_INFO *create_info_arg, bool show_database,
63 bool for_show_create_stmt);
64
65void append_identifier(const THD *thd, String *packet, const char *name,
66 size_t length, const CHARSET_INFO *from_cs,
67 const CHARSET_INFO *to_cs);
68
69void append_identifier(const THD *thd, String *packet, const char *name,
70 size_t length);
71
72bool mysqld_show_create(THD *thd, Table_ref *table_list);
73bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create);
74
75void mysqld_list_processes(THD *thd, const char *user, bool verbose,
76 bool has_cursor);
79void append_definer(const THD *thd, String *buffer,
80 const LEX_CSTRING &definer_user,
81 const LEX_CSTRING &definer_host);
82bool add_status_vars(const SHOW_VAR *list);
84void init_status_vars();
85void free_status_vars();
86bool get_recursive_status_var(THD *thd, const char *name, char *const value,
87 enum_var_type var_type, size_t *length,
88 const CHARSET_INFO **charset);
91bool show_create_trigger(THD *thd, const sp_name *trg_name);
92void view_store_options(const THD *thd, Table_ref *table, String *buff);
93
95
96/**
97 Store record to I_S table, convert HEAP table to InnoDB table if necessary.
98
99 @param[in] thd thread handler
100 @param[in] table Information schema table to be updated
101 @param[in] make_ondisk if true, convert heap table to on disk table.
102 default value is true.
103 @return 0 on success
104 @return error code on failure.
105*/
106int schema_table_store_record2(THD *thd, TABLE *table, bool make_ondisk);
107
108/**
109 Convert HEAP table to InnoDB table if necessary
110
111 @param[in] thd thread handler
112 @param[in] table Information schema table to be converted.
113 @param[in] error the error code returned previously.
114 @return false on success, true on error.
115*/
118bool make_table_list(THD *thd, Query_block *sel, const LEX_CSTRING &db_name,
119 const LEX_CSTRING &table_name);
120
124 enum enum_schema_tables schema_table_idx);
125bool mysql_schema_table(THD *thd, LEX *lex, Table_ref *table_list);
127
128const char *get_one_variable(THD *thd, const SHOW_VAR *variable,
130 System_status_var *status_var,
131 const CHARSET_INFO **charset, char *buff,
132 size_t *length, bool *is_null = nullptr);
133
134const char *get_one_variable_ext(THD *running_thd, THD *target_thd,
135 const SHOW_VAR *variable,
137 System_status_var *status_var,
138 const CHARSET_INFO **charset, char *buff,
139 size_t *length, bool *is_null = nullptr);
140
141/* These functions were under INNODB_COMPATIBILITY_HOOKS */
142int get_quote_char_for_identifier(const THD *thd, const char *name,
143 size_t length);
144
145void show_sql_type(enum_field_types type, bool is_array, uint metadata,
146 String *str, const CHARSET_INFO *field_cs = nullptr);
147
148bool do_fill_information_schema_table(THD *thd, Table_ref *table_list,
149 Item *condition);
150
151extern std::atomic_ulong deprecated_use_i_s_processlist_count;
152extern std::atomic_ullong deprecated_use_i_s_processlist_last_timestamp;
153extern TYPELIB grant_types;
154
155/**
156 Sql_cmd_show represents the SHOW statements that are implemented
157 as SELECT statements internally.
158 Normally, preparation and execution is the same as for regular SELECT
159 statements.
160*/
162 public:
164 : Sql_cmd_select(nullptr), m_sql_command(sql_command) {}
166 virtual bool check_parameters(THD *) { return false; }
167 /// Generally, the SHOW commands do not distinguish precheck and regular check
168 bool precheck(THD *thd) override { return check_privileges(thd); }
169 bool check_privileges(THD *) override;
170 bool execute(THD *thd) override;
171
172 protected:
174};
175
176/**
177 Common base class: Represents commands that are not represented by
178 a plan that is equivalent to a SELECT statement.
179
180 This class has a common execution framework with an execute() function
181 that calls check_privileges() and execute_inner().
182*/
184 protected:
186 : Sql_cmd_show(sql_command) {}
187 bool execute(THD *thd) override {
188 lex = thd->lex;
189 if (check_privileges(thd)) return true;
190 if (execute_inner(thd)) return true;
191 return false;
192 }
193};
194
195/// Common base class: Represents commands that operate on a schema (database)
196
198 public:
200 bool check_privileges(THD *thd) override;
201 bool check_parameters(THD *thd) override;
202 bool set_metadata_lock(THD *thd);
203};
204
205/// Common base class: Represents the SHOW COLUMNS and SHOW KEYS statements.
206
208 public:
210 bool check_privileges(THD *thd) override;
211 bool check_parameters(THD *thd) override;
212
213 bool m_temporary; ///< True if table to be analyzed is temporary
214};
215
216/// Represents SHOW FUNCTION CODE and SHOW PROCEDURE CODE statements.
217
219 public:
221 const sp_name *routine_name)
222 : Sql_cmd_show_noplan(sql_command), m_routine_name(routine_name) {}
223 bool check_privileges(THD *thd) override;
224 bool execute_inner(THD *thd) override;
225
226 private:
228};
229
230/// Following are all subclasses of class Sql_cmd_show, in alphabetical order
231
232/// Represents SHOW BINLOG EVENTS statement.
233
235 public:
238 bool check_privileges(THD *thd) override;
239 bool execute_inner(THD *thd) override;
240
241 private:
242 // binlog_in
243 // binlog_from
244 // opt_limit
245};
246
247/// Represents SHOW BINARY LOGS statement.
248
250 public:
252 bool check_privileges(THD *thd) override;
253 bool execute_inner(THD *thd) override;
254};
255
256/// Represents SHOW CHARACTER SET statement.
257
259 public:
261};
262
263/// Represents SHOW COLLATION statement.
264
266 public:
268};
269
270/// Represents SHOW COLUMNS statement.
271
273 public:
275};
276
277/// Represents SHOW CREATE DATABASE statement.
278
280 public:
282 bool check_privileges(THD *thd) override;
283 bool execute_inner(THD *thd) override;
284};
285
286/// Represents SHOW CREATE EVENT statement.
287
289 public:
291 bool check_privileges(THD *thd) override;
292 bool execute_inner(THD *thd) override;
293};
294
295/// Represents SHOW CREATE FUNCTION statement.
296
298 public:
301 bool check_privileges(THD *thd) override;
302 bool execute_inner(THD *thd) override;
303};
304
305/// Represents SHOW CREATE PROCEDURE statement.
306
308 public:
311 bool check_privileges(THD *thd) override;
312 bool execute_inner(THD *thd) override;
313};
314
315/// Represents SHOW CREATE TABLE/VIEW statement.
316
318 public:
322 m_table_ident(table_ident) {}
323 bool check_privileges(THD *thd) override;
324 bool execute_inner(THD *thd) override;
325
326 private:
327 const bool m_is_view;
329};
330
331/// Represents SHOW CREATE TRIGGER statement.
332
334 public:
337 bool check_privileges(THD *thd) override;
338 bool execute_inner(THD *thd) override;
339};
340
341/// Represents SHOW CREATE USER statement.
342
344 public:
346 bool check_privileges(THD *thd) override;
347 bool execute_inner(THD *thd) override;
348};
349
350/// Represents SHOW DATABASES statement.
351
353 public:
355 bool check_privileges(THD *thd) override;
356};
357
358/// Represents SHOW ENGINE LOGS statement.
359
361 public:
363 bool check_privileges(THD *thd) override;
364 bool execute_inner(THD *thd) override;
365};
366
367/// Represents SHOW ENGINE MUTEX statement.
368
370 public:
372 bool check_privileges(THD *thd) override;
373 bool execute_inner(THD *thd) override;
374};
375
376/// Represents SHOW ENGINE STATUS statement.
377
379 public:
382 bool check_privileges(THD *thd) override;
383 bool execute_inner(THD *thd) override;
384};
385
386/// Represents SHOW STORAGE ENGINES statement.
387
389 public:
391};
392
393/// Represents SHOW ERRORS statement.
394
396 public:
398 bool execute_inner(THD *thd) override {
399 return mysqld_show_warnings(thd, 1UL << (uint)Sql_condition::SL_ERROR);
400 }
401};
402
403/// Represents SHOW EVENTS statement.
404
406 public:
408 bool check_privileges(THD *thd) override;
409 // To enable error message for unknown database, delete the below function.
410 bool check_parameters(THD *) override { return false; }
411};
412
413/// Represents SHOW GRANTS statement.
414
416 public:
417 Sql_cmd_show_grants(const LEX_USER *for_user_arg,
418 const List<LEX_USER> *using_users_arg)
420 for_user(for_user_arg),
421 using_users(using_users_arg) {}
422
423 bool check_privileges(THD *thd) override;
424 bool execute_inner(THD *thd) override;
425
426 private:
429};
430
431/// Represents the SHOW INDEX statement.
432
434 public:
436};
437
438/// Represents SHOW BINARY LOG STATUS statement.
439
441 public:
444 bool check_privileges(THD *thd) override;
445 bool execute_inner(THD *thd) override;
446};
447
448/// Represents SHOW OPEN TABLES statement.
449
451 public:
453};
454
455/// Represents SHOW PLUGINS statement.
456
458 public:
460};
461
462/// Represents SHOW PRIVILEGES statement.
463
465 public:
467 bool execute_inner(THD *thd) override;
468};
469
470/// Represents SHOW PROCESSLIST statement.
471
473 public:
477 bool check_privileges(THD *thd) override;
478 bool execute_inner(THD *thd) override;
479
481 bool verbose() const { return m_verbose; }
482
483 private:
484 bool use_pfs() { return m_use_pfs; }
485
486 const bool m_verbose{false};
487 bool m_use_pfs{false};
488};
489
490/// Represents SHOW PARSE_TREE statement.
491
493 public:
495};
496
497/// Represents SHOW PROFILE statement.
498
500 public:
502};
503
504/// Represents SHOW PROFILES statement.
505
507 public:
509 bool execute_inner(THD *thd) override;
510};
511
512/// Represents SHOW RELAYLOG EVENTS statement.
513
515 public:
518 bool check_privileges(THD *thd) override;
519 bool execute_inner(THD *thd) override;
520
521 private:
522 // binlog_in
523 // binlog_from
524 // opt_limit
525};
526
527/// Represents SHOW REPLICAS statement.
528
530 public:
532 bool check_privileges(THD *thd) override;
533 bool execute_inner(THD *thd) override;
534};
535
536/// Represents SHOW REPLICA STATUS statement.
537
539 public:
541 bool check_privileges(THD *thd) override;
542 bool execute_inner(THD *thd) override;
543};
544
545/// Represents SHOW STATUS statement.
546
548 public:
550 bool execute(THD *thd) override;
551};
552
553/// Represents SHOW STATUS FUNCTION statement.
554
556 public:
558};
559
560/// Represents SHOW STATUS PROCEDURE statement.
561
563 public:
565};
566
567/// Represents SHOW TABLE STATUS statement.
568
570 public:
573};
574
575/// Represents SHOW TABLES statement.
576
578 public:
580};
581
582/// Represents SHOW TRIGGERS statement.
583
585 public:
587};
588
589/// Represents SHOW VARIABLES statement.
590
592 public:
594};
595
596/// Represents SHOW WARNINGS statement.
597
599 public:
601 bool execute_inner(THD *thd) override {
602 return mysqld_show_warnings(thd,
603 (1UL << (uint)Sql_condition::SL_NOTE) |
604 (1UL << (uint)Sql_condition::SL_WARNING) |
605 (1UL << (uint)Sql_condition::SL_ERROR));
606 }
607};
608
609#endif /* SQL_SHOW_H */
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:933
Definition: sql_optimizer.h:132
Definition: sql_list.h:434
Definition: sql_executor.h:253
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1161
LEX * lex
Pointer to LEX for this statement.
Definition: sql_cmd_dml.h:218
Definition: sql_select.h:75
Represents SHOW BINARY LOG STATUS statement.
Definition: sql_show.h:440
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:563
Sql_cmd_show_binary_log_status()
Definition: sql_show.h:442
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:559
Following are all subclasses of class Sql_cmd_show, in alphabetical order.
Definition: sql_show.h:234
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:310
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:314
Sql_cmd_show_binlog_events()
Definition: sql_show.h:236
Represents SHOW BINARY LOGS statement.
Definition: sql_show.h:249
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:318
Sql_cmd_show_binlogs()
Definition: sql_show.h:251
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:322
Represents SHOW CHARACTER SET statement.
Definition: sql_show.h:258
Sql_cmd_show_charsets()
Definition: sql_show.h:260
Represents SHOW COLLATION statement.
Definition: sql_show.h:265
Sql_cmd_show_collations()
Definition: sql_show.h:267
Represents SHOW COLUMNS statement.
Definition: sql_show.h:272
Sql_cmd_show_columns()
Definition: sql_show.h:274
Represents SHOW CREATE DATABASE statement.
Definition: sql_show.h:279
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:324
Sql_cmd_show_create_database()
Definition: sql_show.h:281
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:326
Represents SHOW CREATE EVENT statement.
Definition: sql_show.h:288
Sql_cmd_show_create_event()
Definition: sql_show.h:290
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:336
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:334
Represents SHOW CREATE FUNCTION statement.
Definition: sql_show.h:297
Sql_cmd_show_create_function()
Definition: sql_show.h:299
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:341
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:343
Represents SHOW CREATE PROCEDURE statement.
Definition: sql_show.h:307
Sql_cmd_show_create_procedure()
Definition: sql_show.h:309
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:349
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:347
Represents SHOW CREATE TABLE/VIEW statement.
Definition: sql_show.h:317
const bool m_is_view
Definition: sql_show.h:327
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:353
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:358
Table_ident *const m_table_ident
Definition: sql_show.h:328
Sql_cmd_show_create_table(bool is_view, Table_ident *table_ident)
Definition: sql_show.h:319
Represents SHOW CREATE TRIGGER statement.
Definition: sql_show.h:333
Sql_cmd_show_create_trigger()
Definition: sql_show.h:335
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:426
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:428
Represents SHOW CREATE USER statement.
Definition: sql_show.h:343
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:437
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:439
Sql_cmd_show_create_user()
Definition: sql_show.h:345
Represents SHOW DATABASES statement.
Definition: sql_show.h:352
Sql_cmd_show_databases()
Definition: sql_show.h:354
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:452
Represents SHOW ENGINE LOGS statement.
Definition: sql_show.h:360
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:466
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:462
Sql_cmd_show_engine_logs()
Definition: sql_show.h:362
Represents SHOW ENGINE MUTEX statement.
Definition: sql_show.h:369
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:474
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:470
Sql_cmd_show_engine_mutex()
Definition: sql_show.h:371
Represents SHOW ENGINE STATUS statement.
Definition: sql_show.h:378
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:482
Sql_cmd_show_engine_status()
Definition: sql_show.h:380
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:478
Represents SHOW STORAGE ENGINES statement.
Definition: sql_show.h:388
Sql_cmd_show_engines()
Definition: sql_show.h:390
Represents SHOW ERRORS statement.
Definition: sql_show.h:395
Sql_cmd_show_errors()
Definition: sql_show.h:397
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.h:398
Represents SHOW EVENTS statement.
Definition: sql_show.h:405
Sql_cmd_show_events()
Definition: sql_show.h:407
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:486
bool check_parameters(THD *) override
Definition: sql_show.h:410
Represents SHOW GRANTS statement.
Definition: sql_show.h:415
const LEX_USER * for_user
Definition: sql_show.h:427
const List< LEX_USER > * using_users
Definition: sql_show.h:428
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:518
Sql_cmd_show_grants(const LEX_USER *for_user_arg, const List< LEX_USER > *using_users_arg)
Definition: sql_show.h:417
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:513
Represents the SHOW INDEX statement.
Definition: sql_show.h:433
Sql_cmd_show_keys()
Definition: sql_show.h:435
Common base class: Represents commands that are not represented by a plan that is equivalent to a SEL...
Definition: sql_show.h:183
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.h:187
Sql_cmd_show_noplan(enum_sql_command sql_command)
Definition: sql_show.h:185
Represents SHOW OPEN TABLES statement.
Definition: sql_show.h:450
Sql_cmd_show_open_tables()
Definition: sql_show.h:452
Represents SHOW PARSE_TREE statement.
Definition: sql_show.h:492
Sql_cmd_show_parse_tree()
Definition: sql_show.h:494
Represents SHOW PLUGINS statement.
Definition: sql_show.h:457
Sql_cmd_show_plugins()
Definition: sql_show.h:459
Represents SHOW PRIVILEGES statement.
Definition: sql_show.h:464
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:577
Sql_cmd_show_privileges()
Definition: sql_show.h:466
Represents SHOW PROCESSLIST statement.
Definition: sql_show.h:472
Sql_cmd_show_processlist(bool verbose)
Definition: sql_show.h:475
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:588
Sql_cmd_show_processlist()
Definition: sql_show.h:474
void set_use_pfs(bool use_pfs)
Definition: sql_show.h:480
const bool m_verbose
Definition: sql_show.h:486
bool use_pfs()
Definition: sql_show.h:484
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:581
bool verbose() const
Definition: sql_show.h:481
bool m_use_pfs
Definition: sql_show.h:487
Represents SHOW PROFILE statement.
Definition: sql_show.h:499
Sql_cmd_show_profile()
Definition: sql_show.h:501
Represents SHOW PROFILES statement.
Definition: sql_show.h:506
Sql_cmd_show_profiles()
Definition: sql_show.h:508
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:567
Represents SHOW RELAYLOG EVENTS statement.
Definition: sql_show.h:514
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:612
Sql_cmd_show_relaylog_events()
Definition: sql_show.h:516
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:608
Represents SHOW REPLICA STATUS statement.
Definition: sql_show.h:538
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:657
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:653
Sql_cmd_show_replica_status()
Definition: sql_show.h:540
Represents SHOW REPLICAS statement.
Definition: sql_show.h:529
Sql_cmd_show_replicas()
Definition: sql_show.h:531
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:649
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:645
Represents SHOW FUNCTION CODE and SHOW PROCEDURE CODE statements.
Definition: sql_show.h:218
const sp_name * m_routine_name
Definition: sql_show.h:227
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:620
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:615
Sql_cmd_show_routine_code(enum_sql_command sql_command, const sp_name *routine_name)
Definition: sql_show.h:220
Common base class: Represents commands that operate on a schema (database)
Definition: sql_show.h:197
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:239
bool check_parameters(THD *thd) override
Definition: sql_show.cc:268
bool set_metadata_lock(THD *thd)
Definition: sql_show.cc:222
Sql_cmd_show_schema_base(enum_sql_command command)
Definition: sql_show.h:199
Represents SHOW STATUS FUNCTION statement.
Definition: sql_show.h:555
Sql_cmd_show_status_func()
Definition: sql_show.h:557
Represents SHOW STATUS PROCEDURE statement.
Definition: sql_show.h:562
Sql_cmd_show_status_proc()
Definition: sql_show.h:564
Represents SHOW STATUS statement.
Definition: sql_show.h:547
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.cc:758
Sql_cmd_show_status()
Definition: sql_show.h:549
Common base class: Represents the SHOW COLUMNS and SHOW KEYS statements.
Definition: sql_show.h:207
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:285
bool check_parameters(THD *thd) override
Definition: sql_show.cc:708
bool m_temporary
True if table to be analyzed is temporary.
Definition: sql_show.h:213
Sql_cmd_show_table_base(enum_sql_command command)
Definition: sql_show.h:209
Represents SHOW TABLE STATUS statement.
Definition: sql_show.h:569
Sql_cmd_show_table_status()
Definition: sql_show.h:571
Represents SHOW TABLES statement.
Definition: sql_show.h:577
Sql_cmd_show_tables()
Definition: sql_show.h:579
Represents SHOW TRIGGERS statement.
Definition: sql_show.h:584
Sql_cmd_show_triggers()
Definition: sql_show.h:586
Represents SHOW VARIABLES statement.
Definition: sql_show.h:591
Sql_cmd_show_variables()
Definition: sql_show.h:593
Represents SHOW WARNINGS statement.
Definition: sql_show.h:598
Sql_cmd_show_warnings()
Definition: sql_show.h:600
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.h:601
Sql_cmd_show represents the SHOW statements that are implemented as SELECT statements internally.
Definition: sql_show.h:161
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.cc:214
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: sql_show.h:165
virtual bool check_parameters(THD *)
Definition: sql_show.h:166
Sql_cmd_show(enum_sql_command sql_command)
Definition: sql_show.h:163
enum_sql_command m_sql_command
Definition: sql_show.h:173
bool check_privileges(THD *) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:207
bool precheck(THD *thd) override
Generally, the SHOW commands do not distinguish precheck and regular check.
Definition: sql_show.h:168
@ SL_NOTE
Definition: sql_error.h:62
@ SL_ERROR
Definition: sql_error.h:62
@ SL_WARNING
Definition: sql_error.h:62
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
LEX * lex
Definition: sql_class.h:982
Definition: sql_lex.h:295
Definition: table.h:2853
ST_SCHEMA_TABLE * schema_table
Definition: table.h:3683
Definition: sp_head.h:122
This file contains the field type.
enum_field_types
Column types for MySQL Note: Keep include/mysql/components/services/bits/stored_program_bits....
Definition: field_types.h:54
virtual bool execute_inner(THD *thd)
The inner parts of query optimization and execution.
Definition: sql_select.cc:999
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
enum_sql_command
Definition: my_sqlcommand.h:45
@ SQLCOM_SHOW_ENGINE_LOGS
Definition: my_sqlcommand.h:63
@ SQLCOM_SHOW_GRANTS
Definition: my_sqlcommand.h:69
@ SQLCOM_SHOW_CREATE_DB
Definition: my_sqlcommand.h:73
@ SQLCOM_SHOW_STATUS_FUNC
Definition: my_sqlcommand.h:144
@ SQLCOM_SHOW_CREATE_FUNC
Definition: my_sqlcommand.h:142
@ SQLCOM_SHOW_SLAVE_HOSTS
Definition: my_sqlcommand.h:119
@ SQLCOM_SHOW_CREATE_TRIGGER
Definition: my_sqlcommand.h:173
@ SQLCOM_SHOW_ENGINE_MUTEX
Definition: my_sqlcommand.h:65
@ SQLCOM_SHOW_PARSE_TREE
Definition: my_sqlcommand.h:205
@ SQLCOM_SHOW_PRIVILEGES
Definition: my_sqlcommand.h:128
@ SQLCOM_SHOW_BINLOGS
Definition: my_sqlcommand.h:114
@ SQLCOM_SHOW_BINLOG_EVENTS
Definition: my_sqlcommand.h:122
@ SQLCOM_SHOW_WARNS
Definition: my_sqlcommand.h:124
@ SQLCOM_SHOW_STATUS_PROC
Definition: my_sqlcommand.h:143
@ SQLCOM_SHOW_PLUGINS
Definition: my_sqlcommand.h:164
@ SQLCOM_SHOW_PROFILE
Definition: my_sqlcommand.h:174
@ SQLCOM_SHOW_DATABASES
Definition: my_sqlcommand.h:57
@ SQLCOM_SHOW_CHARSETS
Definition: my_sqlcommand.h:71
@ SQLCOM_SHOW_OPEN_TABLES
Definition: my_sqlcommand.h:115
@ SQLCOM_SHOW_TABLE_STATUS
Definition: my_sqlcommand.h:74
@ SQLCOM_SHOW_ERRORS
Definition: my_sqlcommand.h:126
@ SQLCOM_SHOW_FIELDS
Definition: my_sqlcommand.h:59
@ SQLCOM_SHOW_CREATE_USER
Definition: my_sqlcommand.h:182
@ SQLCOM_SHOW_STATUS
Definition: my_sqlcommand.h:62
@ SQLCOM_SHOW_ENGINE_STATUS
Definition: my_sqlcommand.h:64
@ SQLCOM_SHOW_EVENTS
Definition: my_sqlcommand.h:172
@ SQLCOM_SHOW_CREATE_PROC
Definition: my_sqlcommand.h:141
@ SQLCOM_SHOW_COLLATIONS
Definition: my_sqlcommand.h:72
@ SQLCOM_SHOW_MASTER_STAT
Definition: my_sqlcommand.h:67
@ SQLCOM_SHOW_KEYS
Definition: my_sqlcommand.h:60
@ SQLCOM_SHOW_SLAVE_STAT
Definition: my_sqlcommand.h:68
@ SQLCOM_SHOW_TABLES
Definition: my_sqlcommand.h:58
@ SQLCOM_SHOW_VARIABLES
Definition: my_sqlcommand.h:61
@ SQLCOM_SHOW_CREATE_EVENT
Definition: my_sqlcommand.h:171
@ SQLCOM_SHOW_PROCESSLIST
Definition: my_sqlcommand.h:66
@ SQLCOM_SHOW_RELAYLOG_EVENTS
Definition: my_sqlcommand.h:178
@ SQLCOM_SHOW_STORAGE_ENGINES
Definition: my_sqlcommand.h:127
@ SQLCOM_SHOW_TRIGGERS
Definition: my_sqlcommand.h:75
@ SQLCOM_SHOW_CREATE
Definition: my_sqlcommand.h:70
@ SQLCOM_SHOW_PROFILES
Definition: my_sqlcommand.h:175
char * user
Definition: mysqladmin.cc:64
static uint verbose
Definition: mysqlcheck.cc:65
uint16_t value_type
Definition: vt100.h:183
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1065
static PFS_engine_table_share_proxy table
Definition: pfs.cc:60
const std::string charset("charset")
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:417
static mysql_service_status_t create(const char *service_names[], reference_caching_channel *out_channel) noexcept
Definition: component.cc:44
const char * table_name
Definition: rules_table_service.cc:55
const char * db_name
Definition: rules_table_service.cc:54
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2877
required string type
Definition: replication_group_member_actions.proto:33
enum enum_mysql_show_type SHOW_TYPE
Definition: set_var.h:73
enum_var_type
Definition: set_var.h:90
enum_schema_tables
Definition: handler.h:920
bool mysqld_show_warnings(THD *thd, ulong levels_to_show)
Send all notes, errors or warnings to the client in a result set.
Definition: sql_error.cc:741
ST_SCHEMA_TABLE * find_schema_table(THD *thd, const char *table_name)
Definition: sql_show.cc:4468
void reset_status_vars()
Definition: sql_show.cc:3274
enum enum_mysql_show_type SHOW_TYPE
Definition: sql_show.h:52
enum enum_schema_tables get_schema_table_idx(ST_SCHEMA_TABLE *schema_table)
Definition: sql_show.cc:3774
int get_quote_char_for_identifier(const THD *thd, const char *name, size_t length)
Definition: sql_show.cc:1546
bool schema_table_store_record(THD *thd, TABLE *table)
Definition: sql_show.cc:3708
bool do_fill_information_schema_table(THD *thd, Table_ref *table_list, Item *condition)
Fill INFORMATION_SCHEMA-table, leave correct Diagnostics_area state after itself.
Definition: sql_show.cc:4842
const char * get_one_variable_ext(THD *running_thd, THD *target_thd, const SHOW_VAR *variable, enum_var_type value_type, SHOW_TYPE show_type, System_status_var *status_var, const CHARSET_INFO **charset, char *buff, size_t *length, bool *is_null=nullptr)
Returns the value of a system or a status variable.
Definition: sql_show.cc:3497
void show_sql_type(enum_field_types type, bool is_array, uint metadata, String *str, const CHARSET_INFO *field_cs=nullptr)
A field's SQL type printout.
Definition: sql_show.cc:5548
bool make_table_list(THD *thd, Query_block *sel, const LEX_CSTRING &db_name, const LEX_CSTRING &table_name)
Prepare a Table_ident and add a table_list into Query_block.
Definition: sql_show.cc:3764
void free_status_vars()
Definition: sql_show.cc:3298
void mysqld_list_processes(THD *thd, const char *user, bool verbose, bool has_cursor)
List running processes (actually connected sessions).
Definition: sql_show.cc:2921
void init_status_vars()
Definition: sql_show.cc:3268
std::atomic_ullong deprecated_use_i_s_processlist_last_timestamp
Last time information_schema.processlist was used, as usec since epoch.
Definition: sql_show.cc:159
bool mysqld_show_privileges(THD *thd)
Definition: sql_show.cc:955
ulonglong get_status_vars_version(void)
Definition: sql_show.cc:3287
TYPELIB grant_types
Definition: sql_show.cc:192
const char * get_one_variable(THD *thd, const SHOW_VAR *variable, enum_var_type value_type, SHOW_TYPE show_type, System_status_var *status_var, const CHARSET_INFO **charset, char *buff, size_t *length, bool *is_null=nullptr)
Returns the value of a system or a status variable.
Definition: sql_show.cc:3470
ST_SCHEMA_TABLE * get_schema_table(enum enum_schema_tables schema_table_idx)
Definition: sql_show.cc:4487
void view_store_options(const THD *thd, Table_ref *table, String *buff)
Definition: sql_show.cc:2612
void calc_sum_of_all_status(System_status_var *to)
Definition: sql_show.cc:3682
bool convert_heap_table_to_ondisk(THD *thd, TABLE *table, int error)
Convert HEAP table to InnoDB table if necessary.
Definition: sql_show.cc:3747
bool make_schema_query_block(THD *thd, Query_block *sel, enum enum_schema_tables schema_table_idx)
Generate select from information_schema table.
Definition: sql_show.cc:4771
bool mysql_schema_table(THD *thd, LEX *lex, Table_ref *table_list)
Create information_schema table.
Definition: sql_show.cc:4692
int schema_table_store_record2(THD *thd, TABLE *table, bool make_ondisk)
Store record to I_S table, convert HEAP table to InnoDB table if necessary.
Definition: sql_show.cc:3729
std::atomic_ulong deprecated_use_i_s_processlist_count
Count number of times information_schema.processlist has been used.
Definition: sql_show.cc:156
void append_identifier(const THD *thd, String *packet, const char *name, size_t length, const CHARSET_INFO *from_cs, const CHARSET_INFO *to_cs)
Convert and quote the given identifier if needed and append it to the target string.
Definition: sql_show.cc:1461
void remove_status_vars(SHOW_VAR *list)
Definition: sql_show.cc:3419
void append_definer(const THD *thd, String *buffer, const LEX_CSTRING &definer_user, const LEX_CSTRING &definer_host)
Append DEFINER clause to the given buffer.
Definition: sql_show.cc:2654
bool get_recursive_status_var(THD *thd, const char *name, char *const value, enum_var_type var_type, size_t *length, const CHARSET_INFO **charset)
Get the string value of a status variable.
Definition: sql_show.cc:3393
bool add_status_vars(const SHOW_VAR *list)
Definition: sql_show.cc:3242
enum enum_schema_tables int enum constexpr enum_var_type int const size_t constexpr PROCESS_LIST_WIDTH const size_t PROCESS_LIST_INFO_WIDTH bool store_create_info(THD *thd, Table_ref *table_list, String *packet, HA_CREATE_INFO *create_info_arg, bool show_database, bool for_show_create_stmt)
Characters shown for the command in 'show processlist'.
Definition: sql_show.cc:1897
bool show_create_trigger(THD *thd, const sp_name *trg_name)
SHOW CREATE TRIGGER high-level implementation.
Definition: sql_show.cc:5368
void initialize_information_schema_acl()
Definition: sql_show.cc:5441
bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create)
Definition: sql_show.cc:1262
bool mysqld_show_create(THD *thd, Table_ref *table_list)
Definition: sql_show.cc:1107
case opt name
Definition: sslopt-case.h:32
enum_mysql_show_type
Declarations for SHOW STATUS support in plugins.
Definition: status_var.h:29
Definition: m_ctype.h:422
Struct to hold information about the table that should be created.
Definition: handler.h:3177
Definition: table.h:2720
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3787
Definition: mysql_lex_string.h:39
SHOW STATUS Server status variable.
Definition: status_var.h:78
Definition: table.h:2518
Per thread status variables.
Definition: system_variables.h:525
Definition: table.h:1403
Definition: typelib.h:34
command
Definition: version_token.cc:279
static int is_view(cargo_type x)
Definition: xcom_base.cc:2159