MySQL 8.0.40
Source Code Documentation
anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier Class Reference

Because it's not possible to disentangle the state of the parser from the THD, we have to destructively modify the current THD object in order to parse. More...

Public Member Functions

 Thd_parse_modifier (THD *thd, uchar *token_buffer)
 
 ~Thd_parse_modifier ()
 

Private Attributes

THDm_thd
 
MEM_ROOT m_mem_root
 
Query_arena m_arena
 
LEXm_backed_up_lex
 
LEX m_lex
 
sql_digest_state m_digest_state
 
Parser_statem_saved_parser_state
 
sql_digest_statem_saved_digest
 
const CHARSET_INFOm_cs
 

Detailed Description

Because it's not possible to disentangle the state of the parser from the THD, we have to destructively modify the current THD object in order to parse.

This class backs up and restores members that are modified in Item_func_statement_digest::val_str_ascii. It also sports its own Query_arena and LEX objects, which are used during parsing.

Constructor & Destructor Documentation

◆ Thd_parse_modifier()

anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::Thd_parse_modifier ( THD thd,
uchar token_buffer 
)
inline

◆ ~Thd_parse_modifier()

anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::~Thd_parse_modifier ( )
inline

Member Data Documentation

◆ m_arena

Query_arena anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_arena
private

◆ m_backed_up_lex

LEX* anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_backed_up_lex
private

◆ m_cs

const CHARSET_INFO* anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_cs
private

◆ m_digest_state

sql_digest_state anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_digest_state
private

◆ m_lex

LEX anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_lex
private

◆ m_mem_root

MEM_ROOT anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_mem_root
private

◆ m_saved_digest

sql_digest_state* anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_saved_digest
private

◆ m_saved_parser_state

Parser_state* anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_saved_parser_state
private

◆ m_thd

THD* anonymous_namespace{item_strfunc.cc}::Thd_parse_modifier::m_thd
private

The documentation for this class was generated from the following file: