[tritonn-commit] [svn] [26] bugfix for delete_all_rows causing crash

アーカイブの一覧に戻る

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;
+




Tritonn-commit メーリングリストの案内
アーカイブの一覧に戻る