diff --git a/myisam/ft_stopwords.c b/myisam/ft_stopwords.c index 30a1f6e5dc8..126dddf0e5f 100644 --- a/myisam/ft_stopwords.c +++ b/myisam/ft_stopwords.c @@ -36,7 +36,7 @@ static int FT_STOPWORD_cmp(void* cmp_arg __attribute__((unused)), static void FT_STOPWORD_free(FT_STOPWORD *w, TREE_FREE action, void *arg __attribute__((unused))) { - if (action == free_free && ft_stopword_file) + if (action == free_free) my_free(w->pos, MYF(0)); } @@ -55,7 +55,9 @@ int ft_init_stopwords() if (!(stopwords3=(TREE *)my_malloc(sizeof(TREE),MYF(0)))) return -1; init_tree(stopwords3,0,0,sizeof(FT_STOPWORD),(qsort_cmp2)&FT_STOPWORD_cmp, - 0, (tree_element_free)&FT_STOPWORD_free, NULL); + 0, + (ft_stopword_file ? (tree_element_free)&FT_STOPWORD_free : 0), + NULL); } if (ft_stopword_file) @@ -102,6 +104,7 @@ err0: if (ft_add_stopword(*sws)) return -1; } + ft_stopword_file="(built-in)"; /* for SHOW VARIABLES */ } return 0; } diff --git a/mysql-test/r/fulltext_var.result b/mysql-test/r/fulltext_var.result index a72ba073b70..dda8e332fba 100644 --- a/mysql-test/r/fulltext_var.result +++ b/mysql-test/r/fulltext_var.result @@ -4,4 +4,4 @@ ft_boolean_syntax + -><()~*:""&| ft_min_word_len 4 ft_max_word_len 254 ft_max_word_len_for_sort 20 -ft_stopword_file +ft_stopword_file (built-in) diff --git a/sql/set_var.cc b/sql/set_var.cc index 9976f13a469..a7692cbe73a 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -415,7 +415,7 @@ struct show_var_st init_vars[]= { {"ft_min_word_len", (char*) &ft_min_word_len, SHOW_LONG}, {"ft_max_word_len", (char*) &ft_max_word_len, SHOW_LONG}, {"ft_max_word_len_for_sort",(char*) &ft_max_word_len_for_sort, SHOW_LONG}, - {"ft_stopword_file", (char*) &ft_stopword_file, SHOW_CHAR}, + {"ft_stopword_file", (char*) &ft_stopword_file, SHOW_CHAR_PTR}, {"have_bdb", (char*) &have_berkeley_db, SHOW_HAVE}, {"have_innodb", (char*) &have_innodb, SHOW_HAVE}, {"have_isam", (char*) &have_isam, SHOW_HAVE},