Commit 5559c48e authored by unknown's avatar unknown

Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/home/psergey/mysql-4.1-bug13419

parents 32de9735 2a4f5aac
...@@ -3994,7 +3994,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info, ...@@ -3994,7 +3994,7 @@ void update_auto_increment_key(MI_CHECK *param, MI_INFO *info,
... ...
The 'unique' array is collected in one sequential scan through the entire The 'unique' array is collected in one sequential scan through the entire
index. This is done in two places: in chk_index() and in sort_key_write(). index. This is done in two places: in chk_index() and in sort_key_write().
Statistics collection may consider NULLs as either equal or inequal (see Statistics collection may consider NULLs as either equal or unequal (see
SEARCH_NULL_ARE_NOT_EQUAL, MI_STATS_METHOD_*). SEARCH_NULL_ARE_NOT_EQUAL, MI_STATS_METHOD_*).
Output is an array: Output is an array:
......
...@@ -67,7 +67,7 @@ static const char *field_pack[]= ...@@ -67,7 +67,7 @@ static const char *field_pack[]=
"no zeros", "blob", "constant", "table-lockup", "no zeros", "blob", "constant", "table-lockup",
"always zero","varchar","unique-hash","?","?"}; "always zero","varchar","unique-hash","?","?"};
static const char *myisam_stats_method_str="nulls_inequal"; static const char *myisam_stats_method_str="nulls_unequal";
static void get_options(int *argc,char * * *argv); static void get_options(int *argc,char * * *argv);
static void print_version(void); static void print_version(void);
...@@ -339,7 +339,7 @@ static struct my_option my_long_options[] = ...@@ -339,7 +339,7 @@ static struct my_option my_long_options[] =
REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"stats_method", OPT_STATS_METHOD, {"stats_method", OPT_STATS_METHOD,
"Specifies how index statistics collection code should threat NULLs. " "Specifies how index statistics collection code should threat NULLs. "
"Possible values of name are \"nulls_inequal\" (default behavior for 4.1/5.0), and \"nulls_equal\" (emulate 4.0 behavior).", "Possible values of name are \"nulls_unequal\" (default behavior for 4.1/5.0), and \"nulls_equal\" (emulate 4.0 behavior).",
(gptr*) &myisam_stats_method_str, (gptr*) &myisam_stats_method_str, 0, (gptr*) &myisam_stats_method_str, (gptr*) &myisam_stats_method_str, 0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
...@@ -471,7 +471,7 @@ static void usage(void) ...@@ -471,7 +471,7 @@ static void usage(void)
#include <help_end.h> #include <help_end.h>
const char *myisam_stats_method_names[] = {"nulls_inequal", "nulls_equal", const char *myisam_stats_method_names[] = {"nulls_unequal", "nulls_equal",
NullS}; NullS};
TYPELIB myisam_stats_method_typelib= { TYPELIB myisam_stats_method_typelib= {
array_elements(myisam_stats_method_names) - 1, "", array_elements(myisam_stats_method_names) - 1, "",
......
...@@ -611,7 +611,7 @@ test.t2 984116287 ...@@ -611,7 +611,7 @@ test.t2 984116287
drop table t1, t2; drop table t1, t2;
show variables like 'myisam_stats_method'; show variables like 'myisam_stats_method';
Variable_name Value Variable_name Value
myisam_stats_method nulls_inequal myisam_stats_method nulls_unequal
create table t1 (a int, key(a)); create table t1 (a int, key(a));
insert into t1 values (0),(1),(2),(3),(4); insert into t1 values (0),(1),(2),(3),(4);
insert into t1 select NULL from t1; insert into t1 select NULL from t1;
...@@ -652,7 +652,7 @@ t1 1 a 1 a A 5 NULL NULL YES BTREE ...@@ -652,7 +652,7 @@ t1 1 a 1 a A 5 NULL NULL YES BTREE
set myisam_stats_method=DEFAULT; set myisam_stats_method=DEFAULT;
show variables like 'myisam_stats_method'; show variables like 'myisam_stats_method';
Variable_name Value Variable_name Value
myisam_stats_method nulls_inequal myisam_stats_method nulls_unequal
insert into t1 values (11); insert into t1 values (11);
delete from t1 where a=11; delete from t1 where a=11;
analyze table t1; analyze table t1;
......
...@@ -39,7 +39,7 @@ const char *myisam_recover_names[] = ...@@ -39,7 +39,7 @@ const char *myisam_recover_names[] =
TYPELIB myisam_recover_typelib= {array_elements(myisam_recover_names)-1,"", TYPELIB myisam_recover_typelib= {array_elements(myisam_recover_names)-1,"",
myisam_recover_names, NULL}; myisam_recover_names, NULL};
const char *myisam_stats_method_names[] = {"nulls_inequal", "nulls_equal", const char *myisam_stats_method_names[] = {"nulls_unequal", "nulls_equal",
NullS}; NullS};
TYPELIB myisam_stats_method_typelib= { TYPELIB myisam_stats_method_typelib= {
array_elements(myisam_stats_method_names) - 1, "", array_elements(myisam_stats_method_names) - 1, "",
......
...@@ -369,7 +369,7 @@ char *mysqld_unix_port, *opt_mysql_tmpdir; ...@@ -369,7 +369,7 @@ char *mysqld_unix_port, *opt_mysql_tmpdir;
char *my_bind_addr_str; char *my_bind_addr_str;
const char **errmesg; /* Error messages */ const char **errmesg; /* Error messages */
const char *myisam_recover_options_str="OFF"; const char *myisam_recover_options_str="OFF";
const char *myisam_stats_method_str="nulls_inequal"; const char *myisam_stats_method_str="nulls_unequal";
const char *sql_mode_str="OFF"; const char *sql_mode_str="OFF";
/* name of reference on left espression in rewritten IN subquery */ /* name of reference on left espression in rewritten IN subquery */
const char *in_left_expr_name= "<left expr>"; const char *in_left_expr_name= "<left expr>";
...@@ -5212,7 +5212,7 @@ The minimum value for this variable is 4096.", ...@@ -5212,7 +5212,7 @@ The minimum value for this variable is 4096.",
GET_ULONG, REQUIRED_ARG, 8192*1024, 4, ~0L, 0, 1, 0}, GET_ULONG, REQUIRED_ARG, 8192*1024, 4, ~0L, 0, 1, 0},
{"myisam_stats_method", OPT_MYISAM_STATS_METHOD, {"myisam_stats_method", OPT_MYISAM_STATS_METHOD,
"Specifies how MyISAM index statistics collection code should threat NULLs. " "Specifies how MyISAM index statistics collection code should threat NULLs. "
"Possible values of name are \"nulls_inequal\" (default behavior for 4.1/5.0), and \"nulls_equal\" (emulate 4.0 behavior).", "Possible values of name are \"nulls_unequal\" (default behavior for 4.1/5.0), and \"nulls_equal\" (emulate 4.0 behavior).",
(gptr*) &myisam_stats_method_str, (gptr*) &myisam_stats_method_str, 0, (gptr*) &myisam_stats_method_str, (gptr*) &myisam_stats_method_str, 0,
GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"net_buffer_length", OPT_NET_BUFFER_LENGTH, {"net_buffer_length", OPT_NET_BUFFER_LENGTH,
...@@ -5499,10 +5499,10 @@ struct show_var_st status_vars[]= { ...@@ -5499,10 +5499,10 @@ struct show_var_st status_vars[]= {
{"Com_show_fields", (char*) (com_stat+(uint) SQLCOM_SHOW_FIELDS),SHOW_LONG}, {"Com_show_fields", (char*) (com_stat+(uint) SQLCOM_SHOW_FIELDS),SHOW_LONG},
{"Com_show_grants", (char*) (com_stat+(uint) SQLCOM_SHOW_GRANTS),SHOW_LONG}, {"Com_show_grants", (char*) (com_stat+(uint) SQLCOM_SHOW_GRANTS),SHOW_LONG},
{"Com_show_innodb_status", (char*) (com_stat+(uint) SQLCOM_SHOW_INNODB_STATUS),SHOW_LONG}, {"Com_show_innodb_status", (char*) (com_stat+(uint) SQLCOM_SHOW_INNODB_STATUS),SHOW_LONG},
{"Com_show_ndb_status", (char*) (com_stat+(uint) SQLCOM_SHOW_NDBCLUSTER_STATUS),SHOW_LONG},
{"Com_show_keys", (char*) (com_stat+(uint) SQLCOM_SHOW_KEYS),SHOW_LONG}, {"Com_show_keys", (char*) (com_stat+(uint) SQLCOM_SHOW_KEYS),SHOW_LONG},
{"Com_show_logs", (char*) (com_stat+(uint) SQLCOM_SHOW_LOGS),SHOW_LONG}, {"Com_show_logs", (char*) (com_stat+(uint) SQLCOM_SHOW_LOGS),SHOW_LONG},
{"Com_show_master_status", (char*) (com_stat+(uint) SQLCOM_SHOW_MASTER_STAT),SHOW_LONG}, {"Com_show_master_status", (char*) (com_stat+(uint) SQLCOM_SHOW_MASTER_STAT),SHOW_LONG},
{"Com_show_ndb_status", (char*) (com_stat+(uint) SQLCOM_SHOW_NDBCLUSTER_STATUS),SHOW_LONG},
{"Com_show_new_master", (char*) (com_stat+(uint) SQLCOM_SHOW_NEW_MASTER),SHOW_LONG}, {"Com_show_new_master", (char*) (com_stat+(uint) SQLCOM_SHOW_NEW_MASTER),SHOW_LONG},
{"Com_show_open_tables", (char*) (com_stat+(uint) SQLCOM_SHOW_OPEN_TABLES),SHOW_LONG}, {"Com_show_open_tables", (char*) (com_stat+(uint) SQLCOM_SHOW_OPEN_TABLES),SHOW_LONG},
{"Com_show_privileges", (char*) (com_stat+(uint) SQLCOM_SHOW_PRIVILEGES),SHOW_LONG}, {"Com_show_privileges", (char*) (com_stat+(uint) SQLCOM_SHOW_PRIVILEGES),SHOW_LONG},
...@@ -5767,7 +5767,7 @@ static void mysql_init_variables(void) ...@@ -5767,7 +5767,7 @@ static void mysql_init_variables(void)
query_id= thread_id= 1L; query_id= thread_id= 1L;
strmov(server_version, MYSQL_SERVER_VERSION); strmov(server_version, MYSQL_SERVER_VERSION);
myisam_recover_options_str= sql_mode_str= "OFF"; myisam_recover_options_str= sql_mode_str= "OFF";
myisam_stats_method_str= "nulls_inequal"; myisam_stats_method_str= "nulls_unequal";
my_bind_addr = htonl(INADDR_ANY); my_bind_addr = htonl(INADDR_ANY);
threads.empty(); threads.empty();
thread_cache.empty(); thread_cache.empty();
...@@ -5818,7 +5818,7 @@ static void mysql_init_variables(void) ...@@ -5818,7 +5818,7 @@ static void mysql_init_variables(void)
global_system_variables.old_passwords= 0; global_system_variables.old_passwords= 0;
/* /*
Default behavior for 4.1 and 5.0 is to treat NULL values as inequal Default behavior for 4.1 and 5.0 is to treat NULL values as unequal
when collecting index statistics for MyISAM tables. when collecting index statistics for MyISAM tables.
*/ */
global_system_variables.myisam_stats_method= MI_STATS_METHOD_NULLS_NOT_EQUAL; global_system_variables.myisam_stats_method= MI_STATS_METHOD_NULLS_NOT_EQUAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment