MySQL 9.6.0
Source Code Documentation
Foreign_key_chain Class Reference

Class to store all foreign key names during CASCADE. More...

Public Member Functions

void add_foreign_key (const char *db_name, const char *fk_name)
 
void remove_foreign_key (const char *db_name, const char *fk_name)
 
void add_parent_table (const char *db_name, const char *tbl_name)
 
void remove_parent_table (const char *db_name, const char *tbl_name)
 
bool foreign_key_exists (const char *db_name, const char *fk_name)
 
bool table_exists (const char *db_name, const char *tbl_name)
 
void mark_child_visited (const char *db_name, const char *tbl_name, int key_pos)
 
bool is_child_visited (const char *db_name, const char *tbl_name, int key_pos)
 
void mark_parent_visited (const char *db_name, const char *tbl_name, int key_pos)
 
bool is_parent_visited (const char *db_name, const char *tbl_name, int key_pos)
 
uint size () const
 
bool is_empty () const
 

Private Types

using Name_pair = std::multiset< std::pair< const char *, const char * > >
 
using Visited_keys = std::multiset< std::tuple< const char *, const char *, int > >
 

Private Attributes

Name_pair m_foreign_keys
 
Visited_keys m_visited_child_keys
 
Name_pair m_parent_tables
 
Visited_keys m_visited_parent_keys
 

Detailed Description

Class to store all foreign key names during CASCADE.

Used to identify circular referencing.

Member Typedef Documentation

◆ Name_pair

using Foreign_key_chain::Name_pair = std::multiset<std::pair<const char *, const char *> >
private

◆ Visited_keys

using Foreign_key_chain::Visited_keys = std::multiset<std::tuple<const char *, const char *, int> >
private

Member Function Documentation

◆ add_foreign_key()

void Foreign_key_chain::add_foreign_key ( const char *  db_name,
const char *  fk_name 
)
inline

◆ add_parent_table()

void Foreign_key_chain::add_parent_table ( const char *  db_name,
const char *  tbl_name 
)
inline

◆ foreign_key_exists()

bool Foreign_key_chain::foreign_key_exists ( const char *  db_name,
const char *  fk_name 
)
inline

◆ is_child_visited()

bool Foreign_key_chain::is_child_visited ( const char *  db_name,
const char *  tbl_name,
int  key_pos 
)
inline

◆ is_empty()

bool Foreign_key_chain::is_empty ( void  ) const
inline

◆ is_parent_visited()

bool Foreign_key_chain::is_parent_visited ( const char *  db_name,
const char *  tbl_name,
int  key_pos 
)
inline

◆ mark_child_visited()

void Foreign_key_chain::mark_child_visited ( const char *  db_name,
const char *  tbl_name,
int  key_pos 
)
inline

◆ mark_parent_visited()

void Foreign_key_chain::mark_parent_visited ( const char *  db_name,
const char *  tbl_name,
int  key_pos 
)
inline

◆ remove_foreign_key()

void Foreign_key_chain::remove_foreign_key ( const char *  db_name,
const char *  fk_name 
)
inline

◆ remove_parent_table()

void Foreign_key_chain::remove_parent_table ( const char *  db_name,
const char *  tbl_name 
)
inline

◆ size()

uint Foreign_key_chain::size ( ) const
inline

◆ table_exists()

bool Foreign_key_chain::table_exists ( const char *  db_name,
const char *  tbl_name 
)
inline

Member Data Documentation

◆ m_foreign_keys

Name_pair Foreign_key_chain::m_foreign_keys
private

◆ m_parent_tables

Name_pair Foreign_key_chain::m_parent_tables
private

◆ m_visited_child_keys

Visited_keys Foreign_key_chain::m_visited_child_keys
private

◆ m_visited_parent_keys

Visited_keys Foreign_key_chain::m_visited_parent_keys
private

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