24#ifndef SQL_PARSE_INCLUDED 
   25#define SQL_PARSE_INCLUDED 
  104bool alloc_query(
THD *thd, 
const char *packet, 
size_t packet_length);
 
  106                          bool is_retry = 
false);
 
  112                                    bool sp_did_not_exist, 
const char *
db_name,
 
  119                                     const char **index_file_name,
 
  309#define CF_CHANGES_DATA (1U << 0) 
  311#define CF_STATUS_COMMAND (1U << 2) 
  312#define CF_SHOW_TABLE_COMMAND (1U << 3) 
  313#define CF_WRITE_LOGS_COMMAND (1U << 4) 
  327#define CF_REEXECUTION_FRAGILE (1U << 5) 
  339#define CF_IMPLICIT_COMMIT_BEGIN (1U << 6) 
  350#define CF_IMPLICIT_COMMIT_END (1U << 7) 
  357#define CF_AUTO_COMMIT_TRANS (CF_IMPLICIT_COMMIT_BEGIN | CF_IMPLICIT_COMMIT_END) 
  367#define CF_DIAGNOSTIC_STMT (1U << 8) 
  373#define CF_CAN_GENERATE_ROW_EVENTS (1U << 9) 
  379#define CF_PREOPEN_TMP_TABLES (1U << 10) 
  385#define CF_HA_CLOSE (1U << 11) 
  390#define CF_CAN_BE_EXPLAINED (1U << 12) 
  393#define CF_OPTIMIZER_TRACE (1U << 14) 
  399#define CF_DISALLOW_IN_RO_TRANS (1U << 15) 
  404#define CF_ALLOW_PROTOCOL_PLUGIN (1U << 16) 
  420#define CF_NEEDS_AUTOCOMMIT_OFF (1U << 17) 
  425#define CF_HAS_RESULT_SET (1U << 18) 
  437#define CF_POTENTIAL_ATOMIC_DDL (1U << 19) 
  443#define CF_REQUIRE_ACL_CACHE (1U << 20) 
  448#define CF_SHOW_USES_SYSTEM_VIEW (1U << 21) 
  459#define CF_SKIP_QUERY_ID (1U << 0) 
  467#define CF_SKIP_QUESTIONS (1U << 1) 
Map from enumeration values of type enum_server_command to descriptions of type std::string.
Definition: sql_parse.h:152
 
static constexpr terminology_use_previous::enum_compatibility_version m_replace_version
The version when the name was changed.
Definition: sql_parse.h:178
 
static enum_server_command int_to_cmd(int cmd)
Cast an integer to enum_server_command, and assert it is in range.
Definition: sql_parse.h:197
 
static constexpr enum_server_command m_replace_com
Command whose name depends on @terminology_use_previous.
Definition: sql_parse.h:169
 
static const std::string & str_notranslate(int cmd)
Return a description string for an integer that is the numeric value of an enum_server_command.
Definition: sql_parse.h:226
 
static const std::string & str_notranslate(enum_server_command cmd)
Return a description string for a given enum_server_command.
Definition: sql_parse.h:213
 
static const std::string & str_session(int cmd)
Return a description string for an integer that is the numeric value of an enum_server_command.
Definition: sql_parse.h:262
 
Abstract factory interface for creating comparison predicates.
Definition: item_cmpfunc.h:546
 
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:928
 
Object_creation_ctx – interface for creation context of database objects (views, stored routines,...
Definition: table.h:213
 
Internal state of the parser.
Definition: sql_lexer_parser_state.h:44
 
Simple intrusive linked list.
Definition: sql_list.h:48
 
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
 
Definition: sql_lex.h:313
 
Definition: sp_head.h:124
 
int test_if_data_home_dir(const char *dir)
Definition: sql_parse.cc:7033
 
bool check_host_name(const LEX_CSTRING &str)
Check that host name string is valid.
Definition: sql_parse.cc:7072
 
int mysql_execute_command(THD *thd, bool first_level=false)
Execute command saved in thd and lex->sql_command.
Definition: sql_parse.cc:3027
 
void execute_init_command(THD *thd, LEX_STRING *init_command, mysql_rwlock_t *var_lock)
Definition: sql_parse.cc:1242
 
void statement_id_to_session(THD *thd)
Definition: sql_parse.cc:5270
 
void add_to_list(SQL_I_List< ORDER > &list, ORDER *order)
save order by and tables in own lists.
Definition: sql_parse.cc:5735
 
bool is_log_table_write_query(enum enum_sql_command command)
Check if a sql command is allowed to write to log tables.
Definition: sql_parse.cc:1222
 
bool mysql_test_parse_for_slave(THD *thd)
Usable by the replication SQL thread only: just parse a query to know if it can be ignored because of...
Definition: sql_parse.cc:5494
 
bool all_tables_not_ok(THD *thd, Table_ref *tables)
Returns true if all tables should be ignored.
Definition: sql_parse.cc:296
 
bool prepare_index_and_data_dir_path(THD *thd, const char **data_file_name, const char **index_file_name, const char *table_name)
prepares the index and data directory path.
Definition: sql_parse.cc:6683
 
bool shutdown(THD *thd, enum mysql_enum_shutdown_level level)
Shutdown the mysqld server.
Definition: sql_parse.cc:2551
 
Comp_creator * comp_equal_creator(bool invert)
Definition: sql_parse.cc:6757
 
void add_automatic_sp_privileges(THD *thd, enum_sp_type sp_type, const char *db_name, const char *sp_name)
Definition: sql_parse.cc:2903
 
bool remove_automatic_sp_privileges(THD *thd, enum_sp_type sp_type, bool sp_did_not_exist, const char *db_name, const char *sp_name)
Definition: sql_parse.cc:2977
 
bool do_command(THD *thd)
Read one command from connection and execute it (query or simple command).
Definition: sql_parse.cc:1347
 
Comp_creator * comp_le_creator(bool invert)
Definition: sql_parse.cc:6770
 
bool is_normal_transaction_boundary_stmt(enum enum_sql_command command)
This function checks if the sql_command is one that identifies the boundaries (begin,...
Definition: sql_parse.cc:303
 
Comp_creator * comp_eq_creator(bool invert)
Definition: sql_parse.cc:6753
 
bool is_xa_transaction_boundary_stmt(enum enum_sql_command command)
This function checks if the sql_command is one that identifies the boundaries (begin,...
Definition: sql_parse.cc:318
 
bool is_explainable_query(enum enum_sql_command command)
Definition: sql_parse.cc:1212
 
bool show_precheck(THD *thd, LEX *lex, bool lock)
Do special checking for SHOW statements.
Definition: sql_parse.cc:5119
 
bool stmt_causes_implicit_commit(const THD *thd, uint mask)
Returns whether the command in thd->lex->sql_command should cause an implicit commit.
Definition: sql_parse.cc:406
 
const CHARSET_INFO * get_bin_collation(const CHARSET_INFO *cs)
Definition: sql_parse.cc:6515
 
bool sqlcom_can_generate_row_events(enum enum_sql_command command)
Definition: sql_parse.cc:1203
 
bool set_default_charset(HA_CREATE_INFO *create_info, const CHARSET_INFO *value)
Definition: parse_tree_nodes.cc:2257
 
bool some_non_temp_table_to_be_updated(THD *thd, Table_ref *tables)
Definition: sql_parse.cc:381
 
bool merge_sp_var_charset_and_collation(const CHARSET_INFO *charset, const CHARSET_INFO *collation, const CHARSET_INFO **to)
Definition: sql_parse.cc:7376
 
int append_file_to_dir(THD *thd, const char **filename_ptr, const char *table_name)
If pointer is not a null pointer, append filename to it.
Definition: sql_parse.cc:6723
 
LEX_USER * create_default_definer(THD *thd)
Create default definer for the specified THD.
Definition: sql_parse.cc:6903
 
Comp_creator * comp_gt_creator(bool invert)
Definition: sql_parse.cc:6766
 
bool alloc_query(THD *thd, const char *packet, size_t packet_length)
Read query from packet and store in thd->query.
Definition: sql_parse.cc:2670
 
void bind_fields(Item *first)
Bind Item fields to Field objects.
Definition: sql_parse.cc:1331
 
void create_table_set_open_action_and_adjust_tables(LEX *lex)
Set proper open mode and table type for element representing target table of CREATE TABLE statement,...
Definition: sql_parse.cc:6832
 
Comp_creator * comp_ne_creator(bool invert)
Definition: sql_parse.cc:6778
 
void turn_parser_debug_on()
 
enum_sp_type
enum_sp_type defines type codes of stored programs.
Definition: sql_lex.h:226
 
bool sp_process_definer(THD *)
Definition: sql_parse.cc:2695
 
int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident, enum enum_schema_tables schema_table_idx)
Create a Table_ref object for an INFORMATION_SCHEMA table.
Definition: sql_parse.cc:2608
 
void add_join_on(Table_ref *b, Item *expr)
Add an ON condition to the second operand of a JOIN ... ON.
Definition: sql_parse.cc:6498
 
Comp_creator * comp_lt_creator(bool invert)
Definition: sql_parse.cc:6774
 
void mysql_reset_thd_for_next_command(THD *thd)
Reset the part of THD responsible for the state of command processing.
Definition: sql_parse.cc:5182
 
void killall_non_super_threads(THD *thd)
Definition: sql_parse.cc:6664
 
bool parse_sql(THD *thd, Parser_state *parser_state, Object_creation_ctx *creation_ctx)
Transform an SQL statement into an AST that is ready for resolving, using the supplied parser state a...
Definition: sql_parse.cc:7173
 
bool dispatch_command(THD *thd, const COM_DATA *com_data, enum enum_server_command command)
Perform one connection-level (COM_XXXX) command.
Definition: sql_parse.cc:1752
 
LEX_USER * get_current_user(THD *thd, LEX_USER *user)
Returns information about user or current user.
Definition: sql_parse.cc:6925
 
bool is_update_query(enum enum_sql_command command)
Definition: sql_parse.cc:1207
 
Comp_creator * comp_ge_creator(bool invert)
Definition: sql_parse.cc:6762
 
uint sql_command_flags[]
Mark all commands that somehow changes a table.
Definition: sql_parse.cc:512
 
void init_sql_command_flags(void)
Definition: sql_parse.cc:515
 
void get_default_definer(THD *thd, LEX_USER *definer)
Set the specified definer to the default value, which is the current user in the thread.
Definition: sql_parse.cc:6860
 
bool set_default_collation(HA_CREATE_INFO *create_info, const CHARSET_INFO *value)
Definition: parse_tree_nodes.cc:2281
 
bool merge_charset_and_collation(const CHARSET_INFO *charset, const CHARSET_INFO *collation, const CHARSET_INFO **to)
(end of group Runtime_Environment)
Definition: sql_parse.cc:7362
 
void free_items(Item *item)
Definition: sql_parse.cc:1308
 
void dispatch_sql_command(THD *thd, Parser_state *parser_state, bool is_retry=false)
Parse an SQL command from a text string and pass the resulting AST to the query executor.
Definition: sql_parse.cc:5295
 
void cleanup_items(Item *item)
This works because items are allocated with (*THR_MALLOC)->Alloc().
Definition: sql_parse.cc:1321
 
bool push_new_name_resolution_context(Parse_context *pc, Table_ref *left_op, Table_ref *right_op)
Push a new name resolution context for a JOIN ... ON clause to the context stack of a query block.
Definition: sql_parse.cc:6470
 
bool check_string_char_length(const LEX_CSTRING &str, const char *err_msg, size_t max_char_length, const CHARSET_INFO *cs, bool no_error)
Definition: sql_parse.cc:7004
 
static const std::string & str_session(enum_server_command cmd)
Return a description string for a given enum_server_command.
Definition: sql_parse.cc:273
 
static const std::string & str_global(enum_server_command cmd)
Return a description string for a given enum_server_command.
Definition: sql_parse.cc:279
 
static const std::string m_replace_str
Name to use when compatibility is enabled.
Definition: sql_parse.h:173
 
static const std::string & translate(const System_variables &sysvars)
Given a system_variable object, returns the string to use for m_replace_com, according to the setting...
Definition: sql_parse.cc:264
 
static const std::string m_names[]
Array indexed by enum_server_command, where each element is a description string.
Definition: sql_parse.h:158
 
mysql_enum_shutdown_level
We want levels to be in growing order of hardness (because we use number comparisons).
Definition: mysql_com.h:1006
 
A better implementation of the UNIX ctype(3) library.
 
static mi_bit_type mask[]
Definition: mi_packrec.cc:141
 
enum_server_command
A list of all MySQL protocol commands.
Definition: my_command.h:48
 
@ COM_END
Not a real command.
Definition: my_command.h:102
 
@ COM_REGISTER_SLAVE
Definition: my_command.h:74
 
enum_sql_command
Definition: my_sqlcommand.h:46
 
Common definition between mysql server & client.
 
char * user
Definition: mysqladmin.cc:67
 
const char * collation
Definition: audit_api_message_emit.cc:184
 
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1078
 
const std::string charset("charset")
 
Definition: commit_order_queue.h:34
 
std::string dir
Double write files location.
Definition: buf0dblwr.cc:77
 
Provides atomic access in shared-exclusive modes.
Definition: shared_spin_lock.h:79
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
const char * table_name
Definition: rules_table_service.cc:56
 
const char * db_name
Definition: rules_table_service.cc:55
 
enum_compatibility_version
Enumeration holding the possible values for @terminology_use_previous.
Definition: terminology_use_previous_enum.h:48
 
@ BEFORE_8_0_26
Use names that were in use up to 8.0.25, inclusive.
Definition: terminology_use_previous_enum.h:52
 
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2884
 
enum_schema_tables
Definition: handler.h:945
 
Definition: m_ctype.h:421
 
Struct to hold information about the table that should be created.
Definition: handler.h:3347
 
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3999
 
Definition: mysql_lex_string.h:40
 
Definition: mysql_lex_string.h:35
 
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:422
 
Definition: system_variables.h:205
 
An instrumented rwlock structure.
Definition: mysql_rwlock_bits.h:51
 
Definition: com_data.h:104