MySQL  8.0.18
Source Code Documentation
dd::Index_impl Class Reference

#include <index_impl.h>

Inheritance diagram for dd::Index_impl:
dd::Entity_object_impl dd::Index dd::Entity_object dd::Weak_object_impl dd::Entity_object dd::Weak_object dd::Weak_object dd::Weak_object

Public Member Functions

 Index_impl ()
 
 Index_impl (Table_impl *table)
 
 Index_impl (const Index_impl &src, Table_impl *parent)
 
virtual ~Index_impl ()
 
virtual const Object_tableobject_table () const
 
virtual bool validate () const
 
virtual bool restore_children (Open_dictionary_tables_ctx *otx)
 
virtual bool store_children (Open_dictionary_tables_ctx *otx)
 
virtual bool drop_children (Open_dictionary_tables_ctx *otx) const
 
virtual bool restore_attributes (const Raw_record &r)
 
virtual bool store_attributes (Raw_record *r)
 
void serialize (Sdi_wcontext *wctx, Sdi_writer *w) const
 Converts *this into json. More...
 
bool deserialize (Sdi_rcontext *rctx, const RJ_Value &val)
 Re-establishes the state of *this by reading sdi information from the rapidjson DOM subobject provided. More...
 
void debug_print (String_type &outb) const
 
virtual void set_ordinal_position (uint ordinal_position)
 
virtual uint ordinal_position () const
 
virtual const Tabletable () const
 
virtual Tabletable ()
 
const Table_impltable_impl () const
 
Table_impltable_impl ()
 
virtual bool is_generated () const
 
virtual void set_generated (bool generated)
 
virtual bool is_hidden () const
 
virtual void set_hidden (bool hidden)
 
virtual const String_typecomment () const
 
virtual void set_comment (const String_type &comment)
 
virtual const Propertiesoptions () const
 
virtual Propertiesoptions ()
 
virtual bool set_options (const Properties &options)
 
virtual bool set_options (const String_type &options_raw)
 
virtual const Propertiesse_private_data () const
 
virtual Propertiesse_private_data ()
 
virtual bool set_se_private_data (const String_type &se_private_data_raw)
 
virtual bool set_se_private_data (const Properties &se_private_data)
 
virtual Object_id tablespace_id () const
 
virtual void set_tablespace_id (Object_id tablespace_id)
 
virtual const String_typeengine () const
 
virtual void set_engine (const String_type &engine)
 
virtual Index::enum_index_type type () const
 
virtual void set_type (Index::enum_index_type type)
 
virtual Index::enum_index_algorithm algorithm () const
 
virtual void set_algorithm (Index::enum_index_algorithm algorithm)
 
virtual bool is_algorithm_explicit () const
 
virtual void set_algorithm_explicit (bool alg_expl)
 
virtual bool is_visible () const
 
virtual void set_visible (bool is_visible)
 
virtual Index_elementadd_element (Column *c)
 
virtual const Index_elementselements () const
 
virtual bool is_candidate_key () const
 Check if index represents candidate key. More...
 
virtual Entity_object_implimpl ()
 
virtual const Entity_object_implimpl () const
 
virtual Object_id id () const
 The unique dictionary object id. More...
 
virtual bool is_persistent () const
 Is dictionary object persistent in dictionary tables ? More...
 
virtual const String_typename () const
 
virtual void set_name (const String_type &name)
 
- Public Member Functions inherited from dd::Entity_object_impl
 Entity_object_impl ()
 
void set_id (Object_id id)
 
virtual Object_keycreate_primary_key () const override
 
virtual bool has_new_primary_key () const override
 Indicates that object is guaranteed to have primary key value which doesn't exist in database (e.g. More...
 
- Public Member Functions inherited from dd::Weak_object
 Weak_object ()
 
 Weak_object (const Weak_object &)=default
 
virtual ~Weak_object ()
 
- Public Member Functions inherited from dd::Weak_object_impl
 Weak_object_impl ()
 
virtual ~Weak_object_impl ()
 
virtual bool store (Open_dictionary_tables_ctx *otx)
 Store the DD object into DD table. More...
 
bool drop (Open_dictionary_tables_ctx *otx) const
 Drop the DD object from DD table. More...
 
- Public Member Functions inherited from dd::Index
virtual ~Index ()
 
const Indexindex () const
 Dummy method to be able to use Partition_index and Index interchangeably in templates. More...
 
Indexindex ()
 

Static Public Member Functions

static void register_tables (Open_dictionary_tables_ctx *otx)
 
static Index_implrestore_item (Table_impl *table)
 
static Index_implclone (const Index_impl &other, Table_impl *table)
 

Private Attributes

bool m_hidden
 
bool m_is_generated
 
uint m_ordinal_position
 
String_type m_comment
 
Properties_impl m_options
 
Properties_impl m_se_private_data
 
Index::enum_index_type m_type
 
Index::enum_index_algorithm m_algorithm
 
bool m_is_algorithm_explicit
 
bool m_is_visible
 
String_type m_engine
 
Table_implm_table
 
Index_elements m_elements
 
Object_id m_tablespace_id
 

Additional Inherited Members

- Public Types inherited from dd::Index
enum  enum_index_type {
  IT_PRIMARY = 1, IT_UNIQUE, IT_MULTIPLE, IT_FULLTEXT,
  IT_SPATIAL
}
 
enum  enum_index_algorithm {
  IA_SE_SPECIFIC = 1, IA_BTREE, IA_RTREE, IA_HASH,
  IA_FULLTEXT
}
 
typedef Collection< Index_element * > Index_elements
 
typedef Index_impl Impl
 
typedef tables::Indexes DD_table
 
- Protected Member Functions inherited from dd::Entity_object_impl
virtual void set_primary_key_value (const Raw_new_record &r) override
 
virtual void fix_has_new_primary_key () override
 
void restore_id (const Raw_record &r, int field_idx)
 
void restore_name (const Raw_record &r, int field_idx)
 
bool store_id (Raw_record *r, int field_idx)
 
bool store_name (Raw_record *r, int field_idx)
 
bool store_name (Raw_record *r, int field_idx, bool is_null)
 
void serialize (Sdi_wcontext *wctx, Sdi_writer *w) const
 
bool deserialize (Sdi_rcontext *rctx, const RJ_Value &val)
 
 Entity_object_impl (const Entity_object_impl &src)
 
- Protected Member Functions inherited from dd::Weak_object_impl
bool check_parent_consistency (Entity_object_impl *parent, Object_id parent_id) const
 

Constructor & Destructor Documentation

◆ Index_impl() [1/3]

dd::Index_impl::Index_impl ( )

◆ Index_impl() [2/3]

dd::Index_impl::Index_impl ( Table_impl table)

◆ Index_impl() [3/3]

dd::Index_impl::Index_impl ( const Index_impl src,
Table_impl parent 
)

◆ ~Index_impl()

dd::Index_impl::~Index_impl ( )
virtual

Member Function Documentation

◆ add_element()

Index_element * dd::Index_impl::add_element ( Column c)
virtual

Implements dd::Index.

◆ algorithm()

virtual Index::enum_index_algorithm dd::Index_impl::algorithm ( ) const
inlinevirtual

Implements dd::Index.

◆ clone()

static Index_impl* dd::Index_impl::clone ( const Index_impl other,
Table_impl table 
)
inlinestatic

◆ comment()

virtual const String_type& dd::Index_impl::comment ( ) const
inlinevirtual

Implements dd::Index.

◆ debug_print()

void dd::Index_impl::debug_print ( String_type outb) const
virtual

Implements dd::Weak_object.

◆ deserialize()

bool dd::Index_impl::deserialize ( Sdi_rcontext rctx,
const RJ_Value val 
)
virtual

Re-establishes the state of *this by reading sdi information from the rapidjson DOM subobject provided.

Cross-references encountered within this object are tracked in sdictx, so that they can be updated when the entire object graph has been established.

Parameters
rctxstores book-keeping information for the deserialization process
valsubobject of rapidjson DOM containing json representation of this object

Implements dd::Index.

◆ drop_children()

bool dd::Index_impl::drop_children ( Open_dictionary_tables_ctx otx) const
virtual

Reimplemented from dd::Weak_object_impl.

◆ elements()

virtual const Index_elements& dd::Index_impl::elements ( ) const
inlinevirtual

Implements dd::Index.

◆ engine()

virtual const String_type& dd::Index_impl::engine ( ) const
inlinevirtual

Implements dd::Index.

◆ id()

virtual Object_id dd::Index_impl::id ( ) const
inlinevirtual

The unique dictionary object id.

Reimplemented from dd::Entity_object_impl.

◆ impl() [1/2]

virtual Entity_object_impl* dd::Index_impl::impl ( )
inlinevirtual

Reimplemented from dd::Entity_object_impl.

◆ impl() [2/2]

virtual const Entity_object_impl* dd::Index_impl::impl ( ) const
inlinevirtual

Reimplemented from dd::Entity_object_impl.

◆ is_algorithm_explicit()

virtual bool dd::Index_impl::is_algorithm_explicit ( ) const
inlinevirtual

Implements dd::Index.

◆ is_candidate_key()

bool dd::Index_impl::is_candidate_key ( ) const
virtual

Check if index represents candidate key.

Note
This function is in sync with how we evaluate TABLE_SHARE::primary_key.

Implements dd::Index.

◆ is_generated()

virtual bool dd::Index_impl::is_generated ( ) const
inlinevirtual

Implements dd::Index.

◆ is_hidden()

virtual bool dd::Index_impl::is_hidden ( ) const
inlinevirtual

Implements dd::Index.

◆ is_persistent()

virtual bool dd::Index_impl::is_persistent ( ) const
inlinevirtual

Is dictionary object persistent in dictionary tables ?

Reimplemented from dd::Entity_object_impl.

◆ is_visible()

virtual bool dd::Index_impl::is_visible ( ) const
inlinevirtual

Implements dd::Index.

◆ name()

virtual const String_type& dd::Index_impl::name ( ) const
inlinevirtual

Reimplemented from dd::Entity_object_impl.

◆ object_table()

const Object_table & dd::Index_impl::object_table ( ) const
virtual

Implements dd::Weak_object_impl.

◆ options() [1/2]

virtual const Properties& dd::Index_impl::options ( ) const
inlinevirtual

Implements dd::Index.

◆ options() [2/2]

virtual Properties& dd::Index_impl::options ( )
inlinevirtual

Implements dd::Index.

◆ ordinal_position()

virtual uint dd::Index_impl::ordinal_position ( ) const
inlinevirtual

Implements dd::Index.

◆ register_tables()

void dd::Index_impl::register_tables ( Open_dictionary_tables_ctx otx)
static

◆ restore_attributes()

bool dd::Index_impl::restore_attributes ( const Raw_record r)
virtual

Implements dd::Weak_object_impl.

◆ restore_children()

bool dd::Index_impl::restore_children ( Open_dictionary_tables_ctx otx)
virtual

Reimplemented from dd::Weak_object_impl.

◆ restore_item()

static Index_impl* dd::Index_impl::restore_item ( Table_impl table)
inlinestatic

◆ se_private_data() [1/2]

virtual const Properties& dd::Index_impl::se_private_data ( ) const
inlinevirtual

Implements dd::Index.

◆ se_private_data() [2/2]

virtual Properties& dd::Index_impl::se_private_data ( )
inlinevirtual

Implements dd::Index.

◆ serialize()

void dd::Index_impl::serialize ( Sdi_wcontext wctx,
Sdi_writer w 
) const
virtual

Converts *this into json.

Converts all member variables that are to be included in the sdi into json by transforming them appropriately and passing them to the rapidjson writer provided.

Parameters
wctxopaque context for data needed by serialization
wrapidjson writer which will perform conversion to json

Implements dd::Index.

◆ set_algorithm()

virtual void dd::Index_impl::set_algorithm ( Index::enum_index_algorithm  algorithm)
inlinevirtual

Implements dd::Index.

◆ set_algorithm_explicit()

virtual void dd::Index_impl::set_algorithm_explicit ( bool  alg_expl)
inlinevirtual

Implements dd::Index.

◆ set_comment()

virtual void dd::Index_impl::set_comment ( const String_type comment)
inlinevirtual

Implements dd::Index.

◆ set_engine()

virtual void dd::Index_impl::set_engine ( const String_type engine)
inlinevirtual

Implements dd::Index.

◆ set_generated()

virtual void dd::Index_impl::set_generated ( bool  generated)
inlinevirtual

Implements dd::Index.

◆ set_hidden()

virtual void dd::Index_impl::set_hidden ( bool  hidden)
inlinevirtual

Implements dd::Index.

◆ set_name()

virtual void dd::Index_impl::set_name ( const String_type name)
inlinevirtual

Reimplemented from dd::Entity_object_impl.

◆ set_options() [1/2]

virtual bool dd::Index_impl::set_options ( const Properties options)
inlinevirtual

Implements dd::Index.

◆ set_options() [2/2]

virtual bool dd::Index_impl::set_options ( const String_type options_raw)
inlinevirtual

Implements dd::Index.

◆ set_ordinal_position()

virtual void dd::Index_impl::set_ordinal_position ( uint  ordinal_position)
inlinevirtual

Implements dd::Index.

◆ set_se_private_data() [1/2]

virtual bool dd::Index_impl::set_se_private_data ( const String_type se_private_data_raw)
inlinevirtual

Implements dd::Index.

◆ set_se_private_data() [2/2]

virtual bool dd::Index_impl::set_se_private_data ( const Properties se_private_data)
inlinevirtual

Implements dd::Index.

◆ set_tablespace_id()

virtual void dd::Index_impl::set_tablespace_id ( Object_id  tablespace_id)
inlinevirtual

Implements dd::Index.

◆ set_type()

virtual void dd::Index_impl::set_type ( Index::enum_index_type  type)
inlinevirtual

Implements dd::Index.

◆ set_visible()

virtual void dd::Index_impl::set_visible ( bool  is_visible)
inlinevirtual

Implements dd::Index.

◆ store_attributes()

bool dd::Index_impl::store_attributes ( Raw_record r)
virtual

Implements dd::Weak_object_impl.

◆ store_children()

bool dd::Index_impl::store_children ( Open_dictionary_tables_ctx otx)
virtual

Reimplemented from dd::Weak_object_impl.

◆ table() [1/2]

const Table & dd::Index_impl::table ( ) const
virtual

Implements dd::Index.

◆ table() [2/2]

Table & dd::Index_impl::table ( )
virtual

Implements dd::Index.

◆ table_impl() [1/2]

const Table_impl& dd::Index_impl::table_impl ( ) const
inline

◆ table_impl() [2/2]

Table_impl& dd::Index_impl::table_impl ( )
inline

◆ tablespace_id()

virtual Object_id dd::Index_impl::tablespace_id ( ) const
inlinevirtual

Implements dd::Index.

◆ type()

virtual Index::enum_index_type dd::Index_impl::type ( ) const
inlinevirtual

Implements dd::Index.

◆ validate()

bool dd::Index_impl::validate ( ) const
virtual

Implements dd::Weak_object_impl.

Member Data Documentation

◆ m_algorithm

Index::enum_index_algorithm dd::Index_impl::m_algorithm
private

◆ m_comment

String_type dd::Index_impl::m_comment
private

◆ m_elements

Index_elements dd::Index_impl::m_elements
private

◆ m_engine

String_type dd::Index_impl::m_engine
private

◆ m_hidden

bool dd::Index_impl::m_hidden
private

◆ m_is_algorithm_explicit

bool dd::Index_impl::m_is_algorithm_explicit
private

◆ m_is_generated

bool dd::Index_impl::m_is_generated
private

◆ m_is_visible

bool dd::Index_impl::m_is_visible
private

◆ m_options

Properties_impl dd::Index_impl::m_options
private

◆ m_ordinal_position

uint dd::Index_impl::m_ordinal_position
private

◆ m_se_private_data

Properties_impl dd::Index_impl::m_se_private_data
private

◆ m_table

Table_impl* dd::Index_impl::m_table
private

◆ m_tablespace_id

Object_id dd::Index_impl::m_tablespace_id
private

◆ m_type

Index::enum_index_type dd::Index_impl::m_type
private

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