119
119
this storage area - set it to something, so that MySQL would know
120
120
this storage engine was accessed in this connection
122
int (*close_connection)(StorageEngine *hton, Session *session);
122
int (*close_connection)(StorageEngine *engine, Session *session);
124
124
sv points to an uninitialized storage area of requested size
125
125
(see savepoint_offset description)
127
int (*savepoint_set)(StorageEngine *hton, Session *session, void *sv);
127
int (*savepoint_set)(StorageEngine *engine, Session *session, void *sv);
129
129
sv points to a storage area, that was earlier passed
130
130
to the savepoint_set call
132
int (*savepoint_rollback)(StorageEngine *hton, Session *session, void *sv);
133
int (*savepoint_release)(StorageEngine *hton, Session *session, void *sv);
132
int (*savepoint_rollback)(StorageEngine *engine, Session *session, void *sv);
133
int (*savepoint_release)(StorageEngine *engine, Session *session, void *sv);
135
135
'all' is true if it's a real commit, that makes persistent changes
136
136
'all' is false if it's not in fact a commit but an end of the
138
138
NOTE 'all' is also false in auto-commit mode where 'end of statement'
139
139
and 'real commit' mean the same event.
141
int (*commit)(StorageEngine *hton, Session *session, bool all);
142
int (*rollback)(StorageEngine *hton, Session *session, bool all);
143
int (*prepare)(StorageEngine *hton, Session *session, bool all);
144
int (*recover)(StorageEngine *hton, XID *xid_list, uint32_t len);
145
int (*commit_by_xid)(StorageEngine *hton, XID *xid);
146
int (*rollback_by_xid)(StorageEngine *hton, XID *xid);
147
handler *(*create)(StorageEngine *hton, TABLE_SHARE *table, MEM_ROOT *mem_root);
148
void (*drop_database)(StorageEngine *hton, char* path);
149
int (*start_consistent_snapshot)(StorageEngine *hton, Session *session);
150
bool (*flush_logs)(StorageEngine *hton);
151
bool (*show_status)(StorageEngine *hton, Session *session, stat_print_fn *print, enum ha_stat_type stat);
152
int (*fill_files_table)(StorageEngine *hton, Session *session,
141
int (*commit)(StorageEngine *engine, Session *session, bool all);
142
int (*rollback)(StorageEngine *engine, Session *session, bool all);
143
int (*prepare)(StorageEngine *engine, Session *session, bool all);
144
int (*recover)(StorageEngine *engine, XID *xid_list, uint32_t len);
145
int (*commit_by_xid)(StorageEngine *engine, XID *xid);
146
int (*rollback_by_xid)(StorageEngine *engine, XID *xid);
147
handler *(*create)(StorageEngine *engine, TABLE_SHARE *table, MEM_ROOT *mem_root);
148
void (*drop_database)(StorageEngine *engine, char* path);
149
int (*start_consistent_snapshot)(StorageEngine *engine, Session *session);
150
bool (*flush_logs)(StorageEngine *engine);
151
bool (*show_status)(StorageEngine *engine, Session *session, stat_print_fn *print, enum ha_stat_type stat);
152
int (*fill_files_table)(StorageEngine *engine, Session *session,
153
153
TableList *tables,
154
154
class Item *cond);
155
155
std::bitset<HTON_BIT_SIZE> flags; /* global handler flags */
156
int (*release_temporary_latches)(StorageEngine *hton, Session *session);
156
int (*release_temporary_latches)(StorageEngine *engine, Session *session);
158
int (*table_exists_in_engine)(StorageEngine *hton, Session* session, const char *db,
158
int (*table_exists_in_engine)(StorageEngine *engine, Session* session, const char *db,
159
159
const char *name);
160
160
uint32_t license; /* Flag for Engine License */
161
161
void *data; /* Location for engines to keep personal structures */
166
166
StorageEngine *ha_default_handlerton(Session *session);
167
167
plugin_ref ha_resolve_by_name(Session *session, const LEX_STRING *name);
168
plugin_ref ha_lock_engine(Session *session, StorageEngine *hton);
168
plugin_ref ha_lock_engine(Session *session, StorageEngine *engine);
169
169
StorageEngine *ha_resolve_by_legacy_type(Session *session,
170
170
enum legacy_db_type db_type);
171
171
handler *get_new_handler(TABLE_SHARE *share, MEM_ROOT *alloc,