74 Table_flags int_table_flags;
84 uint store_key_val_for_row(uint keynr,
char* buff, uint buff_len,
86 inline void update_thd(THD* thd);
88 int change_active_index(uint keynr);
89 int general_fetch(uchar* buf, uint direction, uint match_mode);
90 dberr_t innobase_lock_autoinc();
91 ulonglong innobase_peek_autoinc();
92 dberr_t innobase_set_max_autoinc(ulonglong auto_inc);
93 dberr_t innobase_reset_autoinc(ulonglong auto_inc);
94 dberr_t innobase_get_autoinc(ulonglong* value);
95 void innobase_initialize_autoinc();
100 ha_innobase(handlerton *hton, TABLE_SHARE *table_arg);
106 enum row_type get_row_type()
const;
108 const char* table_type()
const;
109 const char* index_type(uint key_number);
110 const char** bas_ext()
const;
111 Table_flags table_flags()
const;
112 ulong index_flags(uint idx, uint part,
bool all_parts)
const;
113 uint max_supported_keys()
const;
114 uint max_supported_key_length()
const;
115 uint max_supported_key_part_length()
const;
116 const key_map* keys_to_use_for_scanning();
118 int open(
const char *name,
int mode, uint test_if_locked);
119 handler* clone(
const char *name, MEM_ROOT *mem_root);
122 double read_time(uint index, uint ranges, ha_rows rows);
123 longlong get_memory_buffer_size()
const;
125 int write_row(uchar * buf);
126 int update_row(
const uchar * old_data, uchar * new_data);
127 int delete_row(
const uchar * buf);
128 bool was_semi_consistent_read();
129 void try_semi_consistent_read(
bool yes);
132 int index_init(uint index,
bool sorted);
134 int index_read(uchar * buf,
const uchar * key,
135 uint key_len,
enum ha_rkey_function find_flag);
136 int index_read_idx(uchar * buf, uint index,
const uchar * key,
137 uint key_len,
enum ha_rkey_function find_flag);
138 int index_read_last(uchar * buf,
const uchar * key, uint key_len);
139 int index_next(uchar * buf);
140 int index_next_same(uchar * buf,
const uchar *key, uint keylen);
141 int index_prev(uchar * buf);
142 int index_first(uchar * buf);
143 int index_last(uchar * buf);
145 int rnd_init(
bool scan);
147 int rnd_next(uchar *buf);
148 int rnd_pos(uchar * buf, uchar *pos);
152 FT_INFO *ft_init_ext(uint flags, uint inx, String* key);
153 int ft_read(uchar* buf);
155 void position(
const uchar *record);
157 int analyze(THD* thd,HA_CHECK_OPT* check_opt);
158 int optimize(THD* thd,HA_CHECK_OPT* check_opt);
159 int discard_or_import_tablespace(my_bool discard);
160 int extra(
enum ha_extra_function operation);
162 int external_lock(THD *thd,
int lock_type);
163 int transactional_table_lock(THD *thd,
int lock_type);
164 int start_stmt(THD *thd, thr_lock_type lock_type);
165 void position(uchar *record);
166 ha_rows records_in_range(uint inx, key_range *min_key, key_range
168 ha_rows estimate_rows_upper_bound();
170 void update_create_info(HA_CREATE_INFO* create_info);
171 int parse_table_name(
const char*name,
172 HA_CREATE_INFO* create_info,
178 int create(
const char *name,
register TABLE *form,
179 HA_CREATE_INFO *create_info);
181 int delete_table(
const char *name);
182 int rename_table(
const char* from,
const char* to);
183 int check(THD* thd, HA_CHECK_OPT* check_opt);
184 char* update_table_comment(
const char* comment);
185 char* get_foreign_key_create_info();
186 int get_foreign_key_list(THD *thd, List<FOREIGN_KEY_INFO> *f_key_list);
187 int get_parent_foreign_key_list(THD *thd,
188 List<FOREIGN_KEY_INFO> *f_key_list);
189 bool can_switch_engines();
190 uint referenced_by_foreign_key();
191 void free_foreign_key_create_info(
char* str);
192 THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
193 enum thr_lock_type lock_type);
194 void init_table_handle_for_HANDLER();
195 virtual void get_auto_increment(ulonglong offset, ulonglong increment,
196 ulonglong nb_desired_values,
197 ulonglong *first_value,
198 ulonglong *nb_reserved_values);
199 int reset_auto_increment(ulonglong value);
201 virtual bool get_error_message(
int error, String *buf);
202 virtual bool get_foreign_dup_key(
char*, uint,
char*, uint);
203 uint8 table_cache_type();
207 my_bool register_query_cache_table(THD *thd,
char *table_key,
209 qc_engine_callback *call_back,
210 ulonglong *engine_data);
211 static const char *get_mysql_bin_log_name();
212 static ulonglong get_mysql_bin_log_pos();
213 bool primary_key_is_clustered();
214 int cmp_ref(
const uchar *ref1,
const uchar *ref2);
233 TABLE* altered_table,
234 Alter_inplace_info* ha_alter_info);
248 TABLE* altered_table,
249 Alter_inplace_info* ha_alter_info);
264 TABLE* altered_table,
265 Alter_inplace_info* ha_alter_info);
282 TABLE* altered_table,
283 Alter_inplace_info* ha_alter_info,
286 bool check_if_incompatible_data(HA_CREATE_INFO *info,
300 int info_low(uint,
bool);
312 void* seq_init_param,
313 uint n_ranges, uint mode,
314 HANDLER_BUFFER* buf);
331 void* seq_init_param,
332 uint n_ranges, uint* bufsz,
333 uint* flags, Cost_estimate* cost);
345 uint* bufsz, uint* flags,
346 Cost_estimate* cost);
365 #ifndef INNODB_COMPATIBILITY_HOOKS
366 #error InnoDB needs MySQL to be built with #define INNODB_COMPATIBILITY_HOOKS
369 LEX_STRING* thd_query_string(MYSQL_THD thd);
373 struct charset_info_st *thd_charset(MYSQL_THD thd);
381 int thd_slave_thread(
const MYSQL_THD thd);
389 int thd_non_transactional_update(
const MYSQL_THD thd);
396 int thd_binlog_format(
const MYSQL_THD thd);
403 void thd_mark_transaction_to_rollback(MYSQL_THD thd,
bool all);
410 bool thd_binlog_filter_ok(
const MYSQL_THD thd);
418 bool thd_sqlcom_can_generate_row_events(
const MYSQL_THD thd);
426 enum durability_properties thd_get_durability_property(
const MYSQL_THD thd);
432 void thd_get_autoinc(
const MYSQL_THD thd, ulong* off, ulong* inc)
433 __attribute__((nonnull));
439 bool thd_is_strict_mode(
const MYSQL_THD thd)
440 __attribute__((nonnull));
445 extern const struct _ft_vft ft_vft_result;
450 struct _ft_vft *please;
451 struct _ft_vft_ext *could_you;
460 innobase_trx_allocate(
472 innobase_index_name_is_reserved(
478 __attribute__((nonnull, warn_unused_result));
485 innobase_table_flags(
488 const HA_CREATE_INFO* create_info,
495 __attribute__((nonnull, warn_unused_result));
505 create_options_are_invalid(
510 HA_CREATE_INFO* create_info,
512 __attribute__((nonnull, warn_unused_result));
520 innobase_fts_retrieve_ranking(
530 innobase_fts_find_ranking(
539 innobase_fts_close_ranking(
542 __attribute__((nonnull));
548 innobase_fts_load_stopword(
553 __attribute__((nonnull(1,3), warn_unused_result));
556 enum fts_doc_id_index_enum {
557 FTS_INCORRECT_DOC_ID_INDEX,
558 FTS_EXIST_DOC_ID_INDEX,
559 FTS_NOT_EXIST_DOC_ID_INDEX
567 enum fts_doc_id_index_enum
568 innobase_fts_check_doc_id_index(
571 const TABLE* altered_table,
573 ulint* fts_doc_col_no)
575 __attribute__((warn_unused_result));
583 enum fts_doc_id_index_enum
584 innobase_fts_check_doc_id_index_in_def(
588 __attribute__((nonnull, warn_unused_result));
593 innobase_fts_get_version();
598 innobase_fts_flags();
604 innobase_fts_retrieve_docid(
606 FT_INFO_EXT* fts_hdl);
612 innobase_fts_count_matches(
614 FT_INFO_EXT* fts_hdl);
618 extern const char innobase_index_reserve_name[];
627 innobase_copy_frm_flags_from_create_info(
630 const HA_CREATE_INFO* create_info);
639 innobase_copy_frm_flags_from_table_share(
642 const TABLE_SHARE* table_share);