"SHOW SENNA STATUS"コマンドを改良

SennaSQLコマンドである"SHOW SENNA STATUS"の不具合の修正と表示内容の追加を行いました。

svn.sourceforge.jpにcommit済みです。revision15。

修正点: db非選択時のエラーコードをより適切なものに変更

以前の"show senna status"は以下のようにdb名を指定しない状態でMySQLに接続して、、、

mysql -uroot

USEコマンドなどによるdb選択を行う前に実行すると、以下のようなエラーを返していました。

[(none)] > show senna status;
ERROR 1049 (42000): Unknown database '(null)'

これを今回の修正により、以下のようなエラーを返すようにしました。

[(none)] > show senna status;
ERROR 1046 (3D000): No database selected

これによりdb非選択時のエラーコードが"show tables"や"show table status"などと同じになります。

表示内容の追加: Sectionalizeについての情報を追加

Tritonn 1.0.3から導入されたマルチセクション機能ですが、SECTIONALIZEフラグを指定してインデックスを作成しても、"show table status"には表示項目がなかったため、後からそれを確認することができませんでした。

そこで今回、"show table status"の表示内容にSectionalizeについての情報を追加しました。

こんな感じになります。

[test] > create table t1 (c1 varchar(50), c2 text, fulltext index ft using sectionalize (c1,c2)) default charset utf8;
Query OK, 0 rows affected (0.01 sec)

[test] > show senna status\G
 *************************** 1. row ***************************
                  Table: t1
               Key_name: ft
            Column_name: c1
               Encoding: utf8
             Index_type: NGRAM
           Sectionalize: ON
              Normalize: ON
            Split_alpha: OFF
            Split_digit: OFF
           Split_symbol: OFF
     Initial_n_segments: 512
        Senna_keys_size: 0
   Senna_keys_file_size: 4268032
     Senna_lexicon_size: 0
Senna_lexicon_file_size: 4268032
     Senna_inv_seg_size: 167936
   Senna_inv_chunk_size: 135168
 *************************** 2. row ***************************
                  Table: t1
               Key_name: ft
            Column_name: c2
               Encoding: utf8
             Index_type: NGRAM
           Sectionalize: ON
              Normalize: ON
            Split_alpha: OFF
            Split_digit: OFF
           Split_symbol: OFF
     Initial_n_segments: 512
        Senna_keys_size: 0
   Senna_keys_file_size: 4268032
     Senna_lexicon_size: 0
Senna_lexicon_file_size: 4268032
     Senna_inv_seg_size: 167936
   Senna_inv_chunk_size: 135168
2 rows in set (0.00 sec)

Sectionalizeを指定しなかったインデックスについてはこの部分の値がOFFになります。

これらの変更は、特に問題がなければTritonn 1.0.5に取り込まれる予定です。