21 #include <ft_global.h>
28 #define HA_RECOVER_DEFAULT 1
29 #define HA_RECOVER_BACKUP 2
30 #define HA_RECOVER_FORCE 4
31 #define HA_RECOVER_QUICK 8
32 #define HA_RECOVER_OFF 16
34 extern TYPELIB myisam_recover_typelib;
35 extern const char *myisam_recover_names[];
36 extern ulonglong myisam_recover_options;
39 ICP_RESULT index_cond_func_myisam(
void *arg);
45 ulonglong int_table_flags;
46 char *data_file_name, *index_file_name;
47 bool can_enable_indexes;
48 int repair(THD *thd,
MI_CHECK ¶m,
bool optimize);
55 const char *index_type(uint key_number);
57 ulonglong table_flags()
const {
return int_table_flags; }
58 int index_init(uint idx,
bool sorted);
62 ulong index_flags(uint inx, uint part,
bool all_parts)
const
64 if (table_share->key_info[inx].algorithm == HA_KEY_ALG_FULLTEXT)
67 ulong
flags= HA_READ_NEXT | HA_READ_PREV | HA_READ_RANGE |
68 HA_READ_ORDER | HA_KEYREAD_ONLY | HA_DO_INDEX_COND_PUSHDOWN;
71 if (table_share->key_info[inx].
flags & HA_SPATIAL)
72 flags|= HA_KEY_SCAN_NOT_ROR;
76 uint max_supported_keys()
const {
return MI_MAX_KEY; }
77 uint max_supported_key_length()
const {
return MI_MAX_KEY_LENGTH; }
78 uint max_supported_key_part_length()
const {
return MI_MAX_KEY_LENGTH; }
79 uint checksum()
const;
81 int open(
const char *name,
int mode, uint test_if_locked);
83 int write_row(uchar *
buf);
84 int update_row(
const uchar * old_data, uchar * new_data);
85 int delete_row(
const uchar *
buf);
87 enum ha_rkey_function find_flag);
89 key_part_map keypart_map,
90 enum ha_rkey_function find_flag);
101 ft_handler->please->reinit_search(ft_handler);
106 return ft_init_search(flags,file,inx,
107 (uchar *)key->ptr(), key->length(), key->charset(),
110 int ft_read(uchar *
buf);
115 void position(
const uchar *
record);
117 int extra(
enum ha_extra_function operation);
118 int extra_opt(
enum ha_extra_function operation, ulong cache_size);
120 int external_lock(THD *thd,
int lock_type);
124 int disable_indexes(uint
mode);
125 int enable_indexes(uint
mode);
126 int indexes_are_disabled(
void);
127 void start_bulk_insert(ha_rows rows);
128 int end_bulk_insert();
133 enum thr_lock_type lock_type);
135 ulonglong nb_desired_values,
136 ulonglong *first_value,
137 ulonglong *nb_reserved_values);
143 bool check_and_repair(THD *thd);
144 bool is_crashed()
const;
145 bool auto_repair()
const {
return myisam_recover_options != HA_RECOVER_OFF; }
147 int assign_to_keycache(THD* thd,
HA_CHECK_OPT* check_opt);
150 #ifdef HAVE_QUERY_CACHE
155 ulonglong *engine_data);
169 void *seq_init_param,
170 uint n_ranges, uint *bufsz,
179 friend ICP_RESULT index_cond_func_myisam(
void *arg);