![]() |
MySQL 9.1.0
Source Code Documentation
|
This file should be included when using myisam functions. More...
#include "my_config.h"
#include <sys/types.h>
#include <time.h>
#include "keycache.h"
#include "my_base.h"
#include "my_check_opt.h"
#include "my_checksum.h"
#include "my_compare.h"
#include "my_inttypes.h"
#include "my_io.h"
#include "my_macros.h"
#include "mysql/strings/m_ctype.h"
Go to the source code of this file.
Classes | |
struct | MI_ISAMINFO |
struct | MI_CREATE_INFO |
struct | MI_KEYDEF |
struct | MI_UNIQUEDEF |
struct | MI_DECODE_TREE |
struct | MI_COLUMNDEF |
struct | SORT_KEY_BLOCKS |
struct | MI_CHECK |
struct | SORT_FT_BUF |
struct | SORT_INFO |
Macros | |
#define | MI_MAX_KEY MAX_INDEXES /* Max allowed keys */ |
#define | MI_MAX_POSSIBLE_KEY_BUFF HA_MAX_POSSIBLE_KEY_BUFF |
#define | MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ |
#define | MI_MAX_KEY_SEG 16 /* Max segments for key */ |
#define | MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH + MI_MAX_KEY_SEG * 6 + 8 + 8) |
#define | MI_MAX_MSG_BUF 1024 /* used in CHECK TABLE, REPAIR TABLE */ |
#define | MI_NAME_IEXT ".MYI" |
#define | MI_NAME_DEXT ".MYD" |
#define | MI_KEY_BLOCK_LENGTH 1024U /* default key block length */ |
#define | MI_MIN_KEY_BLOCK_LENGTH 1024U /* Min key block length */ |
#define | MI_MAX_KEY_BLOCK_LENGTH 16384U |
#define | MI_KEYMAP_BITS (8 * SIZEOF_LONG_LONG) |
#define | MI_KEYMAP_HIGH_MASK (1ULL << (MI_KEYMAP_BITS - 1)) |
#define | mi_get_mask_all_keys_active(_keys_) (((_keys_) < MI_KEYMAP_BITS) ? ((1ULL << (_keys_)) - 1ULL) : (~0ULL)) |
#define | mi_set_key_active(_keymap_, _keyno_) (_keymap_) |= (1ULL << (_keyno_)) |
#define | mi_clear_key_active(_keymap_, _keyno_) (_keymap_) &= (~(1ULL << (_keyno_))) |
#define | mi_is_all_keys_active(_keymap_, _keys_) ((_keymap_) == mi_get_mask_all_keys_active(_keys_)) |
#define | mi_set_all_keys_active(_keymap_, _keys_) (_keymap_) = mi_get_mask_all_keys_active(_keys_) |
#define | mi_clear_all_keys_active(_keymap_) (_keymap_) = 0 |
#define | mi_intersect_keys_active(_to_, _from_) (_to_) &= (_from_) |
#define | mi_is_any_intersect_keys_active(_keymap1_, _keys_, _keymap2_) ((_keymap1_) & (_keymap2_)&mi_get_mask_all_keys_active(_keys_)) |
#define | mi_copy_keys_active(_to_, _maxkeys_, _from_) (_to_) = (mi_get_mask_all_keys_active(_maxkeys_) & (_from_)) |
#define | MI_UNIQUE_HASH_LENGTH 4 |
#define | mi_close(file) mi_close_share(file, NULL) |
#define | mi_open(name, mode, wait_if_locked) mi_open_share(name, NULL, mode, wait_if_locked) |
#define | MEMMAP_EXTRA_MARGIN 7 /* Write this as a suffix for mmap file */ |
#define | MYISAMCHK_REPAIR 1 /* equivalent to myisamchk -r */ |
#define | MYISAMCHK_VERIFY 2 /* Verify, run repair if failure */ |
#define | TT_USEFRM 1 |
#define | TT_FOR_UPGRADE 2 |
#define | O_NEW_INDEX 1 /* Bits set in out_flag */ |
#define | O_NEW_DATA 2 |
#define | O_DATA_LOST 4 |
Enumerations | |
enum | enum_mi_stats_method { MI_STATS_METHOD_NULLS_NOT_EQUAL , MI_STATS_METHOD_NULLS_EQUAL , MI_STATS_METHOD_IGNORE_NULLS } |
Functions | |
bool | mi_is_key_active (uint64 _keymap_, unsigned int _keyno_) |
bool | mi_is_any_key_active (uint64 _keymap_) |
int | mi_close_share (MI_INFO *file, bool *closed_share) |
int | mi_delete (MI_INFO *file, const uchar *buff) |
MI_INFO * | mi_open_share (const char *name, MYISAM_SHARE *old_share, int mode, uint wait_if_locked) |
int | mi_panic (enum ha_panic_function function) |
int | mi_rfirst (MI_INFO *file, uchar *buf, int inx) |
int | mi_rkey (MI_INFO *info, uchar *buf, int inx, const uchar *key, key_part_map keypart_map, enum ha_rkey_function search_flag) |
int | mi_rlast (MI_INFO *file, uchar *buf, int inx) |
int | mi_rnext (MI_INFO *file, uchar *buf, int inx) |
int | mi_rnext_same (MI_INFO *info, uchar *buf) |
int | mi_rprev (MI_INFO *file, uchar *buf, int inx) |
int | mi_rrnd (MI_INFO *file, uchar *buf, my_off_t pos) |
int | mi_scan_init (MI_INFO *file) |
int | mi_scan (MI_INFO *file, uchar *buf) |
int | mi_rsame (MI_INFO *file, uchar *record, int inx) |
int | mi_rsame_with_pos (MI_INFO *file, uchar *record, int inx, my_off_t pos) |
int | mi_update (MI_INFO *file, const uchar *old, uchar *new_record) |
int | mi_write (MI_INFO *file, uchar *buff) |
my_off_t | mi_position (MI_INFO *file) |
int | mi_status (MI_INFO *info, MI_ISAMINFO *x, uint flag) |
int | mi_lock_database (MI_INFO *file, int lock_type) |
int | mi_create (const char *name, uint keys, MI_KEYDEF *keydef, uint columns, MI_COLUMNDEF *columndef, uint uniques, MI_UNIQUEDEF *uniquedef, MI_CREATE_INFO *create_info, uint flags) |
int | mi_delete_table (const char *name) |
int | mi_rename (const char *from, const char *to) |
int | mi_extra (MI_INFO *file, enum ha_extra_function function, void *extra_arg) |
int | mi_reset (MI_INFO *file) |
ha_rows | mi_records_in_range (MI_INFO *info, int inx, key_range *min_key, key_range *max_key) |
int | mi_log (int activate_log) |
int | mi_is_changed (MI_INFO *info) |
int | mi_delete_all_rows (MI_INFO *info) |
ulong | _mi_calc_blob_length (uint length, const uchar *pos) |
uint | mi_get_pointer_length (ulonglong file_length, uint def) |
void | myisamchk_init (MI_CHECK *param) |
int | chk_status (MI_CHECK *param, MI_INFO *info) |
int | chk_del (MI_CHECK *param, MI_INFO *info, uint test_flag) |
int | chk_size (MI_CHECK *param, MI_INFO *info) |
int | chk_key (MI_CHECK *param, MI_INFO *info) |
int | chk_data_link (MI_CHECK *param, MI_INFO *info, int extend) |
int | mi_repair (MI_CHECK *param, MI_INFO *info, char *name, int rep_quick, bool no_copy_stat) |
int | mi_sort_index (MI_CHECK *param, MI_INFO *info, char *name, bool no_copy_stat) |
int | mi_repair_by_sort (MI_CHECK *param, MI_INFO *info, const char *name, int rep_quick, bool no_copy_stat) |
int | change_to_newfile (const char *filename, const char *old_ext, const char *new_ext, myf myflags) |
int | lock_file (MI_CHECK *param, File file, int lock_type, const char *filetype, const char *filename) |
void | lock_memory (MI_CHECK *param) |
void | update_auto_increment_key (MI_CHECK *param, MI_INFO *info, bool repair) |
int | update_state_info (MI_CHECK *param, MI_INFO *info, uint update) |
void | update_key_parts (MI_KEYDEF *keyinfo, ulong *rec_per_key_part, ulonglong *unique, ulonglong *notnull, ulonglong records) |
int | filecopy (MI_CHECK *param, File to, File from, my_off_t start, my_off_t length, const char *type) |
int | movepoint (MI_INFO *info, uchar *record, my_off_t oldpos, my_off_t newpos, uint prot_key) |
int | write_data_suffix (SORT_INFO *sort_info, bool fix_datafile) |
int | test_if_almost_full (MI_INFO *info) |
int | recreate_table (MI_CHECK *param, MI_INFO **org_info, char *filename) |
void | mi_disable_non_unique_index (MI_INFO *info, ha_rows rows) |
bool | mi_test_if_sort_rep (MI_INFO *info, ha_rows rows, ulonglong key_map, bool force) |
int | mi_init_bulk_insert (MI_INFO *info, ulong cache_size, ha_rows rows) |
void | mi_flush_bulk_insert (MI_INFO *info, uint inx) |
void | mi_end_bulk_insert (MI_INFO *info) |
int | mi_assign_to_key_cache (MI_INFO *info, ulonglong key_map, KEY_CACHE *key_cache) |
void | mi_change_key_cache (KEY_CACHE *old_key_cache, KEY_CACHE *new_key_cache) |
int | mi_preload (MI_INFO *info, ulonglong key_map, bool ignore_leaves) |
st_keycache_thread_var * | keycache_thread_var () |
Variables | |
const char * | myisam_log_filename |
ulong | myisam_block_size |
ulong | myisam_concurrent_insert |
bool | myisam_flush |
bool | myisam_delay_key_write |
bool | myisam_single_user |
my_off_t | myisam_max_temp_length |
ulong | myisam_data_pointer_size |
int(* | myisam_test_invalid_symlink )(const char *filename) |
ulonglong | myisam_mmap_size |
ulonglong | myisam_mmap_used |
mysql_mutex_t | THR_LOCK_myisam_mmap |
st_keycache_thread_var | main_thread_keycache_var |
This file should be included when using myisam functions.
#define MEMMAP_EXTRA_MARGIN 7 /* Write this as a suffix for mmap file */ |
#define mi_clear_all_keys_active | ( | _keymap_ | ) | (_keymap_) = 0 |
#define mi_clear_key_active | ( | _keymap_, | |
_keyno_ | |||
) | (_keymap_) &= (~(1ULL << (_keyno_))) |
#define mi_close | ( | file | ) | mi_close_share(file, NULL) |
#define mi_copy_keys_active | ( | _to_, | |
_maxkeys_, | |||
_from_ | |||
) | (_to_) = (mi_get_mask_all_keys_active(_maxkeys_) & (_from_)) |
#define mi_get_mask_all_keys_active | ( | _keys_ | ) | (((_keys_) < MI_KEYMAP_BITS) ? ((1ULL << (_keys_)) - 1ULL) : (~0ULL)) |
#define mi_intersect_keys_active | ( | _to_, | |
_from_ | |||
) | (_to_) &= (_from_) |
#define mi_is_all_keys_active | ( | _keymap_, | |
_keys_ | |||
) | ((_keymap_) == mi_get_mask_all_keys_active(_keys_)) |
#define mi_is_any_intersect_keys_active | ( | _keymap1_, | |
_keys_, | |||
_keymap2_ | |||
) | ((_keymap1_) & (_keymap2_)&mi_get_mask_all_keys_active(_keys_)) |
#define MI_KEYMAP_BITS (8 * SIZEOF_LONG_LONG) |
#define MI_KEYMAP_HIGH_MASK (1ULL << (MI_KEYMAP_BITS - 1)) |
#define MI_MAX_KEY MAX_INDEXES /* Max allowed keys */ |
#define MI_MAX_KEY_BLOCK_LENGTH 16384U |
#define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH + MI_MAX_KEY_SEG * 6 + 8 + 8) |
#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ |
#define MI_MAX_KEY_SEG 16 /* Max segments for key */ |
#define MI_MAX_POSSIBLE_KEY_BUFF HA_MAX_POSSIBLE_KEY_BUFF |
#define MI_NAME_DEXT ".MYD" |
#define MI_NAME_IEXT ".MYI" |
#define mi_open | ( | name, | |
mode, | |||
wait_if_locked | |||
) | mi_open_share(name, NULL, mode, wait_if_locked) |
#define mi_set_all_keys_active | ( | _keymap_, | |
_keys_ | |||
) | (_keymap_) = mi_get_mask_all_keys_active(_keys_) |
#define mi_set_key_active | ( | _keymap_, | |
_keyno_ | |||
) | (_keymap_) |= (1ULL << (_keyno_)) |
#define MI_UNIQUE_HASH_LENGTH 4 |
#define MYISAMCHK_REPAIR 1 /* equivalent to myisamchk -r */ |
#define O_DATA_LOST 4 |
#define O_NEW_DATA 2 |
#define O_NEW_INDEX 1 /* Bits set in out_flag */ |
#define TT_FOR_UPGRADE 2 |
#define TT_USEFRM 1 |
enum enum_mi_stats_method |
ulong _mi_calc_blob_length | ( | uint | length, |
const uchar * | pos | ||
) |
int change_to_newfile | ( | const char * | filename, |
const char * | old_ext, | ||
const char * | new_ext, | ||
myf | myflags | ||
) |
int filecopy | ( | MI_CHECK * | param, |
File | to, | ||
File | from, | ||
my_off_t | start, | ||
my_off_t | length, | ||
const char * | type | ||
) |
st_keycache_thread_var * keycache_thread_var | ( | ) |
int lock_file | ( | MI_CHECK * | param, |
File | file, | ||
int | lock_type, | ||
const char * | filetype, | ||
const char * | filename | ||
) |
void lock_memory | ( | MI_CHECK * | param | ) |
int mi_close_share | ( | MI_INFO * | file, |
bool * | closed_share | ||
) |
int mi_create | ( | const char * | name, |
uint | keys, | ||
MI_KEYDEF * | keydef, | ||
uint | columns, | ||
MI_COLUMNDEF * | columndef, | ||
uint | uniques, | ||
MI_UNIQUEDEF * | uniquedef, | ||
MI_CREATE_INFO * | create_info, | ||
uint | flags | ||
) |
int mi_delete_all_rows | ( | MI_INFO * | info | ) |
int mi_delete_table | ( | const char * | name | ) |
void mi_end_bulk_insert | ( | MI_INFO * | info | ) |
int mi_extra | ( | MI_INFO * | file, |
enum ha_extra_function | function, | ||
void * | extra_arg | ||
) |
void mi_flush_bulk_insert | ( | MI_INFO * | info, |
uint | inx | ||
) |
uint mi_get_pointer_length | ( | ulonglong | file_length, |
uint | def | ||
) |
|
inline |
int mi_is_changed | ( | MI_INFO * | info | ) |
|
inline |
int mi_lock_database | ( | MI_INFO * | file, |
int | lock_type | ||
) |
int mi_log | ( | int | activate_log | ) |
MI_INFO * mi_open_share | ( | const char * | name, |
MYISAM_SHARE * | old_share, | ||
int | mode, | ||
uint | wait_if_locked | ||
) |
int mi_panic | ( | enum ha_panic_function | function | ) |
int mi_rename | ( | const char * | from, |
const char * | to | ||
) |
int mi_repair_by_sort | ( | MI_CHECK * | param, |
MI_INFO * | info, | ||
const char * | name, | ||
int | rep_quick, | ||
bool | no_copy_stat | ||
) |
int mi_reset | ( | MI_INFO * | file | ) |
int mi_rkey | ( | MI_INFO * | info, |
uchar * | buf, | ||
int | inx, | ||
const uchar * | key, | ||
key_part_map | keypart_map, | ||
enum ha_rkey_function | search_flag | ||
) |
int mi_scan_init | ( | MI_INFO * | file | ) |
int mi_status | ( | MI_INFO * | info, |
MI_ISAMINFO * | x, | ||
uint | flag | ||
) |
void myisamchk_init | ( | MI_CHECK * | param | ) |
int test_if_almost_full | ( | MI_INFO * | info | ) |
void update_key_parts | ( | MI_KEYDEF * | keyinfo, |
ulong * | rec_per_key_part, | ||
ulonglong * | unique, | ||
ulonglong * | notnull, | ||
ulonglong | records | ||
) |
int write_data_suffix | ( | SORT_INFO * | sort_info, |
bool | fix_datafile | ||
) |
|
extern |
|
extern |
|
extern |
|
extern |
bool myisam_delay_key_write |
|
extern |
|
extern |
|
extern |
|
extern |
ulonglong myisam_mmap_used |
bool myisam_single_user |
|
extern |
|
extern |