[Senna-dev 502] Senna 1.0.1 + Mysql5.0.24a on windows

Back to archive index

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*****) 




Senna-dev メーリングリストの案内
Back to archive index