MySQL 9.4.0
Source Code Documentation
jdv::Content_tree_node Class Reference

#include <content_tree.h>

Public Types

enum class  Type { INVALID , ROOT , SINGLETON_CHILD , NESTED_CHILD }
 Types of object. More...
 

Public Member Functions

 Content_tree_node ()=default
 
 ~Content_tree_node ()=default
 
 Content_tree_node (MEM_ROOT *mem_root)
 
void set_name (const char *name)
 
const std::string_view & name () const
 
void set_tmp_table_id (uint id)
 
uint tmp_table_id () const
 
void set_query_expression (Query_expression *qe)
 
const Query_expressionquery_expression () const
 
void set_table_ref (Table_ref *table_ref)
 
const Table_reftable_ref () const
 
void set_qualified_table_name (const char *qname)
 
const std::string_view & qualified_table_name () const
 
void set_quoted_qualified_table_name (std::string &&qname)
 
const std::string & quoted_qualified_table_name () const
 
void set_table_tags (Duality_view_tags table_tags)
 
Duality_view_tags table_tags () const
 
bool allows_insert () const
 
bool allows_update () const
 
bool allows_delete () const
 
bool read_only () const
 
void set_type (Type type)
 
Type type () const
 
const char * type_string () const
 
bool is_root_object () const
 
bool is_singleton_child () const
 
bool is_nested_child () const
 
void set_parent (Content_tree_node *parent)
 
Content_tree_nodeparent () const
 
Mem_root_array< Content_tree_node * > * children ()
 
const Mem_root_array< Content_tree_node * > & children () const
 
Mem_root_array< Key_column_info > * key_column_info_list ()
 
const Mem_root_array< Key_column_info > & key_column_info_list () const
 
std::map< std::string_view, std::size_t > * key_column_map ()
 
const std::map< std::string_view, std::size_t > & key_column_map () const
 
void set_primary_key_column_index (std::size_t key_col_idx)
 
std::size_t primary_key_column_index () const
 
bool is_primary_key_column_projected ()
 
const Key_column_infoprimary_key_column () const
 
void set_join_column_index (std::size_t join_col_idx)
 
std::size_t join_column_index () const
 
bool has_join_condition () const
 
const Key_column_infojoin_column_info () const
 
void set_parent_join_column_index (std::size_t join_col_idx)
 
std::size_t parent_join_column_index () const
 
const Key_column_infoparent_join_column_info () const
 
void set_join_column_index (std::size_t join_col_idx, bool is_parent)
 
std::size_t join_column_index (bool is_parent) const
 
void set_dependency_weight (int weight)
 
int dependency_weight () const
 

Private Attributes

std::string_view m_name
 Name of this node. More...
 
uint m_tmp_table_id {0}
 Temporary id created for I_S. More...
 
const Query_expressionm_query_expression {nullptr}
 Object query expression. More...
 
const Table_refm_table_ref {nullptr}
 Table_ref instance of query table. More...
 
std::string_view m_qualified_table_name
 Qualified table name. More...
 
std::string m_quoted_qualified_table_name
 Qualified table name with quotes. More...
 
Duality_view_tags m_table_tags {0}
 Table level DV tags. More...
 
Type m_type {Type::INVALID}
 Node type. More...
 
Content_tree_nodem_parent {nullptr}
 Parent node. More...
 
Mem_root_array< Content_tree_node * > m_children
 List of children nodes. More...
 
Mem_root_array< Key_column_infom_key_column_info_list
 List of base columns with tags and key information. More...
 
std::map< std::string_view, std::size_t > m_key_column_map
 Key to base columns in m_key_column_info_list map. More...
 
std::size_t m_primary_key_column {VOID_COLUMN_INDEX}
 Index of primary key column in m_key_column_info_list. More...
 
std::size_t m_join_column_index {VOID_COLUMN_INDEX}
 Index of join condition column in m_key_column_info_list. More...
 
std::size_t m_parent_join_column_index {VOID_COLUMN_INDEX}
 Index of join condition column in Parent's m_key_column_info_list. More...
 
int m_dependency_weight {0}
 Dependency weight to order DML operations. More...
 

Member Enumeration Documentation

◆ Type

enum class jdv::Content_tree_node::Type
strong

Types of object.

Enumerator
INVALID 
ROOT 
SINGLETON_CHILD 
NESTED_CHILD 

Constructor & Destructor Documentation

◆ Content_tree_node() [1/2]

jdv::Content_tree_node::Content_tree_node ( )
default

◆ ~Content_tree_node()

jdv::Content_tree_node::~Content_tree_node ( )
default

◆ Content_tree_node() [2/2]

jdv::Content_tree_node::Content_tree_node ( MEM_ROOT mem_root)
inline

Member Function Documentation

◆ allows_delete()

bool jdv::Content_tree_node::allows_delete ( ) const
inline

◆ allows_insert()

bool jdv::Content_tree_node::allows_insert ( ) const
inline

◆ allows_update()

bool jdv::Content_tree_node::allows_update ( ) const
inline

◆ children() [1/2]

Mem_root_array< Content_tree_node * > * jdv::Content_tree_node::children ( )
inline

◆ children() [2/2]

const Mem_root_array< Content_tree_node * > & jdv::Content_tree_node::children ( ) const
inline

◆ dependency_weight()

int jdv::Content_tree_node::dependency_weight ( ) const
inline

◆ has_join_condition()

bool jdv::Content_tree_node::has_join_condition ( ) const
inline

◆ is_nested_child()

bool jdv::Content_tree_node::is_nested_child ( ) const
inline

◆ is_primary_key_column_projected()

bool jdv::Content_tree_node::is_primary_key_column_projected ( )
inline

◆ is_root_object()

bool jdv::Content_tree_node::is_root_object ( ) const
inline

◆ is_singleton_child()

bool jdv::Content_tree_node::is_singleton_child ( ) const
inline

◆ join_column_index() [1/2]

std::size_t jdv::Content_tree_node::join_column_index ( ) const
inline

◆ join_column_index() [2/2]

std::size_t jdv::Content_tree_node::join_column_index ( bool  is_parent) const
inline

◆ join_column_info()

const Key_column_info & jdv::Content_tree_node::join_column_info ( ) const
inline

◆ key_column_info_list() [1/2]

Mem_root_array< Key_column_info > * jdv::Content_tree_node::key_column_info_list ( )
inline

◆ key_column_info_list() [2/2]

const Mem_root_array< Key_column_info > & jdv::Content_tree_node::key_column_info_list ( ) const
inline

◆ key_column_map() [1/2]

std::map< std::string_view, std::size_t > * jdv::Content_tree_node::key_column_map ( )
inline

◆ key_column_map() [2/2]

const std::map< std::string_view, std::size_t > & jdv::Content_tree_node::key_column_map ( ) const
inline

◆ name()

const std::string_view & jdv::Content_tree_node::name ( ) const
inline

◆ parent()

Content_tree_node * jdv::Content_tree_node::parent ( ) const
inline

◆ parent_join_column_index()

std::size_t jdv::Content_tree_node::parent_join_column_index ( ) const
inline

◆ parent_join_column_info()

const Key_column_info & jdv::Content_tree_node::parent_join_column_info ( ) const
inline

◆ primary_key_column()

const Key_column_info & jdv::Content_tree_node::primary_key_column ( ) const
inline

◆ primary_key_column_index()

std::size_t jdv::Content_tree_node::primary_key_column_index ( ) const
inline

◆ qualified_table_name()

const std::string_view & jdv::Content_tree_node::qualified_table_name ( ) const
inline

◆ query_expression()

const Query_expression * jdv::Content_tree_node::query_expression ( ) const
inline

◆ quoted_qualified_table_name()

const std::string & jdv::Content_tree_node::quoted_qualified_table_name ( ) const
inline

◆ read_only()

bool jdv::Content_tree_node::read_only ( ) const
inline

◆ set_dependency_weight()

void jdv::Content_tree_node::set_dependency_weight ( int  weight)
inline

◆ set_join_column_index() [1/2]

void jdv::Content_tree_node::set_join_column_index ( std::size_t  join_col_idx)
inline

◆ set_join_column_index() [2/2]

void jdv::Content_tree_node::set_join_column_index ( std::size_t  join_col_idx,
bool  is_parent 
)
inline

◆ set_name()

void jdv::Content_tree_node::set_name ( const char *  name)
inline

◆ set_parent()

void jdv::Content_tree_node::set_parent ( Content_tree_node parent)
inline

◆ set_parent_join_column_index()

void jdv::Content_tree_node::set_parent_join_column_index ( std::size_t  join_col_idx)
inline

◆ set_primary_key_column_index()

void jdv::Content_tree_node::set_primary_key_column_index ( std::size_t  key_col_idx)
inline

◆ set_qualified_table_name()

void jdv::Content_tree_node::set_qualified_table_name ( const char *  qname)
inline

◆ set_query_expression()

void jdv::Content_tree_node::set_query_expression ( Query_expression qe)
inline

◆ set_quoted_qualified_table_name()

void jdv::Content_tree_node::set_quoted_qualified_table_name ( std::string &&  qname)
inline

◆ set_table_ref()

void jdv::Content_tree_node::set_table_ref ( Table_ref table_ref)
inline

◆ set_table_tags()

void jdv::Content_tree_node::set_table_tags ( Duality_view_tags  table_tags)
inline

◆ set_tmp_table_id()

void jdv::Content_tree_node::set_tmp_table_id ( uint  id)
inline

◆ set_type()

void jdv::Content_tree_node::set_type ( Type  type)
inline

◆ table_ref()

const Table_ref * jdv::Content_tree_node::table_ref ( ) const
inline

◆ table_tags()

Duality_view_tags jdv::Content_tree_node::table_tags ( ) const
inline

◆ tmp_table_id()

uint jdv::Content_tree_node::tmp_table_id ( ) const
inline

◆ type()

Type jdv::Content_tree_node::type ( ) const
inline

◆ type_string()

const char * jdv::Content_tree_node::type_string ( ) const
inline

Member Data Documentation

◆ m_children

Mem_root_array<Content_tree_node *> jdv::Content_tree_node::m_children
private

List of children nodes.

◆ m_dependency_weight

int jdv::Content_tree_node::m_dependency_weight {0}
private

Dependency weight to order DML operations.

◆ m_join_column_index

std::size_t jdv::Content_tree_node::m_join_column_index {VOID_COLUMN_INDEX}
private

Index of join condition column in m_key_column_info_list.

◆ m_key_column_info_list

Mem_root_array<Key_column_info> jdv::Content_tree_node::m_key_column_info_list
private

List of base columns with tags and key information.

◆ m_key_column_map

std::map<std::string_view, std::size_t> jdv::Content_tree_node::m_key_column_map
private

Key to base columns in m_key_column_info_list map.

◆ m_name

std::string_view jdv::Content_tree_node::m_name
private

Name of this node.

Holds "Root Node" for Root and Key name for descendents.

◆ m_parent

Content_tree_node* jdv::Content_tree_node::m_parent {nullptr}
private

Parent node.

◆ m_parent_join_column_index

std::size_t jdv::Content_tree_node::m_parent_join_column_index {VOID_COLUMN_INDEX}
private

Index of join condition column in Parent's m_key_column_info_list.

◆ m_primary_key_column

std::size_t jdv::Content_tree_node::m_primary_key_column {VOID_COLUMN_INDEX}
private

Index of primary key column in m_key_column_info_list.

◆ m_qualified_table_name

std::string_view jdv::Content_tree_node::m_qualified_table_name
private

Qualified table name.

◆ m_query_expression

const Query_expression* jdv::Content_tree_node::m_query_expression {nullptr}
private

Object query expression.

◆ m_quoted_qualified_table_name

std::string jdv::Content_tree_node::m_quoted_qualified_table_name
private

Qualified table name with quotes.

◆ m_table_ref

const Table_ref* jdv::Content_tree_node::m_table_ref {nullptr}
private

Table_ref instance of query table.

◆ m_table_tags

Duality_view_tags jdv::Content_tree_node::m_table_tags {0}
private

Table level DV tags.

◆ m_tmp_table_id

uint jdv::Content_tree_node::m_tmp_table_id {0}
private

Temporary id created for I_S.

◆ m_type

Type jdv::Content_tree_node::m_type {Type::INVALID}
private

Node type.


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