InnoDB Plugin  1.0
Data Structures | Macros | Typedefs | Functions | Variables
page0types.h File Reference
#include <map>
#include "univ.i"
#include "dict0types.h"
#include "mtr0types.h"
Include dependency graph for page0types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  page_zip_des_t
struct  page_zip_stat_t

Macros

#define page_t   ib_page_t
#define PAGE_ZIP_SSIZE_BITS   3
#define PAGE_ZIP_SSIZE_MAX   (UNIV_ZIP_SIZE_SHIFT_MAX - UNIV_ZIP_SIZE_SHIFT_MIN + 1)

Typedefs

typedef byte page_t
typedef byte page_zip_t
typedef map< index_id_t,
page_zip_stat_t
page_zip_stat_per_index_t

Functions

UNIV_INTERN void page_zip_rec_set_deleted (page_zip_des_t *page_zip, const byte *rec, ulint flag))
UNIV_INTERN void page_zip_rec_set_owned (page_zip_des_t *page_zip, const byte *rec, ulint flag))
UNIV_INTERN void page_zip_dir_delete (page_zip_des_t *page_zip, byte *rec, dict_index_t *index, const ulint *offsets, const byte *free)))
UNIV_INTERN void page_zip_dir_add_slot (page_zip_des_t *page_zip, ulint is_clustered))

Variables

page_zip_stat_t page_zip_stat [PAGE_ZIP_SSIZE_MAX]
page_zip_stat_per_index_t page_zip_stat_per_index
ib_mutex_t page_zip_stat_per_index_mutex

Detailed Description

Index page routines

Created 2/2/1994 Heikki Tuuri

Macro Definition Documentation

#define page_t   ib_page_t

Eliminates a name collision on HP-UX

#define PAGE_ZIP_SSIZE_BITS   3

Number of bits needed for representing different compressed page sizes

#define PAGE_ZIP_SSIZE_MAX   (UNIV_ZIP_SIZE_SHIFT_MAX - UNIV_ZIP_SIZE_SHIFT_MIN + 1)

Maximum compressed page shift size

Typedef Documentation

typedef byte page_t

Type of the index page

typedef map<index_id_t, page_zip_stat_t> page_zip_stat_per_index_t

Compression statistics types

typedef byte page_zip_t

Compressed index page

Function Documentation

UNIV_INTERN void page_zip_dir_add_slot ( page_zip_des_t page_zip,
ulint  is_clustered 
)

Add a slot to the dense page directory.

Parameters
page_zipin/out: compressed page
is_clusteredin: nonzero for clustered index, zero for others
UNIV_INTERN void page_zip_dir_delete ( page_zip_des_t page_zip,
byte *  rec,
dict_index_t index,
const ulint *  offsets,
const byte *  free 
)

Shift the dense page directory when a record is deleted.

Parameters
page_zipin/out: compressed page
recin: deleted record
indexin: index of rec
offsetsin: rec_get_offsets(rec)
freein: previous start of the free list
UNIV_INTERN void page_zip_rec_set_deleted ( page_zip_des_t page_zip,
const byte *  rec,
ulint  flag 
)

Write the "deleted" flag of a record on a compressed page. The flag must already have been written on the uncompressed page.

Parameters
page_zipin/out: compressed page
recin: record on the uncompressed page
flagin: the deleted flag (nonzero=TRUE)
UNIV_INTERN void page_zip_rec_set_owned ( page_zip_des_t page_zip,
const byte *  rec,
ulint  flag 
)

Write the "owned" flag of a record on a compressed page. The n_owned field must already have been written on the uncompressed page.

Parameters
page_zipin/out: compressed page
recin: record on the uncompressed page
flagin: the owned flag (nonzero=TRUE)

Variable Documentation

Statistics on compression, indexed by page_zip_des_t::ssize - 1

page_zip_stat_per_index_t page_zip_stat_per_index

Statistics on compression, indexed by dict_index_t::id