23#ifndef THD_RAII_INCLUDED
24#define THD_RAII_INCLUDED 1
124 thd->is_operating_substatement_implicitly),
137 const 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)
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
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:347
bool is_regular() const
Definition: sql_class.h:419
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:2044
MEM_ROOT * mem_root
Definition: sql_class.h:356
enum_sql_command sql_command
SQL command for this statement.
Definition: sql_lex.h:2525
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:35
Query_arena * stmt_arena
Definition: sql_class.h:2129
LEX * lex
Definition: sql_class.h:989
Internal_error_handler * pop_internal_handler()
Remove the error handler last pushed.
Definition: sql_class.cc:924
void clear_current_stmt_binlog_format_row()
Definition: sql_class.h:3437
int is_current_stmt_binlog_format_row() const
Determine the binlog format of the current statement.
Definition: sql_class.h:1710
void push_internal_handler(Internal_error_handler *handler)
Add an internal error handler to the thread execution context.
Definition: sql_class.cc:903
void set_current_stmt_binlog_format_row()
Definition: sql_class.h:3432
bool skip_gtid_rollback
Definition: sql_class.h:3870
ulong want_privilege
Used by Item::check_column_privileges() to tell which privileges to check for.
Definition: sql_class.h:977
System_variables variables
Definition: sql_lexer_thd.h:63
MEM_ROOT * mem_root
Definition: sql_lexer_thd.h:39
Transaction_ctx * get_transaction()
Definition: sql_class.h:2070
bool is_operating_substatement_implicitly
Definition: sql_class.h:2313
bool is_empty(enum_trx_scope scope) const
Definition: transaction_info.h:331
@ SESSION
Definition: transaction_info.h:55
@ STMT
Definition: transaction_info.h:55
static MEM_ROOT mem_root
Definition: client_plugin.cc:113
uint64_t sql_mode_t
Definition: dd_event.h:38
void lex_end(LEX *lex)
Call this function after preparation and execution of a query.
Definition: sql_lex.cc:524
bool lex_start(THD *thd)
Call lex_start() before every query that is to be prepared and executed.
Definition: sql_lex.cc:500
#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:198
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:503
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:3209
The LEX object currently serves three different purposes:
Definition: sql_lex.h:3721
HA_CREATE_INFO * create_info
Definition: sql_lex.h:3883
void cleanup(bool full)
Definition: sql_lex.h:4095
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:57
constexpr sql_mode_t MODE_NO_BACKSLASH_ESCAPES
Definition: system_variables.h:139
constexpr sql_mode_t MODE_PIPES_AS_CONCAT
Definition: system_variables.h:130
enum_binlog_format
Definition: system_variables.h:45
@ BINLOG_FORMAT_ROW
row-based
Definition: system_variables.h:48
@ BINLOG_FORMAT_STMT
statement-based
Definition: system_variables.h:47
constexpr sql_mode_t MODE_IGNORE_SPACE
Definition: system_variables.h:132
constexpr sql_mode_t MODE_ANSI_QUOTES
Definition: system_variables.h:131
static task_env * activate(task_env *t)
Definition: task.cc:545
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