テーブルとインデックスに関する構造体

ちょっと整理。結構省略してる、結構というかほとんど。

struct st_myisam_info {
  MYISAM_SHARE *s;
} MI_INFO;

struct st_mi_isam_share {
  MI_KEYDEF *keyinfo;
  HA_KEYSEG *keyparts;
} MYISAM_SHARE;

struct st_mi_keydef {
  struct st_mi_isam_share *share;
  uint16 keysegs;
  HA_KEYSEG *seg, *end;
} MI_KEYDEF;

class ha_myisam: public handler {
  MI_INFO *file;
}

struct st_table {
  TABLE_SHARE *s;
  handler *file;
  KEY *key_info;
  Field **field;
} TABLE;

struct st_table_share {
  KEY *key_info;
  Field **field;
} TABLE_SHARE;

struct st_key {
  uint key_parts;
  KEY_PART_INFO *key_part;
  struct st_table *table;
} KEY;

struct st_key_part_info {
  Field *field;
} KEY_PART_INFO;

class handler :public Sql_alloc {
  protected struct st_table *table;
  const handlerton *ht;
  handler(const handlerton *ht_arg, TABLE *table_arg);
}