MySQL  8.0.18
Source Code Documentation
Yacc_state Class Reference

The internal state of the syntax parser. More...

#include <sql_lex.h>

Public Member Functions

 Yacc_state ()
 
void reset ()
 
 ~Yacc_state ()
 
void reset_before_substatement ()
 Reset part of the state which needs resetting before parsing substatement. More...
 

Public Attributes

ucharyacc_yyss
 Bison internal state stack, yyss, when dynamically allocated using my_yyoverflow(). More...
 
ucharyacc_yyvs
 Bison internal semantic value stack, yyvs, when dynamically allocated using my_yyoverflow(). More...
 
ucharyacc_yyls
 Bison internal location value stack, yyls, when dynamically allocated using my_yyoverflow(). More...
 
thr_lock_type m_lock_type
 Type of lock to be used for tables being added to the statement's table list in table_factor, table_alias_ref, single_multi and table_wild_one rules. More...
 
enum_mdl_type m_mdl_type
 The type of requested metadata lock for tables added to the statement table list. More...
 

Detailed Description

The internal state of the syntax parser.

This object is only available during parsing, and is private to the syntax parser implementation (sql_yacc.yy).

Constructor & Destructor Documentation

◆ Yacc_state()

Yacc_state::Yacc_state ( )
inline

◆ ~Yacc_state()

Yacc_state::~Yacc_state ( )

Member Function Documentation

◆ reset()

void Yacc_state::reset ( void  )
inline

◆ reset_before_substatement()

void Yacc_state::reset_before_substatement ( )
inline

Reset part of the state which needs resetting before parsing substatement.

Member Data Documentation

◆ m_lock_type

thr_lock_type Yacc_state::m_lock_type

Type of lock to be used for tables being added to the statement's table list in table_factor, table_alias_ref, single_multi and table_wild_one rules.

Statements which use these rules but require lock type different from one specified by this member have to override it by using SELECT_LEX::set_lock_for_tables() method.

The default value of this member is TL_READ_DEFAULT. The only two cases in which we change it are:

  • When parsing SELECT HIGH_PRIORITY.
  • Rule for DELETE. In which we use this member to pass information about type of lock from delete to single_multi part of rule.

We should try to avoid introducing new use cases as we would like to get rid of this member eventually.

◆ m_mdl_type

enum_mdl_type Yacc_state::m_mdl_type

The type of requested metadata lock for tables added to the statement table list.

◆ yacc_yyls

uchar* Yacc_state::yacc_yyls

Bison internal location value stack, yyls, when dynamically allocated using my_yyoverflow().

◆ yacc_yyss

uchar* Yacc_state::yacc_yyss

Bison internal state stack, yyss, when dynamically allocated using my_yyoverflow().

◆ yacc_yyvs

uchar* Yacc_state::yacc_yyvs

Bison internal semantic value stack, yyvs, when dynamically allocated using my_yyoverflow().


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