svnno****@sourc*****
svnno****@sourc*****
2007年 10月 10日 (水) 11:21:52 JST
Revision: 26 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=26 Author: mir Date: 2007-10-10 11:21:52 +0900 (Wed, 10 Oct 2007) Log Message: ----------- bugfix for delete_all_rows causing crash Modified Paths: -------------- mysql-5.0.45-tritonn-1.0.7/myisam/mi_delete_all.c mysql-5.0.45-tritonn-1.0.7/myisam/mi_open.c mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/r/senna_create.result mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/t/senna_create.test Modified: mysql-5.0.45-tritonn-1.0.7/myisam/mi_delete_all.c =================================================================== --- mysql-5.0.45-tritonn-1.0.7/myisam/mi_delete_all.c 2007-10-09 07:52:12 UTC (rev 25) +++ mysql-5.0.45-tritonn-1.0.7/myisam/mi_delete_all.c 2007-10-10 02:21:52 UTC (rev 26) @@ -39,6 +39,12 @@ sen_index *senna = share->keyinfo[i].senna; if (senna) { + if (!(share->keyinfo[i].senna_encoding >= 0 && share->keyinfo[i].senna_encoding <= 6)) + { + my_errno= HA_WRONG_CREATE_OPTION; + goto err; + } + char buf[FN_REFLEN]; SEN_LOG(sen_log_debug, "mi_delete_all_rows => sen_index_path: index=%p, buf=%s", senna, buf); sen_index_path(senna, buf, FN_REFLEN); @@ -48,11 +54,6 @@ sen_index_remove(buf); SEN_LOG(sen_log_notice, "mi_delete_all_rows => sen_index_create: path=%s, flags=%x, ins=%d", buf, share->keyinfo[i].senna_flags, share->keyinfo[i].senna_initial_n_segments); - if (!(share->keyinfo[i].senna_encoding >= 0 && share->keyinfo[i].senna_encoding <= 6)) - { - my_errno= HA_WRONG_CREATE_OPTION; - goto err; - } senna = sen_index_create(buf, sizeof(my_off_t), share->keyinfo[i].senna_flags, share->keyinfo[i].senna_initial_n_segments, Modified: mysql-5.0.45-tritonn-1.0.7/myisam/mi_open.c =================================================================== --- mysql-5.0.45-tritonn-1.0.7/myisam/mi_open.c 2007-10-09 07:52:12 UTC (rev 25) +++ mysql-5.0.45-tritonn-1.0.7/myisam/mi_open.c 2007-10-10 02:21:52 UTC (rev 26) @@ -380,7 +380,8 @@ sen_index_info(share->keyinfo[i].senna, NULL, &share->keyinfo[i].senna_flags, &share->keyinfo[i].senna_initial_n_segments, - NULL, NULL, NULL, NULL, NULL, NULL, NULL); + &share->keyinfo[i].senna_encoding, + NULL, NULL, NULL, NULL, NULL, NULL); } } #endif /* ENABLE_SENNA */ Modified: mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/r/senna_create.result =================================================================== --- mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/r/senna_create.result 2007-10-09 07:52:12 UTC (rev 25) +++ mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/r/senna_create.result 2007-10-10 02:21:52 UTC (rev 26) @@ -199,3 +199,12 @@ FULLTEXT INDEX ft USING NGRAM (c2, c3) ) ENGINE = MyISAM; ERROR HY000: Column 'c3' cannot be part of FULLTEXT index +CREATE TABLE t1 (c1 TEXT, FULLTEXT INDEX ft USING NGRAM (c1)) DEFAULT CHARSET utf8; +SHOW SENNA STATUS; +Table Key_name Column_name Encoding Index_type Sectionalize Normalize Split_alpha Split_digit Split_symbol Initial_n_segments Senna_keys_size Senna_keys_file_size Senna_lexicon_size Senna_lexicon_file_size Senna_inv_seg_size Senna_inv_chunk_size +t1 ft c1 utf8 NGRAM OFF ON OFF OFF OFF 512 0 4268032 0 4268032 167936 135168 +DELETE FROM t1; +SHOW SENNA STATUS; +Table Key_name Column_name Encoding Index_type Sectionalize Normalize Split_alpha Split_digit Split_symbol Initial_n_segments Senna_keys_size Senna_keys_file_size Senna_lexicon_size Senna_lexicon_file_size Senna_inv_seg_size Senna_inv_chunk_size +t1 ft c1 utf8 NGRAM OFF ON OFF OFF OFF 512 0 4268032 0 4268032 167936 135168 +DROP TABLE t1; Modified: mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/t/senna_create.test =================================================================== --- mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/t/senna_create.test 2007-10-09 07:52:12 UTC (rev 25) +++ mysql-5.0.45-tritonn-1.0.7/mysql-test/suite/senna/t/senna_create.test 2007-10-10 02:21:52 UTC (rev 26) @@ -207,3 +207,10 @@ FULLTEXT INDEX ft USING NGRAM (c2, c3) ) ENGINE = MyISAM; +# bugfix for delete_all_rows cause missing senna_encoding +CREATE TABLE t1 (c1 TEXT, FULLTEXT INDEX ft USING NGRAM (c1)) DEFAULT CHARSET utf8; +SHOW SENNA STATUS; +DELETE FROM t1; +SHOW SENNA STATUS; +DROP TABLE t1; +