#include "univ.i"
#include "mtr0mtr.h"
#include "mtr0log.h"
#include "ut0byte.h"
#include "buf0buf.h"
#include "fsp0fsp.h"
#include "dict0dict.h"
Go to the source code of this file.
Defines | |
#define | DICT_HDR_SPACE 0 /* the SYSTEM tablespace */ |
#define | DICT_HDR_PAGE_NO FSP_DICT_HDR_PAGE_NO |
#define | DICT_TABLES_ID 1 |
#define | DICT_COLUMNS_ID 2 |
#define | DICT_INDEXES_ID 3 |
#define | DICT_FIELDS_ID 4 |
#define | DICT_TABLE_IDS_ID 5 |
#define | DICT_HDR_FIRST_ID |
#define | DICT_IBUF_ID_MIN 0xFFFFFFFF00000000ULL |
#define | DICT_HDR FSEG_PAGE_DATA |
#define | DICT_HDR_ROW_ID 0 /* The latest assigned row id */ |
#define | DICT_HDR_TABLE_ID 8 /* The latest assigned table id */ |
#define | DICT_HDR_INDEX_ID 16 /* The latest assigned index id */ |
#define | DICT_HDR_MAX_SPACE_ID 24 /* The latest assigned space id, or 0*/ |
#define | DICT_HDR_MIX_ID_LOW 28 /* Obsolete,always DICT_HDR_FIRST_ID */ |
#define | DICT_HDR_TABLES 32 /* Root of the table index tree */ |
#define | DICT_HDR_TABLE_IDS 36 /* Root of the table index tree */ |
#define | DICT_HDR_COLUMNS 40 /* Root of the column index tree */ |
#define | DICT_HDR_INDEXES 44 /* Root of the index index tree */ |
#define | DICT_HDR_FIELDS |
#define | DICT_HDR_FSEG_HEADER |
#define | DICT_SYS_INDEXES_PAGE_NO_FIELD 8 |
#define | DICT_SYS_INDEXES_SPACE_NO_FIELD 7 |
#define | DICT_SYS_INDEXES_TYPE_FIELD 6 |
#define | DICT_SYS_INDEXES_NAME_FIELD 4 |
#define | DICT_HDR_ROW_ID_WRITE_MARGIN 256 |
Typedefs | |
typedef byte | dict_hdr_t |
Functions | |
UNIV_INTERN dict_hdr_t * | dict_hdr_get (mtr_t *mtr) |
UNIV_INTERN void | dict_hdr_get_new_id (table_id_t *table_id, index_id_t *index_id, ulint *space_id) |
UNIV_INLINE row_id_t | dict_sys_get_new_row_id (void) |
UNIV_INLINE row_id_t | dict_sys_read_row_id (const byte *field) |
UNIV_INLINE void | dict_sys_write_row_id (byte *field, row_id_t row_id) |
UNIV_INTERN void | dict_boot (void) |
UNIV_INTERN void | dict_create (void) |
#define DICT_HDR_FIELDS |
48 /* Root of the index field index tree */
Definition at line 128 of file dict0boot.h.
#define DICT_HDR_FIRST_ID |
10 /* the ids for tables etc. start from this number, except for basic system tables and their above defined indexes; ibuf tables and indexes are assigned as the id the number DICT_IBUF_ID_MIN plus the space id */
Definition at line 111 of file dict0boot.h.
#define DICT_HDR_FSEG_HEADER |
56 /* Segment header for the tablespace segment into which the dictionary header is created */
Definition at line 130 of file dict0boot.h.
UNIV_INTERN void dict_boot | ( | void | ) |
Initializes the data dictionary memory structures when the database is started. This function is also called when the data dictionary is created.
Definition at line 247 of file dict0boot.cc.
References DICT_CLUSTERED, DICT_UNIQUE, dict_index_struct::id, dict_table_struct::id, mach_read_from_8(), mem_heap_create, mem_heap_empty(), mem_heap_free, MLOG_4BYTES, mtr_commit(), mtr_read_ulint(), mtr_start(), dict_sys_struct::mutex, dict_sys_struct::row_id, dict_sys_struct::sys_columns, dict_sys_struct::sys_fields, dict_sys_struct::sys_indexes, dict_sys_struct::sys_tables, ut_a, and ut_uint64_align_up().
UNIV_INTERN void dict_create | ( | void | ) |
Creates and initializes the data dictionary at the database creation.
Definition at line 473 of file dict0boot.cc.
References mtr_commit(), and mtr_start().
UNIV_INTERN dict_hdr_t* dict_hdr_get | ( | mtr_t * | mtr | ) |
Gets a pointer to the dictionary header and x-latches its page.
Gets a pointer to the dictionary header and x-latches its page.
mtr | in: mtr |
Definition at line 48 of file dict0boot.cc.
References buf_page_get.
UNIV_INTERN void dict_hdr_get_new_id | ( | table_id_t * | table_id, |
index_id_t * | index_id, | ||
ulint * | space_id | ||
) |
Returns a new table, index, or space id. out: space id (not assigned if NULL)
Returns a new table, index, or space id.
table_id | out: table id (not assigned if NULL) |
index_id | out: index id (not assigned if NULL) |
space_id | out: space id (not assigned if NULL) |
Definition at line 68 of file dict0boot.cc.
References mach_read_from_8(), MLOG_4BYTES, mlog_write_ulint(), mlog_write_ull(), mtr_commit(), mtr_read_ulint(), and mtr_start().
UNIV_INLINE row_id_t dict_sys_get_new_row_id | ( | void | ) |
Returns a new row id.
UNIV_INLINE row_id_t dict_sys_read_row_id | ( | const byte * | field | ) |
Reads a row id from a record or other 6-byte stored form.
UNIV_INLINE void dict_sys_write_row_id | ( | byte * | field, |
row_id_t | row_id | ||
) |
Writes a row id to a record or other 6-byte stored form. in: row id
field | in: record field |