18 #include "myisam_priv.h"
20 #include <drizzled/error.h>
26 internal::my_off_t mi_position(
MI_INFO *info)
40 x->recpos = info->lastpos;
41 if (flag == HA_STATUS_POS)
43 if (!(flag & HA_STATUS_NO_LOCK))
45 _mi_readinfo(info,F_RDLCK,0);
46 fast_mi_writeinfo(info);
48 if (flag & HA_STATUS_VARIABLE)
50 x->records = info->state->records;
51 x->deleted = info->state->del;
52 x->delete_length = info->state->empty;
53 x->data_file_length =info->state->data_file_length;
54 x->index_file_length=info->state->key_file_length;
56 x->keys = share->state.header.keys;
57 x->check_time = share->state.check_time;
58 x->mean_reclength= x->records ?
59 (uint32_t) ((x->data_file_length - x->delete_length) / x->records) :
60 (uint32_t) share->min_pack_length;
62 if (flag & HA_STATUS_ERRKEY)
64 x->errkey = info->errkey;
65 x->dupp_key_pos= info->dupp_key_pos;
67 if (flag & HA_STATUS_CONST)
69 x->reclength = share->base.reclength;
70 x->max_data_file_length=share->base.max_data_file_length;
71 x->max_index_file_length=info->s->base.max_key_file_length;
72 x->filenr = info->dfile;
73 x->options = share->options;
74 x->create_time=share->state.create_time;
75 x->reflength= mi_get_pointer_length(share->base.max_data_file_length, data_pointer_size);
76 x->record_offset= ((share->options &
77 (HA_OPTION_PACK_RECORD | HA_OPTION_COMPRESS_RECORD)) ?
78 0L : share->base.pack_reclength);
80 x->rec_per_key = share->state.rec_per_key_part;
81 x->key_map = share->state.key_map;
82 x->data_file_name = share->data_file_name;
83 x->index_file_name = share->index_file_name;
85 if ((flag & HA_STATUS_TIME) && !fstat(info->dfile,&state))
86 x->update_time=state.st_mtime;
89 if (flag & HA_STATUS_AUTO)
91 x->auto_increment= share->state.auto_increment+1;
92 if (!x->auto_increment)
93 x->auto_increment= ~(uint64_t) 0;
118 void mi_report_error(
int errcode,
const char *file_name)
120 mi_report_error(errcode, file_name);
123 void mi_report_error(drizzled::error_t errcode,
const char *file_name)
127 if ((lgt= strlen(file_name)) > 64)
128 file_name+= lgt - 64;
129 my_error(errcode, MYF(ME_NOREFRESH), file_name);
TODO: Rename this file - func.h is stupid.