From 44eda212f1082fbe11a975c1b323d1016b5677ef Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 29 Dec 2005 17:28:59 +0400 Subject: [PATCH] BUG#16068: Plugin related bugs Fixed that --plugin_dir option doesn't work. Fixed that parser name is not restored correctly from the table. sql/mysqld.cc: Overwrite opt_plugin_dir_ptr _after_ loading the path. sql/table.cc: Partition saves at least 5 bytes in .frm. --- sql/mysqld.cc | 5 ++--- sql/table.cc | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 438382fa526..706abbb2c3c 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -7448,10 +7448,9 @@ static void fix_paths(void) (void) my_load_path(mysql_home,mysql_home,""); // Resolve current dir (void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home); (void) my_load_path(pidfile_name,pidfile_name,mysql_real_data_home); - strmake(opt_plugin_dir, get_relative_path(LIBDIR), - sizeof(opt_plugin_dir) - 1); + (void) my_load_path(opt_plugin_dir, opt_plugin_dir_ptr ? opt_plugin_dir_ptr : + get_relative_path(LIBDIR), mysql_home); opt_plugin_dir_ptr= opt_plugin_dir; - (void) my_load_path(opt_plugin_dir, opt_plugin_dir_ptr, mysql_home); char *sharedir=get_relative_path(SHAREDIR); if (test_if_hard_path(sharedir)) diff --git a/sql/table.cc b/sql/table.cc index bf208918346..7c75c150074 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -538,7 +538,7 @@ static int open_binary_frm(THD *thd, TABLE_SHARE *share, uchar *head, #endif next_chunk+= str_db_type_length + 2; } - if (next_chunk + 4 < buff_end) + if (next_chunk + 5 < buff_end) { uint32 partition_info_len = uint4korr(next_chunk); #ifdef WITH_PARTITION_STORAGE_ENGINE @@ -561,7 +561,7 @@ static int open_binary_frm(THD *thd, TABLE_SHARE *share, uchar *head, goto err; } #endif - next_chunk+= 4 + partition_info_len; + next_chunk+= 5 + partition_info_len; } keyinfo= share->key_info; for (i= 0; i < keys; i++, keyinfo++)