MySQL  8.0.16
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:
Parse_tree_node_tmpl< Context >

Public Member Functions

 PT_with_clause (const PT_with_list *l, bool r)
 
virtual bool contextualize (Parse_context *pc)
 
bool lookup (TABLE_LIST *tl, PT_common_table_expr **found)
 Looks up a table reference into the list of CTEs. More...
 
const TABLE_LISTenter_parsing_definition (TABLE_LIST *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_LIST *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 ()
 
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 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_LISTm_most_inner_in_parsing
 The innermost CTE reference which we're parsing at the moment. More...
 

Friends

bool SELECT_LEX_UNIT::clear_corr_ctes ()
 

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

virtual bool PT_with_clause::contextualize ( Parse_context pc)
inlinevirtual

◆ enter_parsing_definition()

const TABLE_LIST* PT_with_clause::enter_parsing_definition ( TABLE_LIST 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_LIST old)
inline

◆ print()

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

Friends And Related Function Documentation

◆ SELECT_LEX_UNIT::clear_corr_ctes

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_LIST* 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: