MySQL 8.3.0
Source Code Documentation
PT_joined_table_using Class Reference

#include <parse_tree_nodes.h>

Inheritance diagram for PT_joined_table_using:
[legend]

Public Member Functions

 PT_joined_table_using (const POS &pos, PT_table_reference *tab1_node_arg, const POS &join_pos_arg, PT_joined_table_type type, PT_table_reference *tab2_node_arg, List< String > *using_fields_arg)
 
 PT_joined_table_using (const POS &pos, PT_table_reference *tab1_node_arg, const POS &join_pos_arg, PT_joined_table_type type, PT_table_reference *tab2_node_arg)
 A PT_joined_table_using without a list of columns denotes a natural join. More...
 
bool do_contextualize (Parse_context *pc) override
 
- Public Member Functions inherited from PT_joined_table
 PT_joined_table (const POS &pos, PT_table_reference *tab1_node_arg, const POS &join_pos_arg, PT_joined_table_type type, PT_table_reference *tab2_node_arg)
 
PT_joined_tableadd_cross_join (PT_cross_join *cj) override
 Adds the cross join to this join operation. More...
 
void add_rhs (PT_table_reference *table)
 Adds the table reference as the right-hand side of this join. More...
 
bool do_contextualize (Parse_context *pc) override
 
 ~PT_joined_table () override=0
 This class is being inherited, it should thus be abstract. More...
 
- Public Member Functions inherited from PT_table_reference
 PT_table_reference (const POS &pos)
 
- 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 PT_joined_table
bool contextualize_tabs (Parse_context *pc)
 
- 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 PT_joined_table super
 

Private Attributes

List< String > * using_fields
 

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 PT_table_reference
Table_refm_table_ref {nullptr}
 
- Public Attributes inherited from Parse_tree_node_tmpl< Context >
POS m_pos
 
- Protected Attributes inherited from PT_joined_table
PT_table_referencem_left_pt_table
 
POS m_join_pos
 
PT_joined_table_type m_type
 
PT_table_referencem_right_pt_table
 
Table_refm_left_table_ref {nullptr}
 
Table_refm_right_table_ref {nullptr}
 

Member Typedef Documentation

◆ super

Constructor & Destructor Documentation

◆ PT_joined_table_using() [1/2]

PT_joined_table_using::PT_joined_table_using ( const POS pos,
PT_table_reference tab1_node_arg,
const POS join_pos_arg,
PT_joined_table_type  type,
PT_table_reference tab2_node_arg,
List< String > *  using_fields_arg 
)
inline

◆ PT_joined_table_using() [2/2]

PT_joined_table_using::PT_joined_table_using ( const POS pos,
PT_table_reference tab1_node_arg,
const POS join_pos_arg,
PT_joined_table_type  type,
PT_table_reference tab2_node_arg 
)
inline

A PT_joined_table_using without a list of columns denotes a natural join.

Member Function Documentation

◆ add_json_info()

void PT_joined_table_using::add_json_info ( Json_object json_obj)
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.

Parameters
json_objJson object for this parse tree node.

Reimplemented from PT_joined_table.

◆ do_contextualize()

bool PT_joined_table_using::do_contextualize ( Parse_context pc)
override

Member Data Documentation

◆ using_fields

List<String>* PT_joined_table_using::using_fields
private

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