MySQL 8.4.0
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 {
401 return mysqld_show_warnings(thd, 1UL << (uint)Sql_condition::SL_ERROR);
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 BINARY LOG STATUS statement.
441
443 public:
446 bool check_privileges(THD *thd) override;
447 bool execute_inner(THD *thd) override;
448};
449
450/// Represents SHOW OPEN TABLES statement.
451
453 public:
455};
456
457/// Represents SHOW PLUGINS statement.
458
460 public:
462};
463
464/// Represents SHOW PRIVILEGES statement.
465
467 public:
469 bool execute_inner(THD *thd) override;
470};
471
472/// Represents SHOW PROCESSLIST statement.
473
475 public:
479 bool check_privileges(THD *thd) override;
480 bool execute_inner(THD *thd) override;
481
483 bool verbose() const { return m_verbose; }
484
485 private:
486 bool use_pfs() { return m_use_pfs; }
487
488 const bool m_verbose{false};
489 bool m_use_pfs{false};
490};
491
492/// Represents SHOW PARSE_TREE statement.
493
495 public:
497};
498
499/// Represents SHOW PROFILE statement.
500
502 public:
504};
505
506/// Represents SHOW PROFILES statement.
507
509 public:
511 bool execute_inner(THD *thd) override;
512};
513
514/// Represents SHOW RELAYLOG EVENTS statement.
515
517 public:
520 bool check_privileges(THD *thd) override;
521 bool execute_inner(THD *thd) override;
522
523 private:
524 // binlog_in
525 // binlog_from
526 // opt_limit
527};
528
529/// Represents SHOW REPLICAS statement.
530
532 public:
534 bool check_privileges(THD *thd) override;
535 bool execute_inner(THD *thd) override;
536};
537
538/// Represents SHOW REPLICA STATUS statement.
539
541 public:
544 bool check_privileges(THD *thd) override;
545 bool execute_inner(THD *thd) override;
546};
547
548/// Represents SHOW STATUS statement.
549
551 public:
553 bool execute(THD *thd) override;
554};
555
556/// Represents SHOW STATUS FUNCTION statement.
557
559 public:
561};
562
563/// Represents SHOW STATUS PROCEDURE statement.
564
566 public:
568};
569
570/// Represents SHOW TABLE STATUS statement.
571
573 public:
576};
577
578/// Represents SHOW TABLES statement.
579
581 public:
583};
584
585/// Represents SHOW TRIGGERS statement.
586
588 public:
590};
591
592/// Represents SHOW VARIABLES statement.
593
595 public:
597};
598
599/// Represents SHOW WARNINGS statement.
600
602 public:
604 bool execute_inner(THD *thd) override {
605 return mysqld_show_warnings(thd,
606 (1UL << (uint)Sql_condition::SL_NOTE) |
607 (1UL << (uint)Sql_condition::SL_WARNING) |
608 (1UL << (uint)Sql_condition::SL_ERROR));
609 }
610};
611
612#endif /* SQL_SHOW_H */
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:934
Definition: sql_optimizer.h:133
Definition: sql_list.h:467
Definition: sql_executor.h:254
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1163
LEX * lex
Pointer to LEX for this statement.
Definition: sql_cmd_dml.h:219
Definition: sql_select.h:76
Represents SHOW BINARY LOG 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:565
Sql_cmd_show_binary_log_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:561
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:312
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:316
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:320
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:324
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:326
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:328
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:338
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:336
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:343
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:345
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:351
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:349
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:355
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:360
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:428
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:430
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:439
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:441
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:454
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:468
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:464
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:476
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:472
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:484
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:480
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:488
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:520
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:515
Represents the SHOW INDEX statement.
Definition: sql_show.h:435
Sql_cmd_show_keys()
Definition: sql_show.h:437
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:452
Sql_cmd_show_open_tables()
Definition: sql_show.h:454
Represents SHOW PARSE_TREE statement.
Definition: sql_show.h:494
Sql_cmd_show_parse_tree()
Definition: sql_show.h:496
Represents SHOW PLUGINS statement.
Definition: sql_show.h:459
Sql_cmd_show_plugins()
Definition: sql_show.h:461
Represents SHOW PRIVILEGES statement.
Definition: sql_show.h:466
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:579
Sql_cmd_show_privileges()
Definition: sql_show.h:468
Represents SHOW PROCESSLIST statement.
Definition: sql_show.h:474
Sql_cmd_show_processlist(bool verbose)
Definition: sql_show.h:477
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:590
Sql_cmd_show_processlist()
Definition: sql_show.h:476
void set_use_pfs(bool use_pfs)
Definition: sql_show.h:482
const bool m_verbose
Definition: sql_show.h:488
bool use_pfs()
Definition: sql_show.h:486
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:583
bool verbose() const
Definition: sql_show.h:483
bool m_use_pfs
Definition: sql_show.h:489
Represents SHOW PROFILE statement.
Definition: sql_show.h:501
Sql_cmd_show_profile()
Definition: sql_show.h:503
Represents SHOW PROFILES statement.
Definition: sql_show.h:508
Sql_cmd_show_profiles()
Definition: sql_show.h:510
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:569
Represents SHOW RELAYLOG EVENTS statement.
Definition: sql_show.h:516
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:614
Sql_cmd_show_relaylog_events()
Definition: sql_show.h:518
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:610
Represents SHOW REPLICA STATUS statement.
Definition: sql_show.h:540
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:659
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:655
Sql_cmd_show_replica_status()
Definition: sql_show.h:542
Represents SHOW REPLICAS statement.
Definition: sql_show.h:531
Sql_cmd_show_replicas()
Definition: sql_show.h:533
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:651
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:647
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:622
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:617
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:241
bool check_parameters(THD *thd) override
Definition: sql_show.cc:270
bool set_metadata_lock(THD *thd)
Definition: sql_show.cc:224
Sql_cmd_show_schema_base(enum_sql_command command)
Definition: sql_show.h:201
Represents SHOW STATUS FUNCTION statement.
Definition: sql_show.h:558
Sql_cmd_show_status_func()
Definition: sql_show.h:560
Represents SHOW STATUS PROCEDURE statement.
Definition: sql_show.h:565
Sql_cmd_show_status_proc()
Definition: sql_show.h:567
Represents SHOW STATUS statement.
Definition: sql_show.h:550
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.cc:760
Sql_cmd_show_status()
Definition: sql_show.h:552
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:287
bool check_parameters(THD *thd) override
Definition: sql_show.cc:710
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:572
Sql_cmd_show_table_status()
Definition: sql_show.h:574
Represents SHOW TABLES statement.
Definition: sql_show.h:580
Sql_cmd_show_tables()
Definition: sql_show.h:582
Represents SHOW TRIGGERS statement.
Definition: sql_show.h:587
Sql_cmd_show_triggers()
Definition: sql_show.h:589
Represents SHOW VARIABLES statement.
Definition: sql_show.h:594
Sql_cmd_show_variables()
Definition: sql_show.h:596
Represents SHOW WARNINGS statement.
Definition: sql_show.h:601
Sql_cmd_show_warnings()
Definition: sql_show.h:603
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.h:604
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:216
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:209
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:167
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
LEX * lex
Definition: sql_class.h:1001
Definition: sql_lex.h:296
Definition: table.h:2863
ST_SCHEMA_TABLE * schema_table
Definition: table.h:3700
Definition: sp_head.h:123
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:55
virtual bool execute_inner(THD *thd)
The inner parts of query optimization and execution.
Definition: sql_select.cc:1031
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_CREATE_TRIGGER
Definition: my_sqlcommand.h:174
@ SQLCOM_SHOW_ENGINE_MUTEX
Definition: my_sqlcommand.h:66
@ SQLCOM_SHOW_PARSE_TREE
Definition: my_sqlcommand.h:206
@ 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_REPLICAS
Definition: my_sqlcommand.h:120
@ 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_REPLICA_STATUS
Definition: my_sqlcommand.h:69
@ 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_BINLOG_STATUS
Definition: my_sqlcommand.h:68
@ 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_KEYS
Definition: my_sqlcommand.h:61
@ 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
char * user
Definition: mysqladmin.cc:66
void error(const char *format,...)
static uint verbose
Definition: mysqlcheck.cc:66
uint16_t value_type
Definition: vt100.h:184
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1073
static PFS_engine_table_share_proxy table
Definition: pfs.cc:61
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:418
static mysql_service_status_t create(const char *service_names[], reference_caching_channel *out_channel) noexcept
Definition: component.cc:45
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:74
enum_var_type
Definition: set_var.h:91
enum_schema_tables
Definition: handler.h:921
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:742
ST_SCHEMA_TABLE * find_schema_table(THD *thd, const char *table_name)
Definition: sql_show.cc:4524
void reset_status_vars()
Definition: sql_show.cc:3330
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:3830
int get_quote_char_for_identifier(const THD *thd, const char *name, size_t length)
Definition: sql_show.cc:1593
bool schema_table_store_record(THD *thd, TABLE *table)
Definition: sql_show.cc:3764
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:4898
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:3553
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:5553
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:3820
void free_status_vars()
Definition: sql_show.cc:3354
void mysqld_list_processes(THD *thd, const char *user, bool verbose, bool has_cursor)
List running processes (actually connected sessions).
Definition: sql_show.cc:2966
void init_status_vars()
Definition: sql_show.cc:3324
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:161
bool mysqld_show_privileges(THD *thd)
Definition: sql_show.cc:957
ulonglong get_status_vars_version(void)
Definition: sql_show.cc:3343
TYPELIB grant_types
Definition: sql_show.cc:194
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:3526
ST_SCHEMA_TABLE * get_schema_table(enum enum_schema_tables schema_table_idx)
Definition: sql_show.cc:4543
void view_store_options(const THD *thd, Table_ref *table, String *buff)
Definition: sql_show.cc:2649
void mysqld_list_fields(THD *thd, Table_ref *table, const char *wild)
Definition: sql_show.cc:1377
void calc_sum_of_all_status(System_status_var *to)
Definition: sql_show.cc:3738
bool convert_heap_table_to_ondisk(THD *thd, TABLE *table, int error)
Convert HEAP table to InnoDB table if necessary.
Definition: sql_show.cc:3803
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:4827
bool mysql_schema_table(THD *thd, LEX *lex, Table_ref *table_list)
Create information_schema table.
Definition: sql_show.cc:4748
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:3785
std::atomic_ulong deprecated_use_i_s_processlist_count
Count number of times information_schema.processlist has been used.
Definition: sql_show.cc:158
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:1508
void remove_status_vars(SHOW_VAR *list)
Definition: sql_show.cc:3475
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:2691
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:3449
bool add_status_vars(const SHOW_VAR *list)
Definition: sql_show.cc:3298
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:1944
bool show_create_trigger(THD *thd, const sp_name *trg_name)
SHOW CREATE TRIGGER high-level implementation.
Definition: sql_show.cc:5373
void initialize_information_schema_acl()
Definition: sql_show.cc:5446
bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create)
Definition: sql_show.cc:1264
bool mysqld_show_create(THD *thd, Table_ref *table_list)
Definition: sql_show.cc:1109
case opt name
Definition: sslopt-case.h:29
enum_mysql_show_type
Declarations for SHOW STATUS support in plugins.
Definition: status_var.h:30
Definition: m_ctype.h:423
Struct to hold information about the table that should be created.
Definition: handler.h:3201
Definition: table.h:2730
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3822
Definition: mysql_lex_string.h:40
SHOW STATUS Server status variable.
Definition: status_var.h:79
Definition: table.h:2528
Per thread status variables.
Definition: system_variables.h:525
Definition: table.h:1405
Definition: typelib.h:35
command
Definition: version_token.cc:280
static int is_view(cargo_type x)
Definition: xcom_base.cc:2160