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