MySQL 8.4.2
Source Code Documentation
|
Represents an element of the WITH list: WITH [...], [...] SELECT ..., ^ or ^ i.e. More...
#include <parse_tree_nodes.h>
Public Member Functions | |
PT_common_table_expr (const POS &pos, const LEX_STRING &name, const LEX_STRING &subq_text, uint subq_text_offset, PT_subquery *sn, const Create_col_name_list *column_names, MEM_ROOT *mem_root) | |
const LEX_STRING & | name () const |
The name after AS. More... | |
bool | make_subquery_node (THD *thd, PT_subquery **node) |
bool | match_table_ref (Table_ref *tl, bool in_self, bool *found) |
bool | is (const Common_table_expr *other) const |
void | print (const THD *thd, String *str, enum_query_type query_type) |
bool | do_contextualize (Parse_context *pc) override |
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) final |
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... | |
Protected Member Functions | |
void | add_json_info (Json_object *obj) override |
Add all the node-specific json fields. More... | |
Protected Member Functions inherited from Parse_tree_node_tmpl< Context > | |
Parse_tree_node_tmpl ()=delete | |
Parse_tree_node_tmpl (const POS &pos) | |
Parse_tree_node_tmpl (const POS &start_pos, const POS &end_pos) | |
bool | begin_parse_tree (Show_parse_tree *tree) |
bool | end_parse_tree (Show_parse_tree *tree) |
virtual bool | do_contextualize (Context *pc) |
Do all context-sensitive things and mark the node as contextualized. More... | |
Private Types | |
typedef Parse_tree_node | super |
Private Attributes | |
LEX_STRING | m_name |
const LEX_STRING | m_subq_text |
Raw text of query expression (including parentheses) More... | |
uint | m_subq_text_offset |
Offset in bytes of m_subq_text in original statement which had the WITH clause. More... | |
PT_subquery *const | m_subq_node |
Parsed version of subq_text. More... | |
const Create_col_name_list | m_column_names |
List of explicitly specified column names; if empty, no list. More... | |
Common_table_expr | m_postparse |
A Table_ref representing a CTE needs access to the WITH list element it derives from. 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 |
Public Attributes inherited from Parse_tree_node_tmpl< Context > | |
POS | m_pos |
Represents an element of the WITH list: WITH [...], [...] SELECT ..., ^ or ^ i.e.
a Common Table Expression (CTE, or Query Name in SQL99 terms).
|
private |
|
explicit |
|
overrideprotectedvirtual |
Add all the node-specific json fields.
Any class that needs to add such info should override this function rather than doing it in do_contextualize(). E.g. the parse tree node for AVG() may have "distinct" field to indicate if AVG(DISTINCT ...) is used or not.
json_obj | Json object for this parse tree node. |
Reimplemented from Parse_tree_node_tmpl< Context >.
|
override |
|
inline |
|
inline |
The name after AS.
void PT_common_table_expr::print | ( | const THD * | thd, |
String * | str, | ||
enum_query_type | query_type | ||
) |
|
friend |
|
private |
List of explicitly specified column names; if empty, no list.
|
private |
|
private |
A Table_ref representing a CTE needs access to the WITH list element it derives from.
However, in order to:
|
private |
Parsed version of subq_text.
|
private |
Raw text of query expression (including parentheses)
|
private |
Offset in bytes of m_subq_text in original statement which had the WITH clause.