Drizzled Public API Documentation

dict0boot.h File Reference
#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.

Macros

#define dict0boot_h
 
#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)
 

Detailed Description

Data dictionary creation and booting

Created 4/18/1996 Heikki Tuuri

Definition in file dict0boot.h.

Macro Definition Documentation

#define DICT_HDR_FIELDS
Value:
48 /* Root of the index field
index tree */

Definition at line 133 of file dict0boot.h.

#define DICT_HDR_FIRST_ID
Value:
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
Value:
56 /* Segment header for the tablespace
segment into which the dictionary
header is created */

Definition at line 136 of file dict0boot.h.

Function Documentation

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 dict_boot(), mtr_commit(), and mtr_start().

Referenced by innobase_start_or_create_for_mysql().

UNIV_INTERN dict_hdr_t* dict_hdr_get ( mtr_t mtr)

Gets a pointer to the dictionary header and x-latches its page.

Returns
pointer to the dictionary header, page x-latched in: mtr

Gets a pointer to the dictionary header and x-latches its page.

Returns
pointer to the dictionary header, page x-latched
Parameters
mtrin: mtr

Definition at line 48 of file dict0boot.cc.

References buf_page_get.

Referenced by dict_boot(), dict_check_tablespaces_and_store_max_id(), and dict_hdr_get_new_id().

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.

Parameters
table_idout: table id (not assigned if NULL)
index_idout: index id (not assigned if NULL)
space_idout: space id (not assigned if NULL)

Definition at line 68 of file dict0boot.cc.

References dict_hdr_get(), fil_assign_new_space_id(), mach_read_from_8(), MLOG_4BYTES, mlog_write_ulint(), mlog_write_ull(), mtr_commit(), mtr_read_ulint(), and mtr_start().

Referenced by row_discard_tablespace_for_mysql(), and row_truncate_table_for_mysql().

UNIV_INLINE row_id_t dict_sys_get_new_row_id ( void  )

Returns a new row id.

Returns
the new 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.

Returns
row id in: record field
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

Parameters
fieldin: record field