MySQL 8.0.33
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
72void mysqld_list_fields(THD *thd, Table_ref *table, const char *wild);
73bool mysqld_show_create(THD *thd, Table_ref *table_list);
74bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create);
75
76void mysqld_list_processes(THD *thd, const char *user, bool verbose,
77 bool has_cursor);
80void append_definer(const THD *thd, String *buffer,
81 const LEX_CSTRING &definer_user,
82 const LEX_CSTRING &definer_host);
83bool add_status_vars(const SHOW_VAR *list);
85void init_status_vars();
86void free_status_vars();
87bool get_recursive_status_var(THD *thd, const char *name, char *const value,
88 enum_var_type var_type, size_t *length,
89 const CHARSET_INFO **charset);
92bool show_create_trigger(THD *thd, const sp_name *trg_name);
93void view_store_options(const THD *thd, Table_ref *table, String *buff);
94
96
97/**
98 Store record to I_S table, convert HEAP table to InnoDB table if necessary.
99
100 @param[in] thd thread handler
101 @param[in] table Information schema table to be updated
102 @param[in] make_ondisk if true, convert heap table to on disk table.
103 default value is true.
104 @return 0 on success
105 @return error code on failure.
106*/
107int schema_table_store_record2(THD *thd, TABLE *table, bool make_ondisk);
108
109/**
110 Convert HEAP table to InnoDB table if necessary
111
112 @param[in] thd thread handler
113 @param[in] table Information schema table to be converted.
114 @param[in] error the error code returned previously.
115 @return false on success, true on error.
116*/
119bool make_table_list(THD *thd, Query_block *sel, const LEX_CSTRING &db_name,
120 const LEX_CSTRING &table_name);
121
125 enum enum_schema_tables schema_table_idx);
126bool mysql_schema_table(THD *thd, LEX *lex, Table_ref *table_list);
128
129const char *get_one_variable(THD *thd, const SHOW_VAR *variable,
131 System_status_var *status_var,
132 const CHARSET_INFO **charset, char *buff,
133 size_t *length, bool *is_null = nullptr);
134
135const char *get_one_variable_ext(THD *running_thd, THD *target_thd,
136 const SHOW_VAR *variable,
138 System_status_var *status_var,
139 const CHARSET_INFO **charset, char *buff,
140 size_t *length, bool *is_null = nullptr);
141
142/* These functions were under INNODB_COMPATIBILITY_HOOKS */
143int get_quote_char_for_identifier(const THD *thd, const char *name,
144 size_t length);
145
146void show_sql_type(enum_field_types type, bool is_array, uint metadata,
147 String *str, const CHARSET_INFO *field_cs = nullptr);
148
149bool do_fill_information_schema_table(THD *thd, Table_ref *table_list,
150 Item *condition);
151
152extern TYPELIB grant_types;
153
154/**
155 Sql_cmd_show represents the SHOW statements that are implemented
156 as SELECT statements internally.
157 Normally, preparation and execution is the same as for regular SELECT
158 statements.
159*/
161 public:
163 : Sql_cmd_select(nullptr), m_sql_command(sql_command) {}
165 virtual bool check_parameters(THD *) { return false; }
166 /// Generally, the SHOW commands do not distinguish precheck and regular check
167 bool precheck(THD *thd) override { return check_privileges(thd); }
168 bool check_privileges(THD *) override;
169 bool execute(THD *thd) override;
170
171 protected:
173};
174
175/**
176 Common base class: Represents commands that are not represented by
177 a plan that is equivalent to a SELECT statement.
178
179 This class has a common execution framework with an execute() function
180 that calls check_privileges() and execute_inner().
181*/
183 protected:
185 : Sql_cmd_show(sql_command) {}
186 bool execute(THD *thd) override {
187 lex = thd->lex;
188 if (check_privileges(thd)) return true;
189 if (execute_inner(thd)) return true;
190 return false;
191 }
192};
193
194/// Common base class: Represents commands that operate on a schema (database)
195
197 public:
199 bool check_privileges(THD *thd) override;
200 bool check_parameters(THD *thd) override;
201 bool set_metadata_lock(THD *thd);
202};
203
204/// Common base class: Represents the SHOW COLUMNS and SHOW KEYS statements.
205
207 public:
209 bool check_privileges(THD *thd) override;
210 bool check_parameters(THD *thd) override;
211
212 bool m_temporary; ///< True if table to be analyzed is temporary
213};
214
215/// Represents SHOW FUNCTION CODE and SHOW PROCEDURE CODE statements.
216
218 public:
220 const sp_name *routine_name)
221 : Sql_cmd_show_noplan(sql_command), m_routine_name(routine_name) {}
222 bool check_privileges(THD *thd) override;
223 bool execute_inner(THD *thd) override;
224
225 private:
227};
228
229/// Following are all subclasses of class Sql_cmd_show, in alphabetical order
230
231/// Represents SHOW BINLOG EVENTS statement.
232
234 public:
237 bool check_privileges(THD *thd) override;
238 bool execute_inner(THD *thd) override;
239
240 private:
241 // binlog_in
242 // binlog_from
243 // opt_limit
244};
245
246/// Represents SHOW BINARY LOGS statement.
247
249 public:
251 bool check_privileges(THD *thd) override;
252 bool execute_inner(THD *thd) override;
253};
254
255/// Represents SHOW CHARACTER SET statement.
256
258 public:
260};
261
262/// Represents SHOW COLLATION statement.
263
265 public:
267};
268
269/// Represents SHOW COLUMNS statement.
270
272 public:
274};
275
276/// Represents SHOW CREATE DATABASE statement.
277
279 public:
281 bool check_privileges(THD *thd) override;
282 bool execute_inner(THD *thd) override;
283};
284
285/// Represents SHOW CREATE EVENT statement.
286
288 public:
290 bool check_privileges(THD *thd) override;
291 bool execute_inner(THD *thd) override;
292};
293
294/// Represents SHOW CREATE FUNCTION statement.
295
297 public:
300 bool check_privileges(THD *thd) override;
301 bool execute_inner(THD *thd) override;
302};
303
304/// Represents SHOW CREATE PROCEDURE statement.
305
307 public:
310 bool check_privileges(THD *thd) override;
311 bool execute_inner(THD *thd) override;
312};
313
314/// Represents SHOW CREATE TABLE/VIEW statement.
315
317 public:
321 m_table_ident(table_ident) {}
322 bool check_privileges(THD *thd) override;
323 bool execute_inner(THD *thd) override;
324
325 private:
326 const bool m_is_view;
328};
329
330/// Represents SHOW CREATE TRIGGER statement.
331
333 public:
336 bool check_privileges(THD *thd) override;
337 bool execute_inner(THD *thd) override;
338};
339
340/// Represents SHOW CREATE USER statement.
341
343 public:
345 bool check_privileges(THD *thd) override;
346 bool execute_inner(THD *thd) override;
347};
348
349/// Represents SHOW DATABASES statement.
350
352 public:
354 bool check_privileges(THD *thd) override;
355};
356
357/// Represents SHOW ENGINE LOGS statement.
358
360 public:
362 bool check_privileges(THD *thd) override;
363 bool execute_inner(THD *thd) override;
364};
365
366/// Represents SHOW ENGINE MUTEX statement.
367
369 public:
371 bool check_privileges(THD *thd) override;
372 bool execute_inner(THD *thd) override;
373};
374
375/// Represents SHOW ENGINE STATUS statement.
376
378 public:
381 bool check_privileges(THD *thd) override;
382 bool execute_inner(THD *thd) override;
383};
384
385/// Represents SHOW STORAGE ENGINES statement.
386
388 public:
390};
391
392/// Represents SHOW ERRORS statement.
393
395 public:
397 bool execute_inner(THD *thd) override {
399 }
400};
401
402/// Represents SHOW EVENTS statement.
403
405 public:
407 bool check_privileges(THD *thd) override;
408 // To enable error message for unknown database, delete the below function.
409 bool check_parameters(THD *) override { return false; }
410};
411
412/// Represents SHOW GRANTS statement.
413
415 public:
416 Sql_cmd_show_grants(const LEX_USER *for_user_arg,
417 const List<LEX_USER> *using_users_arg)
419 for_user(for_user_arg),
420 using_users(using_users_arg) {}
421
422 bool check_privileges(THD *thd) override;
423 bool execute_inner(THD *thd) override;
424
425 private:
428};
429
430/// Represents the SHOW INDEX statement.
431
433 public:
435};
436
437/// Represents SHOW MASTER STATUS statement.
438
440 public:
442 bool check_privileges(THD *thd) override;
443 bool execute_inner(THD *thd) override;
444};
445
446/// Represents SHOW OPEN TABLES statement.
447
449 public:
451};
452
453/// Represents SHOW PLUGINS statement.
454
456 public:
458};
459
460/// Represents SHOW PRIVILEGES statement.
461
463 public:
465 bool execute_inner(THD *thd) override;
466};
467
468/// Represents SHOW PROCESSLIST statement.
469
471 public:
475 bool check_privileges(THD *thd) override;
476 bool execute_inner(THD *thd) override;
477
479 bool verbose() const { return m_verbose; }
480
481 private:
482 bool use_pfs() { return m_use_pfs; }
483
484 const bool m_verbose{false};
485 bool m_use_pfs{false};
486};
487
488/// Represents SHOW PROFILE statement.
489
491 public:
493};
494
495/// Represents SHOW PROFILES statement.
496
498 public:
500 bool execute_inner(THD *thd) override;
501};
502
503/// Represents SHOW RELAYLOG EVENTS statement.
504
506 public:
509 bool check_privileges(THD *thd) override;
510 bool execute_inner(THD *thd) override;
511
512 private:
513 // binlog_in
514 // binlog_from
515 // opt_limit
516};
517
518/// Represents SHOW REPLICAS statement.
519
521 public:
523 bool check_privileges(THD *thd) override;
524 bool execute_inner(THD *thd) override;
525};
526
527/// Represents SHOW REPLICA STATUS statement.
528
530 public:
532 bool check_privileges(THD *thd) override;
533 bool execute_inner(THD *thd) override;
534};
535
536/// Represents SHOW STATUS statement.
537
539 public:
541 bool execute(THD *thd) override;
542};
543
544/// Represents SHOW STATUS FUNCTION statement.
545
547 public:
549};
550
551/// Represents SHOW STATUS PROCEDURE statement.
552
554 public:
556};
557
558/// Represents SHOW TABLE STATUS statement.
559
561 public:
564};
565
566/// Represents SHOW TABLES statement.
567
569 public:
571};
572
573/// Represents SHOW TRIGGERS statement.
574
576 public:
578};
579
580/// Represents SHOW VARIABLES statement.
581
583 public:
585};
586
587/// Represents SHOW WARNINGS statement.
588
590 public:
592 bool execute_inner(THD *thd) override {
593 return mysqld_show_warnings(thd,
594 (1UL << (uint)Sql_condition::SL_NOTE) |
596 (1UL << (uint)Sql_condition::SL_ERROR));
597 }
598};
599
600#endif /* SQL_SHOW_H */
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:850
Definition: sql_optimizer.h:132
Definition: sql_list.h:433
Definition: sql_executor.h:259
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1155
LEX * lex
Pointer to LEX for this statement.
Definition: sql_cmd_dml.h:212
Definition: sql_select.h:73
Following are all subclasses of class Sql_cmd_show, in alphabetical order.
Definition: sql_show.h:233
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:298
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:302
Sql_cmd_show_binlog_events()
Definition: sql_show.h:235
Represents SHOW BINARY LOGS statement.
Definition: sql_show.h:248
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:306
Sql_cmd_show_binlogs()
Definition: sql_show.h:250
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:310
Represents SHOW CHARACTER SET statement.
Definition: sql_show.h:257
Sql_cmd_show_charsets()
Definition: sql_show.h:259
Represents SHOW COLLATION statement.
Definition: sql_show.h:264
Sql_cmd_show_collations()
Definition: sql_show.h:266
Represents SHOW COLUMNS statement.
Definition: sql_show.h:271
Sql_cmd_show_columns()
Definition: sql_show.h:273
Represents SHOW CREATE DATABASE statement.
Definition: sql_show.h:278
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:312
Sql_cmd_show_create_database()
Definition: sql_show.h:280
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:314
Represents SHOW CREATE EVENT statement.
Definition: sql_show.h:287
Sql_cmd_show_create_event()
Definition: sql_show.h:289
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:324
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:322
Represents SHOW CREATE FUNCTION statement.
Definition: sql_show.h:296
Sql_cmd_show_create_function()
Definition: sql_show.h:298
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:329
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:331
Represents SHOW CREATE PROCEDURE statement.
Definition: sql_show.h:306
Sql_cmd_show_create_procedure()
Definition: sql_show.h:308
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:337
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:335
Represents SHOW CREATE TABLE/VIEW statement.
Definition: sql_show.h:316
const bool m_is_view
Definition: sql_show.h:326
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:346
Table_ident *const m_table_ident
Definition: sql_show.h:327
Sql_cmd_show_create_table(bool is_view, Table_ident *table_ident)
Definition: sql_show.h:318
Represents SHOW CREATE TRIGGER statement.
Definition: sql_show.h:332
Sql_cmd_show_create_trigger()
Definition: sql_show.h:334
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:414
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:416
Represents SHOW CREATE USER statement.
Definition: sql_show.h:342
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:425
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:427
Sql_cmd_show_create_user()
Definition: sql_show.h:344
Represents SHOW DATABASES statement.
Definition: sql_show.h:351
Sql_cmd_show_databases()
Definition: sql_show.h:353
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:440
Represents SHOW ENGINE LOGS statement.
Definition: sql_show.h:359
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:454
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:450
Sql_cmd_show_engine_logs()
Definition: sql_show.h:361
Represents SHOW ENGINE MUTEX statement.
Definition: sql_show.h:368
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_mutex()
Definition: sql_show.h:370
Represents SHOW ENGINE STATUS statement.
Definition: sql_show.h:377
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:470
Sql_cmd_show_engine_status()
Definition: sql_show.h:379
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:466
Represents SHOW STORAGE ENGINES statement.
Definition: sql_show.h:387
Sql_cmd_show_engines()
Definition: sql_show.h:389
Represents SHOW ERRORS statement.
Definition: sql_show.h:394
Sql_cmd_show_errors()
Definition: sql_show.h:396
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.h:397
Represents SHOW EVENTS statement.
Definition: sql_show.h:404
Sql_cmd_show_events()
Definition: sql_show.h:406
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:474
bool check_parameters(THD *) override
Definition: sql_show.h:409
Represents SHOW GRANTS statement.
Definition: sql_show.h:414
const LEX_USER * for_user
Definition: sql_show.h:426
const List< LEX_USER > * using_users
Definition: sql_show.h:427
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:506
Sql_cmd_show_grants(const LEX_USER *for_user_arg, const List< LEX_USER > *using_users_arg)
Definition: sql_show.h:416
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:501
Represents the SHOW INDEX statement.
Definition: sql_show.h:432
Sql_cmd_show_keys()
Definition: sql_show.h:434
Represents SHOW MASTER STATUS statement.
Definition: sql_show.h:439
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:551
Sql_cmd_show_master_status()
Definition: sql_show.h:441
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:547
Common base class: Represents commands that are not represented by a plan that is equivalent to a SEL...
Definition: sql_show.h:182
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.h:186
Sql_cmd_show_noplan(enum_sql_command sql_command)
Definition: sql_show.h:184
Represents SHOW OPEN TABLES statement.
Definition: sql_show.h:448
Sql_cmd_show_open_tables()
Definition: sql_show.h:450
Represents SHOW PLUGINS statement.
Definition: sql_show.h:455
Sql_cmd_show_plugins()
Definition: sql_show.h:457
Represents SHOW PRIVILEGES statement.
Definition: sql_show.h:462
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:565
Sql_cmd_show_privileges()
Definition: sql_show.h:464
Represents SHOW PROCESSLIST statement.
Definition: sql_show.h:470
Sql_cmd_show_processlist(bool verbose)
Definition: sql_show.h:473
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:576
Sql_cmd_show_processlist()
Definition: sql_show.h:472
void set_use_pfs(bool use_pfs)
Definition: sql_show.h:478
const bool m_verbose
Definition: sql_show.h:484
bool use_pfs()
Definition: sql_show.h:482
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:569
bool verbose() const
Definition: sql_show.h:479
bool m_use_pfs
Definition: sql_show.h:485
Represents SHOW PROFILE statement.
Definition: sql_show.h:490
Sql_cmd_show_profile()
Definition: sql_show.h:492
Represents SHOW PROFILES statement.
Definition: sql_show.h:497
Sql_cmd_show_profiles()
Definition: sql_show.h:499
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:555
Represents SHOW RELAYLOG EVENTS statement.
Definition: sql_show.h:505
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:600
Sql_cmd_show_relaylog_events()
Definition: sql_show.h:507
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:596
Represents SHOW REPLICA STATUS statement.
Definition: sql_show.h:529
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
Sql_cmd_show_replica_status()
Definition: sql_show.h:531
Represents SHOW REPLICAS statement.
Definition: sql_show.h:520
Sql_cmd_show_replicas()
Definition: sql_show.h:522
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:637
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:633
Represents SHOW FUNCTION CODE and SHOW PROCEDURE CODE statements.
Definition: sql_show.h:217
const sp_name * m_routine_name
Definition: sql_show.h:226
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:608
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:603
Sql_cmd_show_routine_code(enum_sql_command sql_command, const sp_name *routine_name)
Definition: sql_show.h:219
Common base class: Represents commands that operate on a schema (database)
Definition: sql_show.h:196
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:227
bool check_parameters(THD *thd) override
Definition: sql_show.cc:256
bool set_metadata_lock(THD *thd)
Definition: sql_show.cc:210
Sql_cmd_show_schema_base(enum_sql_command command)
Definition: sql_show.h:198
Represents SHOW STATUS FUNCTION statement.
Definition: sql_show.h:546
Sql_cmd_show_status_func()
Definition: sql_show.h:548
Represents SHOW STATUS PROCEDURE statement.
Definition: sql_show.h:553
Sql_cmd_show_status_proc()
Definition: sql_show.h:555
Represents SHOW STATUS statement.
Definition: sql_show.h:538
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.cc:746
Sql_cmd_show_status()
Definition: sql_show.h:540
Common base class: Represents the SHOW COLUMNS and SHOW KEYS statements.
Definition: sql_show.h:206
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:273
bool check_parameters(THD *thd) override
Definition: sql_show.cc:696
bool m_temporary
True if table to be analyzed is temporary.
Definition: sql_show.h:212
Sql_cmd_show_table_base(enum_sql_command command)
Definition: sql_show.h:208
Represents SHOW TABLE STATUS statement.
Definition: sql_show.h:560
Sql_cmd_show_table_status()
Definition: sql_show.h:562
Represents SHOW TABLES statement.
Definition: sql_show.h:568
Sql_cmd_show_tables()
Definition: sql_show.h:570
Represents SHOW TRIGGERS statement.
Definition: sql_show.h:575
Sql_cmd_show_triggers()
Definition: sql_show.h:577
Represents SHOW VARIABLES statement.
Definition: sql_show.h:582
Sql_cmd_show_variables()
Definition: sql_show.h:584
Represents SHOW WARNINGS statement.
Definition: sql_show.h:589
Sql_cmd_show_warnings()
Definition: sql_show.h:591
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.h:592
Sql_cmd_show represents the SHOW statements that are implemented as SELECT statements internally.
Definition: sql_show.h:160
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.cc:202
enum_sql_command sql_command_code() const override
Return the command code for this statement.
Definition: sql_show.h:164
virtual bool check_parameters(THD *)
Definition: sql_show.h:165
Sql_cmd_show(enum_sql_command sql_command)
Definition: sql_show.h:162
enum_sql_command m_sql_command
Definition: sql_show.h:172
bool check_privileges(THD *) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:195
bool precheck(THD *thd) override
Generally, the SHOW commands do not distinguish precheck and regular check.
Definition: sql_show.h:167
@ 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:33
LEX * lex
Definition: sql_class.h:980
Definition: sql_lex.h:293
Definition: table.h:2761
ST_SCHEMA_TABLE * schema_table
Definition: table.h:3587
TABLE * table
Definition: table.h:3533
Definition: sp_head.h:119
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
This file contains the field type.
enum_field_types
Column types for MySQL.
Definition: field_types.h:52
virtual bool execute_inner(THD *thd)
The inner parts of query optimization and execution.
Definition: sql_select.cc:781
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_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
Log error(cerr, "ERROR")
char * user
Definition: mysqladmin.cc:59
static uint verbose
Definition: mysqlcheck.cc:64
uint16_t value_type
Definition: vt100.h:183
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1054
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:419
static mysql_service_status_t create(const char *service_names[], reference_caching_channel *out_channel) noexcept
Definition: component.cc:35
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:2876
required string type
Definition: replication_group_member_actions.proto:33
enum enum_mysql_show_type SHOW_TYPE
Definition: set_var.h:72
enum_var_type
Definition: set_var.h:89
enum_schema_tables
Definition: handler.h:912
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:730
ST_SCHEMA_TABLE * find_schema_table(THD *thd, const char *table_name)
Definition: sql_show.cc:4498
void reset_status_vars()
Definition: sql_show.cc:3304
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:3804
int get_quote_char_for_identifier(const THD *thd, const char *name, size_t length)
Definition: sql_show.cc:1588
bool schema_table_store_record(THD *thd, TABLE *table)
Definition: sql_show.cc:3738
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:4865
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:3527
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:5570
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:3794
void free_status_vars()
Definition: sql_show.cc:3328
void mysqld_list_processes(THD *thd, const char *user, bool verbose, bool has_cursor)
List running processes (actually connected sessions).
Definition: sql_show.cc:2957
void init_status_vars()
Definition: sql_show.cc:3298
bool mysqld_show_privileges(THD *thd)
Definition: sql_show.cc:943
ulonglong get_status_vars_version(void)
Definition: sql_show.cc:3317
TYPELIB grant_types
Definition: sql_show.cc:180
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:3500
ST_SCHEMA_TABLE * get_schema_table(enum enum_schema_tables schema_table_idx)
Definition: sql_show.cc:4517
void view_store_options(const THD *thd, Table_ref *table, String *buff)
Definition: sql_show.cc:2654
void mysqld_list_fields(THD *thd, Table_ref *table, const char *wild)
Definition: sql_show.cc:1368
void calc_sum_of_all_status(System_status_var *to)
Definition: sql_show.cc:3712
bool convert_heap_table_to_ondisk(THD *thd, TABLE *table, int error)
Convert HEAP table to InnoDB table if necessary.
Definition: sql_show.cc:3777
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:4794
bool mysql_schema_table(THD *thd, LEX *lex, Table_ref *table_list)
Create information_schema table.
Definition: sql_show.cc:4716
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:3759
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:1503
void remove_status_vars(SHOW_VAR *list)
Definition: sql_show.cc:3449
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:2696
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:3423
bool add_status_vars(const SHOW_VAR *list)
Definition: sql_show.cc:3272
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:1939
bool show_create_trigger(THD *thd, const sp_name *trg_name)
SHOW CREATE TRIGGER high-level implementation.
Definition: sql_show.cc:5390
void initialize_information_schema_acl()
Definition: sql_show.cc:5463
bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create)
Definition: sql_show.cc:1250
bool mysqld_show_create(THD *thd, Table_ref *table_list)
Definition: sql_show.cc:1095
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:382
Definition: handler.h:2998
Definition: table.h:2628
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3701
Definition: mysql_lex_string.h:39
SHOW STATUS Server status variable.
Definition: status_var.h:78
Definition: table.h:2428
Per thread status variables.
Definition: system_variables.h:510
Definition: table.h:1395
Definition: typelib.h:34
unsigned int uint
Definition: uca9-dump.cc:74
command
Definition: version_token.cc:279
static int is_view(cargo_type x)
Definition: xcom_base.cc:2155