MySQL  8.0.17
Source Code Documentation
PT_query_expression Class Reference

#include <parse_tree_nodes.h>

Inheritance diagram for PT_query_expression:
Parse_tree_node_tmpl< Context >

Public Member Functions

 PT_query_expression (PT_with_clause *with_clause, PT_query_expression_body *body, PT_order *order, PT_limit_clause *limit, PT_locking_clause_list *locking_clauses)
 
 PT_query_expression (PT_query_expression_body *body, PT_order *order, PT_limit_clause *limit, PT_locking_clause_list *locking_clauses)
 
 PT_query_expression (PT_query_expression_body *body)
 
virtual bool contextualize (Parse_context *pc)
 
PT_query_expression_bodybody ()
 
bool has_order () const
 
bool has_limit () const
 
bool is_union () const
 
bool has_into_clause () const
 
bool contextualize_order_and_limit (Parse_context *pc)
 Callback for deeper nested query expressions. More...
 
void set_parentheses ()
 
bool has_parentheses ()
 
void remove_parentheses ()
 
void ban_order_and_limit () const
 Called by the parser when it has decided that this query expression may not contain order or limit clauses because it is part of a union. More...
 
- Public Member Functions inherited from Parse_tree_node_tmpl< Context >
virtual ~Parse_tree_node_tmpl ()
 
bool is_contextualized () const
 
virtual bool contextualize (Context *pc)
 Do all context-sensitive things and mark the node as contextualized. More...
 
virtual bool contextualize_ (Context *)
 
Intermediate version of the contextualize() function More...
 
void error (Context *pc, const POS &pos) const
 syntax_error() function replacement for deferred reporting of syntax errors More...
 
void error (Context *pc, const POS &pos, const char *msg) const
 syntax_error() function replacement for deferred reporting of syntax errors More...
 
void errorf (Context *pc, const POS &pos, const char *format,...) const
 syntax_error() function replacement for deferred reporting of syntax errors More...
 

Private Attributes

bool contextualized
 
PT_query_expression_bodym_body
 
PT_orderm_order
 
PT_limit_clausem_limit
 
PT_locking_clause_listm_locking_clauses
 
bool m_parentheses
 
PT_with_clausem_with_clause
 

Additional Inherited Members

- Public Types inherited from Parse_tree_node_tmpl< Context >
typedef Context context_t
 
- Static Public Member Functions inherited from Parse_tree_node_tmpl< Context >
static void * operator new (size_t size, MEM_ROOT *mem_root, const std::nothrow_t &arg=std::nothrow) noexcept
 
static void operator delete (void *ptr, size_t size)
 
static void operator delete (void *, MEM_ROOT *, const std::nothrow_t &) noexcept
 
- Protected Member Functions inherited from Parse_tree_node_tmpl< Context >
 Parse_tree_node_tmpl ()
 

Constructor & Destructor Documentation

◆ PT_query_expression() [1/3]

PT_query_expression::PT_query_expression ( PT_with_clause with_clause,
PT_query_expression_body body,
PT_order order,
PT_limit_clause limit,
PT_locking_clause_list locking_clauses 
)
inline

◆ PT_query_expression() [2/3]

PT_query_expression::PT_query_expression ( PT_query_expression_body body,
PT_order order,
PT_limit_clause limit,
PT_locking_clause_list locking_clauses 
)
inline

◆ PT_query_expression() [3/3]

PT_query_expression::PT_query_expression ( PT_query_expression_body body)
inlineexplicit

Member Function Documentation

◆ ban_order_and_limit()

void PT_query_expression::ban_order_and_limit ( ) const
inline

Called by the parser when it has decided that this query expression may not contain order or limit clauses because it is part of a union.

For historical reasons, these clauses are not allowed in non-last branches of union expressions.

◆ body()

PT_query_expression_body* PT_query_expression::body ( )
inline

◆ contextualize()

virtual bool PT_query_expression::contextualize ( Parse_context pc)
inlinevirtual

◆ contextualize_order_and_limit()

bool PT_query_expression::contextualize_order_and_limit ( Parse_context pc)
inline

Callback for deeper nested query expressions.

It's mandatory for any derived class to call this member function during contextualize.

◆ has_into_clause()

bool PT_query_expression::has_into_clause ( ) const
inline

◆ has_limit()

bool PT_query_expression::has_limit ( ) const
inline

◆ has_order()

bool PT_query_expression::has_order ( ) const
inline

◆ has_parentheses()

bool PT_query_expression::has_parentheses ( )
inline

◆ is_union()

bool PT_query_expression::is_union ( ) const
inline

◆ remove_parentheses()

void PT_query_expression::remove_parentheses ( )
inline

◆ set_parentheses()

void PT_query_expression::set_parentheses ( )
inline

Member Data Documentation

◆ contextualized

bool PT_query_expression::contextualized
private

◆ m_body

PT_query_expression_body* PT_query_expression::m_body
private

◆ m_limit

PT_limit_clause* PT_query_expression::m_limit
private

◆ m_locking_clauses

PT_locking_clause_list* PT_query_expression::m_locking_clauses
private

◆ m_order

PT_order* PT_query_expression::m_order
private

◆ m_parentheses

bool PT_query_expression::m_parentheses
private

◆ m_with_clause

PT_with_clause* PT_query_expression::m_with_clause
private

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