|
typedef Prealloced_array< plugin_ref, INITIAL_LEX_PLUGIN_LIST_SIZE > | Plugins_array |
|
enum | { START_SROUTINES_HASH_SIZE = 16
} |
|
enum | enum_lock_tables_state { LTS_NOT_LOCKED = 0
, LTS_LOCKED
} |
| Locking state of tables in this particular statement. More...
|
|
enum | enum_binlog_stmt_unsafe {
BINLOG_STMT_UNSAFE_LIMIT = 0
, BINLOG_STMT_UNSAFE_SYSTEM_TABLE
, BINLOG_STMT_UNSAFE_AUTOINC_COLUMNS
, BINLOG_STMT_UNSAFE_UDF
,
BINLOG_STMT_UNSAFE_SYSTEM_VARIABLE
, BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION
, BINLOG_STMT_UNSAFE_NONTRANS_AFTER_TRANS
, BINLOG_STMT_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE
,
BINLOG_STMT_UNSAFE_MIXED_STATEMENT
, BINLOG_STMT_UNSAFE_INSERT_IGNORE_SELECT
, BINLOG_STMT_UNSAFE_INSERT_SELECT_UPDATE
, BINLOG_STMT_UNSAFE_WRITE_AUTOINC_SELECT
,
BINLOG_STMT_UNSAFE_REPLACE_SELECT
, BINLOG_STMT_UNSAFE_CREATE_IGNORE_SELECT
, BINLOG_STMT_UNSAFE_CREATE_REPLACE_SELECT
, BINLOG_STMT_UNSAFE_CREATE_SELECT_AUTOINC
,
BINLOG_STMT_UNSAFE_UPDATE_IGNORE
, BINLOG_STMT_UNSAFE_INSERT_TWO_KEYS
, BINLOG_STMT_UNSAFE_AUTOINC_NOT_FIRST
, BINLOG_STMT_UNSAFE_FULLTEXT_PLUGIN
,
BINLOG_STMT_UNSAFE_SKIP_LOCKED
, BINLOG_STMT_UNSAFE_NOWAIT
, BINLOG_STMT_UNSAFE_XA
, BINLOG_STMT_UNSAFE_DEFAULT_EXPRESSION_IN_SUBSTATEMENT
,
BINLOG_STMT_UNSAFE_ACL_TABLE_READ_IN_DML_DDL
, BINLOG_STMT_UNSAFE_CREATE_SELECT_WITH_GIPK
, BINLOG_STMT_UNSAFE_COUNT
} |
| All types of unsafe statements. More...
|
|
enum | enum_stmt_accessed_table {
STMT_READS_TRANS_TABLE = 0
, STMT_READS_NON_TRANS_TABLE
, STMT_READS_TEMP_TRANS_TABLE
, STMT_READS_TEMP_NON_TRANS_TABLE
,
STMT_WRITES_TRANS_TABLE
, STMT_WRITES_NON_TRANS_TABLE
, STMT_WRITES_TEMP_TRANS_TABLE
, STMT_WRITES_TEMP_NON_TRANS_TABLE
,
STMT_ACCESS_TABLE_COUNT
} |
|
Query_block * | current_query_block () const |
|
void | assert_ok_set_current_query_block () |
|
void | set_current_query_block (Query_block *select) |
|
bool | is_explain () const |
|
bool | using_hypergraph_optimizer () const |
| Whether the currently-running statement should be prepared and executed with the hypergraph optimizer. More...
|
|
void | set_using_hypergraph_optimizer (bool use_hypergraph) |
|
bool | splitting_window_expression () const |
|
bool | locate_var_assignment (const Name_string &name) |
| Locate an assignment to a user variable with a given name, within statement. More...
|
|
void | insert_values_map (Item_field *f1, Field *f2) |
|
void | destroy_values_map () |
|
void | clear_values_map () |
|
bool | has_values_map () const |
|
std::map< Item_field *, Field * >::iterator | begin_values_map () |
|
std::map< Item_field *, Field * >::iterator | end_values_map () |
|
bool | can_execute_only_in_secondary_engine () const |
|
void | set_execute_only_in_secondary_engine (const bool execute_only_in_secondary_engine_param, execute_only_in_secondary_reasons reason) |
|
execute_only_in_secondary_reasons | get_not_supported_in_primary_reason () const |
|
const char * | get_not_supported_in_primary_reason_str () |
|
bool | can_execute_only_in_hypergraph_optimizer () const |
|
void | set_execute_only_in_hypergraph_optimizer (bool execute_in_hypergraph_optimizer_param, execute_only_in_hypergraph_reasons reason) |
|
const char * | get_only_supported_in_hypergraph_reason_str () const |
|
execute_only_in_hypergraph_reasons | get_only_supported_in_hypergraph_reason () const |
|
bool | is_ignore () const |
|
void | set_ignore (bool ignore_param) |
|
void | set_has_udf () |
|
bool | has_udf () const |
|
void | reset_has_external_tables () |
|
void | set_has_external_tables () |
|
bool | has_external_tables () const |
|
ulonglong | statement_options () |
| Gets the options that have been set for this statement. More...
|
|
void | add_statement_options (ulonglong options) |
| Add options to values of m_statement_options. More...
|
|
bool | is_broken () const |
|
void | mark_broken (bool broken=true) |
| Certain permanent transformations (like in2exists), if they fail, may leave the LEX in an inconsistent state. More...
|
|
bool | check_preparation_invalid (THD *thd) |
| Check whether preparation state for prepared statement is invalid. More...
|
|
void | cleanup (bool full) |
|
bool | is_exec_started () const |
|
void | set_exec_started () |
|
void | reset_exec_started () |
|
bool | is_exec_completed () const |
| Check whether the statement has been executed (regardless of completion - successful or in error). More...
|
|
void | set_exec_completed () |
|
bool | is_crossed_global_connection_memory_status_limit () const |
|
bool | is_crossed_connection_memory_status_limit () const |
|
void | set_crossed_global_connection_memory_status_limit () |
|
void | set_crossed_connection_memory_status_limit () |
|
void | reset_crossed_memory_status_limit () |
|
sp_pcontext * | get_sp_current_parsing_ctx () |
|
void | set_sp_current_parsing_ctx (sp_pcontext *ctx) |
|
bool | is_metadata_used () const |
| Check if the current statement uses meta-data (uses a table or a stored routine). More...
|
|
bool | deny_window_function (Query_block *qb) const |
| We have detected the presence of an alias of a window function with a window on query block qb. More...
|
|
| LEX () |
|
virtual | ~LEX () |
|
void | destroy () |
| Destroy contained objects, but not the LEX object itself. More...
|
|
void | reset () |
| Reset query context to initial state. More...
|
|
Query_block * | new_empty_query_block () |
| Create an empty query block within this LEX object. More...
|
|
Query_block * | new_query (Query_block *curr_query_block) |
| Create query expression object that contains one query block. More...
|
|
Query_block * | new_set_operation_query (Query_block *curr_query_block) |
| Create query block and attach it to the current query expression. More...
|
|
bool | new_top_level_query () |
| Create top-level query expression and query block. More...
|
|
void | new_static_query (Query_expression *sel_query_expression, Query_block *select) |
| Create query expression and query block in existing memory objects. More...
|
|
Query_expression * | create_query_expr_and_block (THD *thd, Query_block *current_query_block, Item *where_clause, Item *having_clause, enum_parsing_context ctx) |
| Create query expression under current_query_block and a query block under the new query expression. More...
|
|
bool | is_ps_or_view_context_analysis () |
|
bool | is_view_context_analysis () |
|
void | clear_execution () |
| Clear execution state for a statement after it has been prepared or executed, and before it is (re-)executed. More...
|
|
void | set_uncacheable (Query_block *curr_query_block, uint8 cause) |
| Set the current query as uncacheable. More...
|
|
void | set_trg_event_type_for_tables () |
| Set the initial purpose of this Table_ref object in the list of used tables. More...
|
|
Table_ref * | unlink_first_table (bool *link_to_local) |
|
void | link_first_table_back (Table_ref *first, bool link_to_local) |
|
void | first_lists_tables_same () |
|
void | restore_cmd_properties () |
|
void | restore_properties_for_insert () |
|
bool | save_cmd_properties (THD *thd) |
|
bool | can_use_merged () |
| check if command can use VIEW with MERGE algorithm (for top VIEWs) More...
|
|
bool | can_not_use_merged () |
| Check if command can't use merged views in any part of command. More...
|
|
bool | need_correct_ident () |
|
bool | which_check_option_applicable () |
|
void | cleanup_after_one_table_open () |
|
bool | push_context (Name_resolution_context *context) |
|
void | pop_context () |
|
bool | copy_db_to (char const **p_db, size_t *p_db_length) const |
| This method should be called only during parsing. More...
|
|
bool | copy_db_to (char **p_db, size_t *p_db_length) const |
|
Name_resolution_context * | current_context () |
|
void | reset_n_backup_query_tables_list (Query_tables_list *backup) |
|
void | restore_backup_query_tables_list (Query_tables_list *backup) |
|
bool | table_or_sp_used () |
|
bool | is_single_level_stmt () |
| check if the statement is a single-level join More...
|
|
void | release_plugins () |
|
bool | accept (Select_lex_visitor *visitor) |
|
bool | set_wild (LEX_STRING) |
|
void | clear_privileges () |
|
bool | make_sql_cmd (Parse_tree_root *parse_tree) |
| Uses parse_tree to instantiate an Sql_cmd object and assigns it to the Lex. More...
|
|
Secondary_engine_execution_context * | secondary_engine_execution_context () const |
| Gets the secondary engine execution context for this statement. More...
|
|
void | set_secondary_engine_execution_context (Secondary_engine_execution_context *context) |
| Sets the secondary engine execution context for this statement. More...
|
|
bool | validate_use_in_old_optimizer () |
| Validates if a query can run with the old optimizer. More...
|
|
bool | was_replication_command_executed () const |
|
void | set_was_replication_command_executed () |
|
bool | set_channel_name (LEX_CSTRING name={}) |
| Set replication channel name. More...
|
|
void | set_rewrite_required () |
|
void | reset_rewrite_required () |
|
bool | is_rewrite_required () |
|
Query_tables_list & | operator= (Query_tables_list &&)=default |
|
bool | is_query_tables_locked () const |
|
| Query_tables_list ()=default |
|
| ~Query_tables_list ()=default |
|
void | reset_query_tables_list (bool init) |
|
void | destroy_query_tables_list () |
|
void | set_query_tables_list (Query_tables_list *state) |
|
void | add_to_query_tables (Table_ref *table) |
|
bool | requires_prelocking () |
|
void | mark_as_requiring_prelocking (Table_ref **tables_own_last) |
|
Table_ref * | first_not_own_table () |
|
void | chop_off_not_own_tables () |
|
bool | is_stmt_unsafe () const |
| Determine if this statement is marked as unsafe. More...
|
|
bool | is_stmt_unsafe (enum_binlog_stmt_unsafe unsafe) |
|
void | set_stmt_unsafe (enum_binlog_stmt_unsafe unsafe_type) |
| Flag the current (top-level) statement as unsafe. More...
|
|
void | set_stmt_unsafe_flags (uint32 flags) |
| Set the bits of binlog_stmt_flags determining the type of unsafeness of the current statement. More...
|
|
uint32 | get_stmt_unsafe_flags () const |
| Return a binary combination of all unsafe warnings for the statement. More...
|
|
bool | is_stmt_row_injection () const |
| Determine if this statement is a row injection. More...
|
|
void | set_stmt_row_injection () |
| Flag the statement as a row injection. More...
|
|
void | set_stmt_accessed_table (enum_stmt_accessed_table accessed_table) |
| Sets the type of table that is about to be accessed while executing a statement. More...
|
|
bool | stmt_accessed_table (enum_stmt_accessed_table accessed_table) |
| Checks if a type of table is about to be accessed while executing a statement. More...
|
|
bool | is_mixed_stmt_unsafe (bool in_multi_stmt_transaction_mode, bool binlog_direct, bool trx_cache_is_not_empty, uint tx_isolation) |
|
bool | uses_stored_routines () const |
| true if the parsed tree contains references to stored procedures or functions, false otherwise More...
|
|
void | set_using_match () |
|
bool | get_using_match () |
|
void | set_stmt_unsafe_with_mixed_mode () |
|
bool | is_stmt_unsafe_with_mixed_mode () const |
|
Query_expression * | unit |
| Outer-most query expression. More...
|
|
Query_block * | query_block |
| First query block. More...
|
|
Query_block * | all_query_blocks_list |
| List of all query blocks. More...
|
|
bool | is_explain_analyze = false |
|
LEX_STRING | name |
|
char * | help_arg |
|
char * | to_log |
|
const char * | x509_subject |
|
const char * | x509_issuer |
|
const char * | ssl_cipher |
|
String * | wild |
|
Query_result * | result |
|
LEX_STRING | binlog_stmt_arg |
| Argument of the BINLOG event statement. More...
|
|
LEX_STRING | ident |
|
LEX_USER * | grant_user |
|
LEX_ALTER | alter_password |
|
enum_alter_user_attribute | alter_user_attribute |
|
LEX_STRING | alter_user_comment_text |
|
LEX_GRANT_AS | grant_as |
|
THD * | thd |
|
Opt_hints_global * | opt_hints_global |
|
Plugins_array | plugins |
|
Table_ref * | insert_table |
| Table being inserted into (may be a view) More...
|
|
Table_ref * | insert_table_leaf |
| Leaf table being inserted into (always a base table) More...
|
|
LEX_STRING | create_view_query_block |
| SELECT of CREATE VIEW statement. More...
|
|
partition_info * | part_info |
|
LEX_USER * | definer |
|
List< LEX_USER > | users_list |
|
List< LEX_COLUMN > | columns |
|
List< LEX_CSTRING > | dynamic_privileges |
|
List< LEX_USER > * | default_roles |
|
ulonglong | bulk_insert_row_cnt |
|
List< Item > | purge_value_list |
|
List< Item > | kill_value_list |
|
List< set_var_base > | var_list |
|
List< Item_func_set_user_var > | set_var_list |
|
List< Item_param > | param_list |
| List of placeholders ('?') for parameters of a prepared statement. More...
|
|
List< Name_resolution_context > | context_stack |
|
Item_sum * | in_sum_func |
|
udf_func | udf |
|
HA_CHECK_OPT | check_opt |
|
HA_CREATE_INFO * | create_info |
|
KEY_CREATE_INFO | key_create_info |
|
LEX_SOURCE_INFO | mi |
|
LEX_REPLICA_CONNECTION | replica_connection |
|
Server_options | server_options |
|
USER_RESOURCES | mqh |
|
LEX_RESET_REPLICA | reset_replica_info |
|
ulong | type |
|
nesting_map | allow_sum_func |
| This field is used as a work field during resolving to validate the use of aggregate functions. More...
|
|
nesting_map | m_deny_window_func |
| Windowing functions are not allowed in HAVING - in contrast to grouped aggregate functions, since windowing in SQL logically follows after all grouping operations. More...
|
|
bool | m_subquery_to_derived_is_impossible |
| If true: during prepare, we did a subquery transformation (IN-to-EXISTS, SOME/ANY) that doesn't currently work for subquery to a derived table transformation. More...
|
|
Sql_cmd * | m_sql_cmd |
|
bool | expr_allows_subquery {true} |
|
uint | reparse_common_table_expr_at |
| If currently re-parsing a CTE's definition, this is the offset in bytes of that definition in the original statement which had the WITH clause. More...
|
|
bool | reparse_derived_table_condition {false} |
| If currently re-parsing a condition which is pushed down to a derived table, this will be set to true. More...
|
|
std::vector< uint > | reparse_derived_table_params_at |
| If currently re-parsing a condition that is being pushed down to a derived table, this has the positions of all the parameters that are part of that condition in the original statement. More...
|
|
enum SSL_type | ssl_type |
|
enum enum_duplicates | duplicates |
|
enum enum_tx_isolation | tx_isolation |
|
enum enum_var_type | option_type |
|
enum_view_create_mode | create_view_mode |
|
my_thread_id | show_profile_query_id |
| QUERY ID for SHOW PROFILE. More...
|
|
uint | profile_options |
|
uint | grant |
|
uint | grant_tot_col |
|
bool | grant_privilege |
| Set to true when GRANT ... GRANT OPTION ... TO ... is used (vs. More...
|
|
uint | replica_thd_opt |
|
uint | start_transaction_opt |
|
int | select_number |
| Number of query block (by EXPLAIN) More...
|
|
uint8 | create_view_algorithm |
|
uint8 | create_view_check |
|
uint8 | context_analysis_only |
|
bool | drop_if_exists |
|
bool | grant_if_exists |
| refers to optional IF EXISTS clause in REVOKE sql. More...
|
|
bool | ignore_unknown_user |
| refers to optional IGNORE UNKNOWN USER clause in REVOKE sql. More...
|
|
bool | drop_temporary |
|
bool | autocommit |
|
bool | verbose |
|
bool | no_write_to_binlog |
|
bool | m_extended_show |
|
enum enum_yes_no_unknown tx_chain | tx_release |
|
bool | safe_to_cache_query |
| Whether this query will return the same answer every time, given unchanged data. More...
|
|
st_parsing_options | parsing_options |
|
Alter_info * | alter_info |
|
LEX_CSTRING | prepared_stmt_name |
|
LEX_STRING | prepared_stmt_code |
|
bool | prepared_stmt_code_is_varref |
|
List< LEX_STRING > | prepared_stmt_params |
|
sp_head * | sphead |
|
sp_name * | spname |
|
bool | sp_lex_in_use |
|
bool | all_privileges |
|
bool | contains_plaintext_password |
|
enum_keep_diagnostics | keep_diagnostics |
|
uint32 | next_binlog_file_nr |
|
st_sp_chistics | sp_chistics |
|
bool | only_view |
|
uint8 | create_view_suid |
|
const char * | stmt_definition_begin |
| Intended to point to the next word after DEFINER-clause in the following statements: More...
|
|
const char * | stmt_definition_end |
|
bool | use_only_table_context |
| During name resolution search only in the table list given by Name_resolution_context::first_name_resolution_table and Name_resolution_context::last_name_resolution_table (see Item_field::fix_fields()). More...
|
|
bool | is_lex_started |
|
bool | in_update_value_clause |
| Set to true while resolving values in ON DUPLICATE KEY UPDATE clause. More...
|
|
class Explain_format * | explain_format {nullptr} |
|
ulong | max_execution_time |
|
bool | binlog_need_explicit_defaults_ts |
|
bool | will_contextualize |
| Used to inform the parser whether it should contextualize the parse tree. More...
|
|
dd::info_schema::Table_statistics | m_IS_table_stats |
| IS schema queries read some dynamic table statistics from SE. More...
|
|
dd::info_schema::Tablespace_statistics | m_IS_tablespace_stats |
|
enum_sql_command | sql_command |
| SQL command for this statement. More...
|
|
Table_ref * | query_tables |
|
Table_ref ** | query_tables_last |
|
Table_ref ** | query_tables_own_last |
|
std::unique_ptr< malloc_unordered_map< std::string, Sroutine_hash_entry * > > | sroutines |
|
SQL_I_List< Sroutine_hash_entry > | sroutines_list |
|
Sroutine_hash_entry ** | sroutines_list_own_last |
|
uint | sroutines_list_own_elements |
|
enum_lock_tables_state | lock_tables_state |
|
uint | table_count |
| Number of tables which were open by open_tables() and to be locked by lock_tables(). More...
|
|
static const int | BINLOG_STMT_UNSAFE_ALL_FLAGS |
| This has all flags from 0 (inclusive) to BINLOG_STMT_FLAG_COUNT (exclusive) set. More...
|
|
static const int | binlog_stmt_unsafe_errcode [BINLOG_STMT_UNSAFE_COUNT] |
| Maps elements of enum_binlog_stmt_unsafe to error codes. More...
|
|