Commit 5559c48e authored by unknown's avatar unknown
Browse files

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

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

parents 32de9735 2a4f5aac
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
    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_*).

    Output is an array:
+3 −3
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ static const char *field_pack[]=
 "no zeros", "blob", "constant", "table-lockup",
 "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 print_version(void);
@@ -339,7 +339,7 @@ static struct my_option my_long_options[] =
    REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
  {"stats_method", OPT_STATS_METHOD,
   "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,
    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}
@@ -471,7 +471,7 @@ static void usage(void)

#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};
TYPELIB myisam_stats_method_typelib= {
  array_elements(myisam_stats_method_names) - 1, "",
+2 −2
Original line number Diff line number Diff line
@@ -611,7 +611,7 @@ test.t2 984116287
drop table t1, t2;
show variables like 'myisam_stats_method';
Variable_name	Value
myisam_stats_method	nulls_inequal
myisam_stats_method	nulls_unequal
create table t1 (a int, key(a));
insert into t1 values (0),(1),(2),(3),(4);
insert into t1 select NULL from t1;
@@ -652,7 +652,7 @@ t1 1 a 1 a A 5 NULL NULL YES BTREE
set myisam_stats_method=DEFAULT;
show variables like 'myisam_stats_method';
Variable_name	Value
myisam_stats_method	nulls_inequal
myisam_stats_method	nulls_unequal
insert into t1 values (11);
delete from t1 where a=11;
analyze table t1;
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ const char *myisam_recover_names[] =
TYPELIB myisam_recover_typelib= {array_elements(myisam_recover_names)-1,"",
				 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};
TYPELIB myisam_stats_method_typelib= {
  array_elements(myisam_stats_method_names) - 1, "",
+5 −5
Original line number Diff line number Diff line
@@ -369,7 +369,7 @@ char *mysqld_unix_port, *opt_mysql_tmpdir;
char *my_bind_addr_str;
const char **errmesg;			/* Error messages */
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";
/* name of reference on left espression in rewritten IN subquery */
const char *in_left_expr_name= "<left expr>";
@@ -5212,7 +5212,7 @@ The minimum value for this variable is 4096.",
   GET_ULONG, REQUIRED_ARG, 8192*1024, 4, ~0L, 0, 1, 0},
  {"myisam_stats_method", OPT_MYISAM_STATS_METHOD,
   "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,
    GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
  {"net_buffer_length", OPT_NET_BUFFER_LENGTH,
@@ -5499,10 +5499,10 @@ struct show_var_st status_vars[]= {
  {"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_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_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_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_open_tables",     (char*) (com_stat+(uint) SQLCOM_SHOW_OPEN_TABLES),SHOW_LONG},
  {"Com_show_privileges",      (char*) (com_stat+(uint) SQLCOM_SHOW_PRIVILEGES),SHOW_LONG},
@@ -5767,7 +5767,7 @@ static void mysql_init_variables(void)
  query_id= thread_id= 1L;
  strmov(server_version, MYSQL_SERVER_VERSION);
  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);
  threads.empty();
  thread_cache.empty();
@@ -5818,7 +5818,7 @@ static void mysql_init_variables(void)
  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.
  */
  global_system_variables.myisam_stats_method= MI_STATS_METHOD_NULLS_NOT_EQUAL;