MySQL 8.0.46
Source Code Documentation
PT_with_clause Class Reference

Represents the WITH clause: WITH [...], [...] SELECT ..., ^^^^^^^^^^^^^^^^^. More...

#include <parse_tree_nodes.h>

Inheritance diagram for PT_with_clause:
[legend]

Public Member Functions

 PT_with_clause (const PT_with_list *l, bool r)
 
bool contextualize (Parse_context *pc) override
 
bool lookup (Table_ref *tl, PT_common_table_expr **found)
 Looks up a table reference into the list of CTEs. More...
 
const Table_ref * enter_parsing_definition (Table_ref *tl)
 Call this to record in the WITH clause that we are contextualizing the CTE definition inserted in table reference 'tl'. More...
 
void leave_parsing_definition (const Table_ref *old)
 
void print (const THD *thd, String *str, enum_query_type query_type)
 
- Public Member Functions inherited from Parse_tree_node_tmpl< Context >
virtual ~Parse_tree_node_tmpl ()=default
 
bool is_contextualized () const
 
virtual bool contextualize (Context *pc)
 Do all context-sensitive things and mark the node as contextualized. 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 Types

typedef Parse_tree_node super
 

Private Attributes

const PT_with_list *const m_list
 All CTEs of this clause. More...
 
const bool m_recursive
 True if the user has specified the RECURSIVE keyword. More...
 
const Table_ref * m_most_inner_in_parsing
 The innermost CTE reference which we're parsing at the moment. More...
 

Friends

bool Query_expression::clear_correlated_query_blocks ()
 

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 ()
 

Detailed Description

Represents the WITH clause: WITH [...], [...] SELECT ..., ^^^^^^^^^^^^^^^^^.

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ PT_with_clause()

PT_with_clause::PT_with_clause ( const PT_with_list *  l,
bool  r 
)
inline

Member Function Documentation

◆ contextualize()

bool PT_with_clause::contextualize ( Parse_context *  pc)
override

◆ enter_parsing_definition()

const Table_ref * PT_with_clause::enter_parsing_definition ( Table_ref *  tl)
inline

Call this to record in the WITH clause that we are contextualizing the CTE definition inserted in table reference 'tl'.

Returns
information which the caller must provide to leave_parsing_definition().

◆ leave_parsing_definition()

void PT_with_clause::leave_parsing_definition ( const Table_ref *  old)
inline

◆ print()

void PT_with_clause::print ( const THD *  thd,
String *  str,
enum_query_type  query_type 
)

Friends And Related Function Documentation

◆ Query_expression::clear_correlated_query_blocks

Member Data Documentation

◆ m_list

const PT_with_list* const PT_with_clause::m_list
private

All CTEs of this clause.

◆ m_most_inner_in_parsing

const Table_ref* PT_with_clause::m_most_inner_in_parsing
private

The innermost CTE reference which we're parsing at the moment.

Used to detect forward references, loops and recursiveness.

◆ m_recursive

const bool PT_with_clause::m_recursive
private

True if the user has specified the RECURSIVE keyword.


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