23#ifndef THD_RAII_INCLUDED
24#define THD_RAII_INCLUDED 1
124 thd->is_operating_substatement_implicitly),
137 bool disable_gtid_and_spco =
138 (
mode != enum_implicit_substatement_guard_mode ::
139 ENABLE_GTID_AND_SPCO_IF_SPCO_ACTIVE);
168 thd->
variables.option_bits &= ~OPTION_BIN_LOG;
305template <
typename Error_handler,
typename Error_handler_arg>
337 bool activate_now_if_needed =
true)
RAII class for column privilege checking.
Definition: thd_raii.h:392
THD *const m_thd
Definition: thd_raii.h:401
const ulong m_saved_privilege
Definition: thd_raii.h:402
~Column_privilege_tracker()
Definition: thd_raii.h:398
Column_privilege_tracker(THD *thd, ulong privilege)
Definition: thd_raii.h:394
RAII class for temporarily turning off @autocommit in the connection.
Definition: thd_raii.h:49
Disable_autocommit_guard(THD *thd)
Definition: thd_raii.h:56
ulonglong m_save_option_bits
Definition: thd_raii.h:88
THD * m_thd
Definition: thd_raii.h:87
~Disable_autocommit_guard()
Definition: thd_raii.h:71
RAII class to temporarily disable binlogging.
Definition: thd_raii.h:163
THD *const m_thd
Definition: thd_raii.h:176
~Disable_binlog_guard()
Definition: thd_raii.h:171
Disable_binlog_guard(THD *thd)
Definition: thd_raii.h:165
const bool m_binlog_disabled
Definition: thd_raii.h:177
Definition: thd_raii.h:180
~Disable_sql_log_bin_guard()
Definition: thd_raii.h:187
Disable_sql_log_bin_guard(THD *thd)
Definition: thd_raii.h:182
THD *const m_thd
Definition: thd_raii.h:192
const bool m_saved_sql_log_bin
Definition: thd_raii.h:193
RAII class to temporarily enable derived_merge optimizer_switch for SHOW commands that are based on I...
Definition: thd_raii.h:409
Enable_derived_merge_guard(THD *thd, bool enable_derived_merge)
Definition: thd_raii.h:411
bool m_derived_merge
Definition: thd_raii.h:426
THD *const m_thd
Definition: thd_raii.h:425
~Enable_derived_merge_guard()
Definition: thd_raii.h:419
ulonglong m_save_optimizer_switch
Definition: thd_raii.h:427
RAII class which allows to temporary disable updating Gtid_state and disable invocation of commit ord...
Definition: thd_raii.h:106
THD * m_thd
Definition: thd_raii.h:153
bool m_guard_ignored
Definition: thd_raii.h:156
bool m_save_is_operating_substatement_implicitly
Definition: thd_raii.h:154
bool m_save_skip_gtid_rollback
Definition: thd_raii.h:155
Implicit_substatement_state_guard(THD *thd, enum_implicit_substatement_guard_mode mode=enum_implicit_substatement_guard_mode::DISABLE_GTID_AND_SPCO)
Constructs a new object and set thd->is_operating_substatement_implicitly and thd->skip_gtid_rollback...
Definition: thd_raii.h:118
~Implicit_substatement_state_guard()
Definition: thd_raii.h:144
A simple holder for Internal_error_handler.
Definition: thd_raii.h:306
~Internal_error_handler_holder()
Definition: thd_raii.h:317
bool m_activate
Definition: thd_raii.h:308
Error_handler m_error_handler
Definition: thd_raii.h:309
THD * m_thd
Definition: thd_raii.h:307
Internal_error_handler_holder(THD *thd, bool activate, Error_handler_arg *arg)
Definition: thd_raii.h:312
A simple holder for the Prepared Statement Query_arena instance in THD.
Definition: thd_raii.h:326
Query_arena * m_arena
The arena set by this holder (by activate()).
Definition: thd_raii.h:361
~Prepared_stmt_arena_holder()
Deactivate the persistent arena (restore the previous arena) if it has been activated.
Definition: thd_raii.h:350
Prepared_stmt_arena_holder(THD *thd, bool activate_now_if_needed=true)
Constructs a new object, activates the persistent arena if requested and if a prepared statement or a...
Definition: thd_raii.h:336
THD *const m_thd
The thread context to work with.
Definition: thd_raii.h:358
Query_arena m_backup
The arena state to be restored.
Definition: thd_raii.h:364
bool is_activated() const
Definition: thd_raii.h:354
RAII class for pushed LEX object.
Definition: thd_raii.h:370
~Pushed_lex_guard()
Definition: thd_raii.h:376
THD *const m_thd
Definition: thd_raii.h:385
LEX * m_old_lex
Definition: thd_raii.h:386
Pushed_lex_guard(THD *thd, LEX *new_lex)
Definition: thd_raii.h:372
Definition: sql_class.h:342
bool is_regular() const
Definition: sql_class.h:414
void swap_query_arena(const Query_arena &source, Query_arena *backup)
Copy the current arena to backup and set the current arena to match source
Definition: sql_class.cc:2027
MEM_ROOT * mem_root
Definition: sql_class.h:351
enum_sql_command sql_command
SQL command for this statement.
Definition: sql_lex.h:2508
RAII class to temporarily turn off SQL modes that affect parsing of expressions.
Definition: thd_raii.h:238
THD * m_thd
Definition: thd_raii.h:275
const sql_mode_t m_old_sql_mode
Definition: thd_raii.h:276
~Sql_mode_parse_guard()
Definition: thd_raii.h:272
Sql_mode_parse_guard(THD *thd)
Definition: thd_raii.h:240
RAII class to temporarily swap thd->mem_root to a different mem_root.
Definition: thd_raii.h:282
MEM_ROOT * m_old_mem_root
Definition: thd_raii.h:295
~Swap_mem_root_guard()
Definition: thd_raii.h:289
THD * m_thd
Definition: thd_raii.h:294
Swap_mem_root_guard(THD *thd, MEM_ROOT *mem_root)
Definition: thd_raii.h:284
MEM_ROOT * old_mem_root()
Definition: thd_raii.h:291
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
Query_arena * stmt_arena
Definition: sql_class.h:2098
LEX * lex
Definition: sql_class.h:980
Internal_error_handler * pop_internal_handler()
Remove the error handler last pushed.
Definition: sql_class.cc:910
void clear_current_stmt_binlog_format_row()
Definition: sql_class.h:3406
int is_current_stmt_binlog_format_row() const
Determine the binlog format of the current statement.
Definition: sql_class.h:1701
void push_internal_handler(Internal_error_handler *handler)
Add an internal error handler to the thread execution context.
Definition: sql_class.cc:889
void set_current_stmt_binlog_format_row()
Definition: sql_class.h:3401
bool skip_gtid_rollback
Definition: sql_class.h:3839
ulong want_privilege
Used by Item::check_column_privileges() to tell which privileges to check for.
Definition: sql_class.h:968
System_variables variables
Definition: sql_lexer_thd.h:61
MEM_ROOT * mem_root
Definition: sql_lexer_thd.h:37
Transaction_ctx * get_transaction()
Definition: sql_class.h:2039
bool is_operating_substatement_implicitly
Definition: sql_class.h:2282
bool is_empty(enum_trx_scope scope) const
Definition: transaction_info.h:330
@ SESSION
Definition: transaction_info.h:54
@ STMT
Definition: transaction_info.h:54
static MEM_ROOT mem_root
Definition: client_plugin.cc:109
ulonglong sql_mode_t
Definition: dd_event.h:36
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
void lex_end(LEX *lex)
Call this function after preparation and execution of a query.
Definition: sql_lex.cc:534
bool lex_start(THD *thd)
Call lex_start() before every query that is to be prepared and executed.
Definition: sql_lex.cc:510
#define DBUG_TRACE
Definition: my_dbug.h:145
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
@ SQLCOM_CREATE_TABLE
Definition: my_sqlcommand.h:47
static const char * sql_mode
Definition: mysqlslap.cc:196
mode
Definition: file_handle.h:59
#define OPTION_BIN_LOG
Definition: query_options.h:72
#define OPTION_NOT_AUTOCOMMIT
Definition: query_options.h:73
bool has_commit_order_manager(const THD *thd)
Determines whether current thread shall run the procedure here to check whether it waits for its turn...
Definition: rpl_replica_commit_order_manager.cc:502
constexpr const uint64_t OPTIMIZER_SWITCH_DERIVED_MERGE
Definition: sql_const.h:216
Definition: mysql_command_services_imp.cc:41
bool m_transactional_ddl
Definition: handler.h:3073
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3701
HA_CREATE_INFO * create_info
Definition: sql_lex.h:3863
void cleanup(bool full)
Definition: sql_lex.h:4075
The MEM_ROOT is a simple arena, where allocations are carved out of larger blocks.
Definition: my_alloc.h:82
sql_mode_t sql_mode
Definition: sql_lexer_thd.h:55
#define MODE_IGNORE_SPACE
Definition: system_variables.h:131
#define MODE_ANSI_QUOTES
Definition: system_variables.h:130
#define MODE_PIPES_AS_CONCAT
Definition: system_variables.h:129
#define MODE_NO_BACKSLASH_ESCAPES
Definition: system_variables.h:138
enum_binlog_format
Definition: system_variables.h:44
@ BINLOG_FORMAT_ROW
row-based
Definition: system_variables.h:47
@ BINLOG_FORMAT_STMT
statement-based
Definition: system_variables.h:46
static task_env * activate(task_env *t)
Definition: task.cc:529
enum_implicit_substatement_guard_mode
The mode for Implicit_substatement_state_guard based on which it determine whether to enable or disab...
Definition: thd_raii.h:96
@ DISABLE_GTID_AND_SPCO_IF_SPCO_ACTIVE
@ ENABLE_GTID_AND_SPCO_IF_SPCO_ACTIVE