2006-11-30から1日間の記事一覧

Enterprise Server 5.0.30リリース

MySQL Enterprise Server 5.0.30がリリースされたようです。Enterprise Serverは旧"MySQL Network"の購入者のみが利用できるバイナリだと思いますが(ダウンロードにログインが必要)、ログインできる方は以下から落とすことができます。https://enterprise.m…

テーブルに付与されているインデックスの数を調べる

次はこれを知りたいのです。以下のようなhandler::index_type関数があるのですが、ここで投げるkey_numberを調べるには、というお話。 const char *index_type(uint key_number);とりあえずTABLEオブジェクトを取得したら、以下を辿ってget。 uint nkeys = t…

インデックスの型を調べる

テーブルオブジェクトを取得できて、付与されているインデックスの数も分かったら次はこれ。既に1個前のエントリで触れているように、handler::index_typeを使う。table->fileがhandlerへのポインタ。 table = open_table(thd, table_list, thd->mem_root, 0…

インデックスが対象とするカラムの名前を調べる

はいはい、お次はこれ。まーにょ! uint nkey_parts = key.key_parts; KEY_PART_INFO key_part; int j = 0; for (; j < nkey_parts; j++) { key_part = key.key_part[j]; uint16 fieldnr = key_part.fieldnr; Field *field; field = table->field[fieldnr-1]…

テーブルハンドラの判別

これは簡単。 handler *hndr; hndr = table->file; printf("table handler is %s\n", hndr->table_type());handlerオブジェクト自身に聞くと教えてくれます。 table handler is MyISAM