Ihara Teruhisa
Teruh****@nsgne*****
2007年 3月 3日 (土) 14:38:22 JST
お世話になります。 井原と申します windows(VC++ 2005 Express) 環境下で mysql 5.0.24a + senna 1.0.1 の コンパイル+動作確認を行いました。 Sennaのコンパイルは、以下の点を変更して確認しました。 ・index.c - 999行目 int len = strlen(value); ↓ int len = value_len; ※value の 内容によっては、strlen() でmysqlが落ちる。 本当はデータが悪いと思うのですが。 ・io.c - 72行目 #define IO_HEADER_SIZE 64 ↓ #ifdef WIN32 #define IO_HEADER_SIZE sizeof(io_header) #else /* WIN32 */ #define IO_HEADER_SIZE 64 #endif /* WIN32 */ ※windowsの場合、ヘッダサイズが違う? ・sym.c - 1006行目〜 if (sym->v08p) { return _sen_sym_key08(sym, id); } pat_node *node = pat_at(sym, id); ↓ pat_node *node; if (sym->v08p) { return _sen_sym_key08(sym, id); } node = pat_at(sym, id); - 1029行目〜 if (sym->v08p) { return sen_sym_pocket_get08(sym, id); } pat_node *node = pat_at(sym, id); ↓ pat_node *node; if (sym->v08p) { return sen_sym_pocket_get08(sym, id); } node = pat_at(sym, id); - 1039行目〜 if (sym->v08p) { return sen_sym_pocket_set08(sym, id, value); } pat_node *node = pat_at(sym, id); ↓ pat_node *node; if (sym->v08p) { return sen_sym_pocket_set08(sym, id, value); } node = pat_at(sym, id); ※コンパイルが通らない。 index.c, io.c については、正解かどうかわかりませんが、mysqlが落ちる事は なくなり、全文検索も正常にできているようです。 sym.c については、VC++側の設定で回避できるのかもしれませんが調べていません。 また、mysql のコンパイルは、ホームページ上の情報のままでほぼOKでしたが、 以下の変更が必要でした。(Expressの問題のようです) mysql-5.0.24a\extra\yassl\taocrypt\src\integer.cpp 83行目 CPP_TYPENAME AllocatorBase<T>::pointer AlignedAllocator<T>::allocate( ↓ CPP_TYPENAME AlignedAllocator<T>::pointer AlignedAllocator<T>::allocate( 3万件(テーブルサイズは150M)程度のデータで確認を取りました。 以上、あっているかどうかわかりませんが、ご報告いたします。 井原 輝久(Teruh****@nsgne*****)