MySQL 8.2.0
Source Code Documentation
sql_show.h
Go to the documentation of this file.
1/* Copyright (c) 2005, 2023, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is also distributed with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have included with MySQL.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License, version 2.0, for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22
23#ifndef SQL_SHOW_H
24#define SQL_SHOW_H
25
26#include <stddef.h>
27#include <sys/types.h>
28
29#include "field_types.h"
30#include "lex_string.h"
31#include "my_inttypes.h"
32#include "mysql/status_var.h"
33#include "sql/sql_select.h"
34#include "typelib.h"
35
36/* Forward declarations */
37class Item;
38class JOIN;
39class QEP_TAB;
40class Query_block;
41class String;
42class Table_ident;
43class THD;
44class sp_name;
45struct CHARSET_INFO;
46struct HA_CREATE_INFO;
47struct LEX;
48struct ST_SCHEMA_TABLE;
50struct TABLE;
51class Table_ref;
53enum enum_schema_tables : int;
54enum enum_var_type : int;
55
56/** Characters shown for the command in 'show processlist'. */
57constexpr const size_t PROCESS_LIST_WIDTH{100};
58/* Characters shown for the command in 'information_schema.processlist' */
59constexpr const size_t PROCESS_LIST_INFO_WIDTH{65535};
60
61bool store_create_info(THD *thd, Table_ref *table_list, String *packet,
62 HA_CREATE_INFO *create_info_arg, bool show_database,
63 bool for_show_create_stmt);
64
65void append_identifier(const THD *thd, String *packet, const char *name,
66 size_t length, const CHARSET_INFO *from_cs,
67 const CHARSET_INFO *to_cs);
68
69void append_identifier(const THD *thd, String *packet, const char *name,
70 size_t length);
71
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 {
398 return mysqld_show_warnings(thd, 1UL << (uint)Sql_condition::SL_ERROR);
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 BINARY LOG STATUS statement.
438
440 public:
443 bool check_privileges(THD *thd) override;
444 bool execute_inner(THD *thd) override;
445};
446
447/// Represents SHOW OPEN TABLES statement.
448
450 public:
452};
453
454/// Represents SHOW PLUGINS statement.
455
457 public:
459};
460
461/// Represents SHOW PRIVILEGES statement.
462
464 public:
466 bool execute_inner(THD *thd) override;
467};
468
469/// Represents SHOW PROCESSLIST statement.
470
472 public:
476 bool check_privileges(THD *thd) override;
477 bool execute_inner(THD *thd) override;
478
480 bool verbose() const { return m_verbose; }
481
482 private:
483 bool use_pfs() { return m_use_pfs; }
484
485 const bool m_verbose{false};
486 bool m_use_pfs{false};
487};
488
489/// Represents SHOW PARSE_TREE statement.
490
492 public:
494};
495
496/// Represents SHOW PROFILE statement.
497
499 public:
501};
502
503/// Represents SHOW PROFILES statement.
504
506 public:
508 bool execute_inner(THD *thd) override;
509};
510
511/// Represents SHOW RELAYLOG EVENTS statement.
512
514 public:
517 bool check_privileges(THD *thd) override;
518 bool execute_inner(THD *thd) override;
519
520 private:
521 // binlog_in
522 // binlog_from
523 // opt_limit
524};
525
526/// Represents SHOW REPLICAS statement.
527
529 public:
531 bool check_privileges(THD *thd) override;
532 bool execute_inner(THD *thd) override;
533};
534
535/// Represents SHOW REPLICA STATUS statement.
536
538 public:
540 bool check_privileges(THD *thd) override;
541 bool execute_inner(THD *thd) override;
542};
543
544/// Represents SHOW STATUS statement.
545
547 public:
549 bool execute(THD *thd) override;
550};
551
552/// Represents SHOW STATUS FUNCTION statement.
553
555 public:
557};
558
559/// Represents SHOW STATUS PROCEDURE statement.
560
562 public:
564};
565
566/// Represents SHOW TABLE STATUS statement.
567
569 public:
572};
573
574/// Represents SHOW TABLES statement.
575
577 public:
579};
580
581/// Represents SHOW TRIGGERS statement.
582
584 public:
586};
587
588/// Represents SHOW VARIABLES statement.
589
591 public:
593};
594
595/// Represents SHOW WARNINGS statement.
596
598 public:
600 bool execute_inner(THD *thd) override {
601 return mysqld_show_warnings(thd,
602 (1UL << (uint)Sql_condition::SL_NOTE) |
603 (1UL << (uint)Sql_condition::SL_WARNING) |
604 (1UL << (uint)Sql_condition::SL_ERROR));
605 }
606};
607
608#endif /* SQL_SHOW_H */
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:932
Definition: sql_optimizer.h:132
Definition: sql_list.h:433
Definition: sql_executor.h:261
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1161
LEX * lex
Pointer to LEX for this statement.
Definition: sql_cmd_dml.h:218
Definition: sql_select.h:73
Represents SHOW BINARY LOG 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:557
Sql_cmd_show_binary_log_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:553
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:304
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:308
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:312
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:316
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:318
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:320
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:330
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:328
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:335
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:337
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:343
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:341
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:347
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:352
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:420
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:422
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:431
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:433
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:446
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:460
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:456
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: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_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:476
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:472
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:480
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:512
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:507
Represents the SHOW INDEX statement.
Definition: sql_show.h:432
Sql_cmd_show_keys()
Definition: sql_show.h:434
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:449
Sql_cmd_show_open_tables()
Definition: sql_show.h:451
Represents SHOW PARSE_TREE statement.
Definition: sql_show.h:491
Sql_cmd_show_parse_tree()
Definition: sql_show.h:493
Represents SHOW PLUGINS statement.
Definition: sql_show.h:456
Sql_cmd_show_plugins()
Definition: sql_show.h:458
Represents SHOW PRIVILEGES statement.
Definition: sql_show.h:463
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:571
Sql_cmd_show_privileges()
Definition: sql_show.h:465
Represents SHOW PROCESSLIST statement.
Definition: sql_show.h:471
Sql_cmd_show_processlist(bool verbose)
Definition: sql_show.h:474
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:582
Sql_cmd_show_processlist()
Definition: sql_show.h:473
void set_use_pfs(bool use_pfs)
Definition: sql_show.h:479
const bool m_verbose
Definition: sql_show.h:485
bool use_pfs()
Definition: sql_show.h:483
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:575
bool verbose() const
Definition: sql_show.h:480
bool m_use_pfs
Definition: sql_show.h:486
Represents SHOW PROFILE statement.
Definition: sql_show.h:498
Sql_cmd_show_profile()
Definition: sql_show.h:500
Represents SHOW PROFILES statement.
Definition: sql_show.h:505
Sql_cmd_show_profiles()
Definition: sql_show.h:507
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:561
Represents SHOW RELAYLOG EVENTS statement.
Definition: sql_show.h:513
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:606
Sql_cmd_show_relaylog_events()
Definition: sql_show.h:515
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:602
Represents SHOW REPLICA STATUS statement.
Definition: sql_show.h:537
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
Sql_cmd_show_replica_status()
Definition: sql_show.h:539
Represents SHOW REPLICAS statement.
Definition: sql_show.h:528
Sql_cmd_show_replicas()
Definition: sql_show.h:530
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.cc:643
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:639
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:614
bool check_privileges(THD *thd) override
Perform an authorization check for a prepared SELECT statement.
Definition: sql_show.cc:609
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:233
bool check_parameters(THD *thd) override
Definition: sql_show.cc:262
bool set_metadata_lock(THD *thd)
Definition: sql_show.cc:216
Sql_cmd_show_schema_base(enum_sql_command command)
Definition: sql_show.h:198
Represents SHOW STATUS FUNCTION statement.
Definition: sql_show.h:554
Sql_cmd_show_status_func()
Definition: sql_show.h:556
Represents SHOW STATUS PROCEDURE statement.
Definition: sql_show.h:561
Sql_cmd_show_status_proc()
Definition: sql_show.h:563
Represents SHOW STATUS statement.
Definition: sql_show.h:546
bool execute(THD *thd) override
Execute a DML statement.
Definition: sql_show.cc:752
Sql_cmd_show_status()
Definition: sql_show.h:548
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:279
bool check_parameters(THD *thd) override
Definition: sql_show.cc:702
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:568
Sql_cmd_show_table_status()
Definition: sql_show.h:570
Represents SHOW TABLES statement.
Definition: sql_show.h:576
Sql_cmd_show_tables()
Definition: sql_show.h:578
Represents SHOW TRIGGERS statement.
Definition: sql_show.h:583
Sql_cmd_show_triggers()
Definition: sql_show.h:585
Represents SHOW VARIABLES statement.
Definition: sql_show.h:590
Sql_cmd_show_variables()
Definition: sql_show.h:592
Represents SHOW WARNINGS statement.
Definition: sql_show.h:597
Sql_cmd_show_warnings()
Definition: sql_show.h:599
bool execute_inner(THD *thd) override
The inner parts of query optimization and execution.
Definition: sql_show.h:600
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:208
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:201
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:35
LEX * lex
Definition: sql_class.h:989
Definition: sql_lex.h:295
Definition: table.h:2846
ST_SCHEMA_TABLE * schema_table
Definition: table.h:3676
Definition: sp_head.h:122
This file contains the field type.
enum_field_types
Column types for MySQL Note: Keep include/mysql/components/services/bits/stored_program_bits....
Definition: field_types.h:54
virtual bool execute_inner(THD *thd)
The inner parts of query optimization and execution.
Definition: sql_select.cc:1023
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
enum_sql_command
Definition: my_sqlcommand.h:45
@ SQLCOM_SHOW_ENGINE_LOGS
Definition: my_sqlcommand.h:63
@ SQLCOM_SHOW_GRANTS
Definition: my_sqlcommand.h:69
@ SQLCOM_SHOW_CREATE_DB
Definition: my_sqlcommand.h:73
@ SQLCOM_SHOW_STATUS_FUNC
Definition: my_sqlcommand.h:144
@ SQLCOM_SHOW_CREATE_FUNC
Definition: my_sqlcommand.h:142
@ SQLCOM_SHOW_SLAVE_HOSTS
Definition: my_sqlcommand.h:119
@ SQLCOM_SHOW_CREATE_TRIGGER
Definition: my_sqlcommand.h:173
@ SQLCOM_SHOW_ENGINE_MUTEX
Definition: my_sqlcommand.h:65
@ SQLCOM_SHOW_PARSE_TREE
Definition: my_sqlcommand.h:205
@ SQLCOM_SHOW_PRIVILEGES
Definition: my_sqlcommand.h:128
@ SQLCOM_SHOW_BINLOGS
Definition: my_sqlcommand.h:114
@ SQLCOM_SHOW_BINLOG_EVENTS
Definition: my_sqlcommand.h:122
@ SQLCOM_SHOW_WARNS
Definition: my_sqlcommand.h:124
@ SQLCOM_SHOW_STATUS_PROC
Definition: my_sqlcommand.h:143
@ SQLCOM_SHOW_PLUGINS
Definition: my_sqlcommand.h:164
@ SQLCOM_SHOW_PROFILE
Definition: my_sqlcommand.h:174
@ SQLCOM_SHOW_DATABASES
Definition: my_sqlcommand.h:57
@ SQLCOM_SHOW_CHARSETS
Definition: my_sqlcommand.h:71
@ SQLCOM_SHOW_OPEN_TABLES
Definition: my_sqlcommand.h:115
@ SQLCOM_SHOW_TABLE_STATUS
Definition: my_sqlcommand.h:74
@ SQLCOM_SHOW_ERRORS
Definition: my_sqlcommand.h:126
@ SQLCOM_SHOW_FIELDS
Definition: my_sqlcommand.h:59
@ SQLCOM_SHOW_CREATE_USER
Definition: my_sqlcommand.h:182
@ SQLCOM_SHOW_STATUS
Definition: my_sqlcommand.h:62
@ SQLCOM_SHOW_ENGINE_STATUS
Definition: my_sqlcommand.h:64
@ SQLCOM_SHOW_EVENTS
Definition: my_sqlcommand.h:172
@ SQLCOM_SHOW_CREATE_PROC
Definition: my_sqlcommand.h:141
@ SQLCOM_SHOW_COLLATIONS
Definition: my_sqlcommand.h:72
@ SQLCOM_SHOW_MASTER_STAT
Definition: my_sqlcommand.h:67
@ SQLCOM_SHOW_KEYS
Definition: my_sqlcommand.h:60
@ SQLCOM_SHOW_SLAVE_STAT
Definition: my_sqlcommand.h:68
@ SQLCOM_SHOW_TABLES
Definition: my_sqlcommand.h:58
@ SQLCOM_SHOW_VARIABLES
Definition: my_sqlcommand.h:61
@ SQLCOM_SHOW_CREATE_EVENT
Definition: my_sqlcommand.h:171
@ SQLCOM_SHOW_PROCESSLIST
Definition: my_sqlcommand.h:66
@ SQLCOM_SHOW_RELAYLOG_EVENTS
Definition: my_sqlcommand.h:178
@ SQLCOM_SHOW_STORAGE_ENGINES
Definition: my_sqlcommand.h:127
@ SQLCOM_SHOW_TRIGGERS
Definition: my_sqlcommand.h:75
@ SQLCOM_SHOW_CREATE
Definition: my_sqlcommand.h:70
@ SQLCOM_SHOW_PROFILES
Definition: my_sqlcommand.h:175
Log error(cerr, "ERROR")
char * user
Definition: mysqladmin.cc:64
static uint verbose
Definition: mysqlcheck.cc:65
uint16_t value_type
Definition: vt100.h:183
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1085
static PFS_engine_table_share_proxy table
Definition: pfs.cc:60
const std::string charset("charset")
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:417
static mysql_service_status_t create(const char *service_names[], reference_caching_channel *out_channel) noexcept
Definition: component.cc:44
const char * table_name
Definition: rules_table_service.cc:55
const char * db_name
Definition: rules_table_service.cc:54
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2877
required string type
Definition: replication_group_member_actions.proto:33
enum enum_mysql_show_type SHOW_TYPE
Definition: set_var.h:73
enum_var_type
Definition: set_var.h:90
enum_schema_tables
Definition: handler.h:919
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:735
ST_SCHEMA_TABLE * find_schema_table(THD *thd, const char *table_name)
Definition: sql_show.cc:4506
void reset_status_vars()
Definition: sql_show.cc:3312
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:3812
int get_quote_char_for_identifier(const THD *thd, const char *name, size_t length)
Definition: sql_show.cc:1590
bool schema_table_store_record(THD *thd, TABLE *table)
Definition: sql_show.cc:3746
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:4880
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:3535
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:5586
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:3802
void free_status_vars()
Definition: sql_show.cc:3336
void mysqld_list_processes(THD *thd, const char *user, bool verbose, bool has_cursor)
List running processes (actually connected sessions).
Definition: sql_show.cc:2962
void init_status_vars()
Definition: sql_show.cc:3306
bool mysqld_show_privileges(THD *thd)
Definition: sql_show.cc:949
ulonglong get_status_vars_version(void)
Definition: sql_show.cc:3325
TYPELIB grant_types
Definition: sql_show.cc:186
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:3508
ST_SCHEMA_TABLE * get_schema_table(enum enum_schema_tables schema_table_idx)
Definition: sql_show.cc:4525
void view_store_options(const THD *thd, Table_ref *table, String *buff)
Definition: sql_show.cc:2656
void mysqld_list_fields(THD *thd, Table_ref *table, const char *wild)
Definition: sql_show.cc:1370
void calc_sum_of_all_status(System_status_var *to)
Definition: sql_show.cc:3720
bool convert_heap_table_to_ondisk(THD *thd, TABLE *table, int error)
Convert HEAP table to InnoDB table if necessary.
Definition: sql_show.cc:3785
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:4809
bool mysql_schema_table(THD *thd, LEX *lex, Table_ref *table_list)
Create information_schema table.
Definition: sql_show.cc:4730
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:3767
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:1505
void remove_status_vars(SHOW_VAR *list)
Definition: sql_show.cc:3457
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:2698
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:3431
bool add_status_vars(const SHOW_VAR *list)
Definition: sql_show.cc:3280
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:1941
bool show_create_trigger(THD *thd, const sp_name *trg_name)
SHOW CREATE TRIGGER high-level implementation.
Definition: sql_show.cc:5406
void initialize_information_schema_acl()
Definition: sql_show.cc:5479
bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create)
Definition: sql_show.cc:1256
bool mysqld_show_create(THD *thd, Table_ref *table_list)
Definition: sql_show.cc:1101
case opt name
Definition: sslopt-case.h:32
enum_mysql_show_type
Declarations for SHOW STATUS support in plugins.
Definition: status_var.h:29
Definition: m_ctype.h:422
Struct to hold information about the table that should be created.
Definition: handler.h:3132
Definition: table.h:2713
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3721
Definition: mysql_lex_string.h:39
SHOW STATUS Server status variable.
Definition: status_var.h:78
Definition: table.h:2511
Per thread status variables.
Definition: system_variables.h:523
Definition: table.h:1396
Definition: typelib.h:34
command
Definition: version_token.cc:279
static int is_view(cargo_type x)
Definition: xcom_base.cc:2159