List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:January 12 2012 2:34pm
Subject:bzr push into mysql-trunk branch (Georgi.Kodinov:3722 to 3725)
View as plain text  
 3725 Georgi Kodinov	2012-01-12
      fixed a test case result after a merge.

    modified:
      mysql-test/r/mysqldump.result
 3724 Georgi Kodinov	2012-01-12 [merge]
      merge mysql-5.5->mysql-trunk

    modified:
      cmd-line-utils/libedit/chartype.h
      cmd-line-utils/libedit/eln.c
      cmd-line-utils/libedit/readline.c
      mysql-test/r/func_time.result
      mysql-test/r/mysqlcheck.result
      mysql-test/t/func_time.test
      mysql-test/t/mysqlcheck.test
      sql/item.cc
 3723 Georgi Kodinov	2012-01-12 [merge]
      merge mysql-trunk-security-fixed->mysql-trunk

    added:
      mysql-test/r/mysqlimport.result
      mysql-test/t/mysqlimport.test
    modified:
      client/mysql.cc
      client/mysql_upgrade.c
      client/mysqladmin.cc
      client/mysqlbinlog.cc
      client/mysqlcheck.c
      client/mysqldump.c
      client/mysqlimport.c
      client/mysqlshow.c
      client/mysqlslap.c
      include/my_getopt.h
      mysql-test/r/key_cache.result
      mysql-test/r/log_tables_upgrade.result
      mysql-test/r/mysql.result
      mysql-test/r/mysql_upgrade.result
      mysql-test/r/mysql_upgrade_ssl.result
      mysql-test/r/mysqladmin.result
      mysql-test/r/mysqlbinlog.result
      mysql-test/r/mysqlcheck.result
      mysql-test/r/mysqldump.result
      mysql-test/r/mysqlshow.result
      mysql-test/r/mysqlslap.result
      mysql-test/r/partition_key_cache.result
      mysql-test/r/plugin_auth.result
      mysql-test/r/plugin_auth_qa_1.result
      mysql-test/r/plugin_auth_qa_2.result
      mysql-test/r/plugin_auth_qa_3.result
      mysql-test/suite/federated/federated_debug.result
      mysql-test/suite/perfschema/r/pfs_upgrade.result
      mysql-test/t/key_cache.test
      mysql-test/t/mysql.test
      mysql-test/t/mysql_upgrade.test
      mysql-test/t/mysqladmin.test
      mysql-test/t/mysqlbinlog.test
      mysql-test/t/mysqlcheck.test
      mysql-test/t/mysqldump.test
      mysql-test/t/mysqlshow.test
      mysql-test/t/mysqlslap.test
      mysql-test/t/partition_key_cache.test
      mysys/default.c
      mysys/my_getopt.c
      sql/sql_admin.cc
      storage/myisam/mi_preload.c
 3722 Tor Didriksen	2012-01-11
      WL#6159 Refactoring of my_global.h post-push fixes for sparc64
      Use the uintXkorr macros rather than uXXXget macros.

    modified:
      libmysqld/emb_qcache.cc
      sql/binlog.cc
      sql/ha_partition.cc
      sql/spatial.cc
      sql/unireg.cc
      storage/archive/ha_archive.cc
=== modified file 'client/mysql.cc'
--- a/client/mysql.cc	2011-10-13 07:26:28 +0000
+++ b/client/mysql.cc	2011-12-12 12:55:18 +0000
@@ -1225,11 +1225,14 @@ int main(int argc,char *argv[])
   my_win_translate_command_line_args(&my_charset_utf8mb4_bin, &argc, &argv);
 #endif
 
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my",load_default_groups,&argc,&argv))
   {
     my_end(0);
     exit(1);
   }
+  my_getopt_use_args_separator= FALSE;
+
   defaults_argv=argv;
   if (get_options(argc, (char **) argv))
   {
@@ -1596,7 +1599,7 @@ static struct my_option my_long_options[
 #endif
   {"password", 'p',
    "Password to use when connecting to server. If password is not given it's asked from the tty.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},

=== modified file 'client/mysql_upgrade.c'
--- a/client/mysql_upgrade.c	2011-12-21 19:46:44 +0000
+++ b/client/mysql_upgrade.c	2012-01-12 13:22:52 +0000
@@ -105,7 +105,7 @@ static struct my_option my_long_options[
   {"password", 'p',
    "Password to use when connecting to server. If password is not given,"
    " it's solicited on the tty.", &opt_password,&opt_password,
-   0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0,
    GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -220,6 +220,7 @@ static void add_one_option(DYNAMIC_STRIN
     eq= "=";
     switch (opt->var_type & GET_TYPE_MASK) {
     case GET_STR:
+    case GET_PASSWORD:
       arg= argument;
       break;
     case GET_BOOL:
@@ -860,8 +861,10 @@ int main(int argc, char **argv)
       init_dynamic_string(&conn_args, "", 512, 256))
     die("Out of memory");
 
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my", load_default_groups, &argc, &argv))
     die(NULL);
+  my_getopt_use_args_separator= FALSE;
   defaults_argv= argv; /* Must be freed by 'free_defaults' */
 
   if (handle_options(&argc, &argv, my_long_options, get_one_option))

=== modified file 'client/mysqladmin.cc'
--- a/client/mysqladmin.cc	2011-08-19 13:24:24 +0000
+++ b/client/mysqladmin.cc	2011-11-15 14:27:21 +0000
@@ -158,7 +158,7 @@ static struct my_option my_long_options[
    &opt_nobeep, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, 
   {"password", 'p',
    "Password to use when connecting to server. If password is not given it's asked from the tty.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -306,8 +306,11 @@ int main(int argc,char *argv[])
 
   MY_INIT(argv[0]);
   mysql_init(&mysql);
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my",load_default_groups,&argc,&argv))
    exit(1); 
+  my_getopt_use_args_separator= FALSE;
+
   save_argv = argv;				/* Save for free_defaults */
   if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
   {

=== modified file 'client/mysqlbinlog.cc'
--- a/client/mysqlbinlog.cc	2012-01-10 06:46:14 +0000
+++ b/client/mysqlbinlog.cc	2012-01-12 13:22:52 +0000
@@ -1147,7 +1147,7 @@ static struct my_option my_long_options[
   {"offset", 'o', "Skip the first N entries.", &offset, &offset,
    0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
   {"password", 'p', "Password to connect to remote server.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
   {"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
     &opt_plugin_dir, &opt_plugin_dir, 0,
    GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -2295,8 +2295,10 @@ int main(int argc, char** argv)
                             INTVAR_DYNAMIC_INIT, INTVAR_DYNAMIC_INCR)))
     exit(1);
 
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my", load_default_groups, &argc, &argv))
     exit(1);
+  my_getopt_use_args_separator= FALSE;
   defaults_argv= argv;
 
   parse_args(&argc, &argv);

=== modified file 'client/mysqlcheck.c'
--- a/client/mysqlcheck.c	2011-08-19 13:24:24 +0000
+++ b/client/mysqlcheck.c	2011-11-15 14:27:21 +0000
@@ -142,7 +142,7 @@ static struct my_option my_long_options[
    0, 0},
   {"password", 'p',
    "Password to use when connecting to server. If password is not given, it's solicited on the tty.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -352,9 +352,11 @@ static int get_options(int *argc, char *
     exit(0);
   }
 
+  my_getopt_use_args_separator= TRUE;
   if ((ho_error= load_defaults("my", load_default_groups, argc, argv)) ||
       (ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
     exit(ho_error);
+  my_getopt_use_args_separator= FALSE;
 
   if (!what_to_do)
   {

=== modified file 'client/mysqldump.c'
--- a/client/mysqldump.c	2012-01-11 10:07:45 +0000
+++ b/client/mysqldump.c	2012-01-12 13:22:52 +0000
@@ -425,7 +425,7 @@ static struct my_option my_long_options[
    &opt_order_by_primary, &opt_order_by_primary, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
   {"password", 'p',
    "Password to use when connecting to server. If password is not given it's solicited on the tty.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -908,8 +908,11 @@ static int get_options(int *argc, char *
   opt_net_buffer_length= *mysql_params->p_net_buffer_length;
 
   md_result_file= stdout;
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my",load_default_groups,argc,argv))
     return 1;
+  my_getopt_use_args_separator= FALSE;
+
   defaults_argv= *argv;
 
   if (my_hash_init(&ignore_table, charset_info, 16, 0, 0,

=== modified file 'client/mysqlimport.c'
--- a/client/mysqlimport.c	2011-08-19 13:24:24 +0000
+++ b/client/mysqlimport.c	2011-11-15 14:27:21 +0000
@@ -141,7 +141,7 @@ static struct my_option my_long_options[
    &opt_low_priority, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
   {"password", 'p',
    "Password to use when connecting to server. If password is not given it's asked from the tty.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -609,8 +609,11 @@ int main(int argc, char **argv)
   char **argv_to_free;
   MY_INIT(argv[0]);
 
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my",load_default_groups,&argc,&argv))
     return 1;
+  my_getopt_use_args_separator= FALSE;
+
   /* argv is changed in the program */
   argv_to_free= argv;
   if (get_options(&argc, &argv))

=== modified file 'client/mysqlshow.c'
--- a/client/mysqlshow.c	2011-08-19 13:24:24 +0000
+++ b/client/mysqlshow.c	2011-11-15 14:27:21 +0000
@@ -68,8 +68,11 @@ int main(int argc, char **argv)
   char *wild;
   MYSQL mysql;
   MY_INIT(argv[0]);
+
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my",load_default_groups,&argc,&argv))
     exit(1);
+  my_getopt_use_args_separator= FALSE;
 
   get_options(&argc,&argv);
 
@@ -217,7 +220,7 @@ static struct my_option my_long_options[
   {"password", 'p',
    "Password to use when connecting to server. If password is not given, it's "
    "solicited on the tty.",
-   0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+   0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
   {"plugin_dir", OPT_PLUGIN_DIR, "Directory for client-side plugins.",
    &opt_plugin_dir, &opt_plugin_dir, 0,
    GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},

=== modified file 'client/mysqlslap.c'
--- a/client/mysqlslap.c	2011-08-19 13:24:24 +0000
+++ b/client/mysqlslap.c	2011-11-15 14:27:21 +0000
@@ -300,11 +300,13 @@ int main(int argc, char **argv)
 
   MY_INIT(argv[0]);
 
+  my_getopt_use_args_separator= TRUE;
   if (load_defaults("my",load_default_groups,&argc,&argv))
   {
     my_end(0);
     exit(1);
   }
+  my_getopt_use_args_separator= FALSE;
   defaults_argv=argv;
   if (get_options(&argc,&argv))
   {
@@ -636,7 +638,7 @@ static struct my_option my_long_options[
     0, 0, 0, 0, 0, 0},
   {"password", 'p',
     "Password to use when connecting to server. If password is not given it's "
-      "asked from the tty.", 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+      "asked from the tty.", 0, 0, 0, GET_PASSWORD, OPT_ARG, 0, 0, 0, 0, 0, 0},
 #ifdef __WIN__
   {"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
     NO_ARG, 0, 0, 0, 0, 0, 0},

=== modified file 'cmd-line-utils/libedit/chartype.h'
--- a/cmd-line-utils/libedit/chartype.h	2011-10-13 19:33:25 +0000
+++ b/cmd-line-utils/libedit/chartype.h	2012-01-11 17:40:29 +0000
@@ -45,11 +45,11 @@
  * seems to actually advertise this properly, despite Unicode 3.1 having
  * been around since 2001... */
 
-/* XXXMYSQL : Added FreeBSD to bypass this check.
-  TODO : Verify if FreeBSD stores ISO 10646 in wchar_t. */
+/* XXXMYSQL : Added FreeBSD & AIX to bypass this check.
+  TODO : Verify if FreeBSD & AIX stores ISO 10646 in wchar_t. */
 #if !defined(__NetBSD__) && !defined(__sun) \
   && !(defined(__APPLE__) && defined(__MACH__)) \
-  && !defined(__FreeBSD__)
+  && !defined(__FreeBSD__) && !defined(_AIX)
 #ifndef __STDC_ISO_10646__
 /* In many places it is assumed that the first 127 code points are ASCII
  * compatible, so ensure wchar_t indeed does ISO 10646 and not some other

=== modified file 'cmd-line-utils/libedit/eln.c'
--- a/cmd-line-utils/libedit/eln.c	2011-10-13 19:33:25 +0000
+++ b/cmd-line-utils/libedit/eln.c	2012-01-11 17:40:29 +0000
@@ -200,7 +200,7 @@ el_set(EditLine *el, int op, ...)
 		    ret = -1;
 		    goto out;
 		}
-		// XXX: The two strdup's leak
+                /* XXX: The two strdups leak. */
 		ret = map_addfunc(el, Strdup(wargv[0]), Strdup(wargv[1]),
 		    func);
 		ct_free_argv(wargv);

=== modified file 'cmd-line-utils/libedit/readline.c'
--- a/cmd-line-utils/libedit/readline.c	2011-10-13 19:47:46 +0000
+++ b/cmd-line-utils/libedit/readline.c	2012-01-12 13:03:44 +0000
@@ -1978,7 +1978,7 @@ rl_callback_read_char()
 		} else
 			wbuf = NULL;
 		(*(void (*)(const char *))rl_linefunc)(wbuf);
-		//el_set(e, EL_UNBUFFERED, 1);
+                /*el_set(e, EL_UNBUFFERED, 1);*/
 	}
 }
 

=== modified file 'include/my_getopt.h'
--- a/include/my_getopt.h	2011-07-19 15:11:15 +0000
+++ b/include/my_getopt.h	2011-11-15 14:27:21 +0000
@@ -36,6 +36,7 @@ C_MODE_START
 #define GET_SET       13
 #define GET_DOUBLE    14
 #define GET_FLAGSET   15
+#define GET_PASSWORD  16
 
 #define GET_ASK_ADDR	 128
 #define GET_TYPE_MASK	 127

=== modified file 'mysql-test/r/func_time.result'
--- a/mysql-test/r/func_time.result	2011-11-17 13:41:28 +0000
+++ b/mysql-test/r/func_time.result	2012-01-12 13:27:57 +0000
@@ -1476,6 +1476,21 @@ NULL	1	NULL
 SET storage_engine=NULL;
 ERROR 42000: Variable 'storage_engine' can't be set to the value of 'NULL'
 #
+# BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP 
+# Part1 (5.5)
+SET time_zone='+03:00';
+CREATE TABLE t1 (a DATETIME NOT NULL);
+INSERT INTO t1 VALUES ('2009-09-20 07:32:39.06');
+INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT CAST(UNIX_TIMESTAMP(a) AS DECIMAL(25,3)) AS c1 FROM v1 ORDER BY 1;
+c1
+0.000
+1253421159.000
+DROP VIEW v1;
+DROP TABLE t1;
+SET time_zone=DEFAULT;
+#
 # Bug #59686 crash in String::copy() with time data type
 #
 SELECT min(timestampadd(month, 1>'', from_days('%Z')));

=== modified file 'mysql-test/r/key_cache.result'
--- a/mysql-test/r/key_cache.result	2010-11-25 04:41:58 +0000
+++ b/mysql-test/r/key_cache.result	2011-12-14 14:35:17 +0000
@@ -383,3 +383,19 @@ Variable_name	Value
 key_cache_block_size	1536
 SET GLOBAL key_cache_block_size= @bug28478_key_cache_block_size;
 DROP TABLE t1;
+#
+# Bug#12361113: crash when load index into cache
+#
+# Note that this creates an empty disabled key cache!
+SET GLOBAL key_cache_none.key_cache_block_size = 1024;
+CREATE TABLE t1 (a INT, b INTEGER NOT NULL, KEY (b) ) ENGINE = MYISAM;
+INSERT INTO t1 VALUES (1, 1);
+CACHE INDEX t1 in key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+# The bug crashed the server at LOAD INDEX below. Now it will succeed 
+# since the default cache is used due to CACHE INDEX failed for
+# key_cache_none.
+LOAD INDEX INTO CACHE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	preload_keys	status	OK
+DROP TABLE t1;

=== modified file 'mysql-test/r/log_tables_upgrade.result'
--- a/mysql-test/r/log_tables_upgrade.result	2011-08-19 13:04:28 +0000
+++ b/mysql-test/r/log_tables_upgrade.result	2011-11-15 14:27:21 +0000
@@ -11,6 +11,8 @@ Table	Op	Msg_type	Msg_text
 test.bug49823	repair	status	OK
 RENAME TABLE general_log TO renamed_general_log;
 RENAME TABLE test.bug49823 TO general_log;
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK

=== modified file 'mysql-test/r/mysql.result'
--- a/mysql-test/r/mysql.result	2010-12-01 07:01:44 +0000
+++ b/mysql-test/r/mysql.result	2011-11-15 14:27:21 +0000
@@ -501,7 +501,16 @@ SHOW TABLES IN connected_db;
 Tables_in_connected_db
 table_in_connected_db
 DROP DATABASE connected_db;
-
-End of tests
 Connected
 1
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+Warning: Using a password on the command line interface can be insecure.
+1
+1
+Warning: Using a password on the command line interface can be insecure.
+1
+1
+
+End of tests

=== modified file 'mysql-test/r/mysql_upgrade.result'
--- a/mysql-test/r/mysql_upgrade.result	2011-11-15 12:34:23 +0000
+++ b/mysql-test/r/mysql_upgrade.result	2011-12-12 12:55:18 +0000
@@ -1,4 +1,6 @@
 Run mysql_upgrade once
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -33,6 +35,8 @@ mysql.user                              
 Run it again - should say already completed
 This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
 Force should run it regardless of wether it's been run before
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -67,6 +71,9 @@ mysql.user                              
 CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
 GRANT ALL ON *.* TO mysqltest1@'%';
 Run mysql_upgrade with password protected account
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -100,9 +107,12 @@ mysql.time_zone_transition_type         
 mysql.user                                         OK
 DROP USER mysqltest1@'%';
 Run mysql_upgrade with a non existing server socket
+Warning: Using a password on the command line interface can be insecure.
 mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
 FATAL ERROR: Upgrade failed
 set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -176,6 +186,8 @@ mysql.time_zone_transition_type         
 mysql.user                                         OK
 CALL testproc();
 DROP PROCEDURE testproc;
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 WARNING: NULL values of the 'character_set_client' column ('mysql.proc' table) have been updated with a default value (latin1). Please verify if necessary.
 WARNING: NULL values of the 'collation_connection' column ('mysql.proc' table) have been updated with a default value (latin1_swedish_ci). Please verify if necessary.
 WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been updated with default values. Please verify if necessary.
@@ -186,6 +198,8 @@ WARNING: NULL values of the 'db_collatio
 GRANT USAGE ON *.* TO 'user3'@'%';
 GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
 Run mysql_upgrade with all privileges on a user
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -225,6 +239,43 @@ DROP USER 'user3'@'%';
 End of 5.1 tests
 The --upgrade-system-tables option was used, databases won't be touched.
 #
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
+mtr.global_suppressions                            OK
+mtr.test_suppressions                              OK
+mysql.columns_priv                                 OK
+mysql.db                                           OK
+mysql.event                                        OK
+mysql.func                                         OK
+mysql.general_log                                  OK
+mysql.help_category                                OK
+mysql.help_keyword                                 OK
+mysql.help_relation                                OK
+mysql.help_topic                                   OK
+mysql.host                                         OK
+mysql.innodb_index_stats                           OK
+mysql.innodb_table_stats                           OK
+mysql.ndb_binlog_index                             OK
+mysql.plugin                                       OK
+mysql.proc                                         OK
+mysql.procs_priv                                   OK
+mysql.proxies_priv                                 OK
+mysql.servers                                      OK
+mysql.slave_master_info                            OK
+mysql.slave_relay_log_info                         OK
+mysql.slave_worker_info                            OK
+mysql.slow_log                                     OK
+mysql.tables_priv                                  OK
+mysql.time_zone                                    OK
+mysql.time_zone_leap_second                        OK
+mysql.time_zone_name                               OK
+mysql.time_zone_transition                         OK
+mysql.time_zone_transition_type                    OK
+mysql.user                                         OK
+#
 # Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
 #                     SKIP-WRITE-BINLOG
 #
@@ -261,4 +312,5 @@ mysql.time_zone_name                    
 mysql.time_zone_transition                         OK
 mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
+
 End of tests

=== modified file 'mysql-test/r/mysql_upgrade_ssl.result'
--- a/mysql-test/r/mysql_upgrade_ssl.result	2011-08-19 13:04:28 +0000
+++ b/mysql-test/r/mysql_upgrade_ssl.result	2011-12-12 15:15:24 +0000
@@ -1,6 +1,8 @@
 #
 # Bug#55672 mysql_upgrade dies with internal error 
 #
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK

=== modified file 'mysql-test/r/mysqladmin.result'
--- a/mysql-test/r/mysqladmin.result	2011-03-17 12:34:53 +0000
+++ b/mysql-test/r/mysqladmin.result	2011-11-15 14:27:21 +0000
@@ -1,6 +1,8 @@
+Warning: Using a password on the command line interface can be insecure.
 mysqld is alive
 mysqladmin: unknown variable 'database=db1'
 Warning: mysqladmin: unknown variable 'loose-database=db2'
+Warning: Using a password on the command line interface can be insecure.
 mysqld is alive
 mysqld is alive
 #
@@ -18,3 +20,10 @@ mysqld is alive
 # Creating an empty file 'cnf_file'
 # Using --defaults-extra-file option with 'cnf_file'.
 mysqld is alive
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+Warning: Using a password on the command line interface can be insecure.
+mysqld is alive
+
+End of tests

=== modified file 'mysql-test/r/mysqlbinlog.result'
--- a/mysql-test/r/mysqlbinlog.result	2011-12-14 05:03:54 +0000
+++ b/mysql-test/r/mysqlbinlog.result	2011-12-15 12:18:58 +0000
@@ -915,3 +915,25 @@ t1
 SHOW TABLES IN test;
 Tables_in_test
 SET GLOBAL SERVER_ID = 1;
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+Warning: Using a password on the command line interface can be insecure.
+/*!40019 SET @@session.max_insert_delayed_threads=0*/;
+/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
+DELIMITER /*!*/;
+# at 4
+#010619 20:55:55 server id 2  end_log_pos 76 	Start: binlog v 2, server v 4.0.0-debug-log created 010619 20:55:55 at startup
+ROLLBACK/*!*/;
+BINLOG '
+K5IvOwECAAAASwAAAAEAAAAAAAIANC4wLjAtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAArki87
+'/*!*/;
+# at 79
+#010619 20:56:06 server id 2  end_log_pos 0 	Stop
+DELIMITER ;
+# End of log file
+ROLLBACK /* added by mysqlbinlog */;
+/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
+
+End of tests

=== modified file 'mysql-test/r/mysqlcheck.result'
--- a/mysql-test/r/mysqlcheck.result	2011-08-19 13:04:28 +0000
+++ b/mysql-test/r/mysqlcheck.result	2012-01-12 13:27:57 +0000
@@ -234,6 +234,7 @@ DROP TABLE `@`;
 CREATE TABLE `��` (a INT) engine=myisam;
 SET NAMES DEFAULT;
 mysqlcheck --default-character-set="latin1" --databases test
+call mtr.add_suppression("Can't find file: '..test.@003f.frm'");
 test.?
 Error    : Table doesn't exist
 status   : Operation failed
@@ -352,3 +353,12 @@ CHECK TABLE bug47205 FOR UPGRADE;
 Table	Op	Msg_type	Msg_text
 test.bug47205	check	status	OK
 DROP TABLE bug47205;
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+DROP DATABASE IF EXISTS b12688860_db;
+CREATE DATABASE b12688860_db;
+Warning: Using a password on the command line interface can be insecure.
+DROP DATABASE b12688860_db;
+
+End of tests

=== modified file 'mysql-test/r/mysqldump.result'
--- a/mysql-test/r/mysqldump.result	2012-01-10 10:50:22 +0000
+++ b/mysql-test/r/mysqldump.result	2012-01-12 14:32:28 +0000
@@ -5262,3 +5262,33 @@ DROP DATABASE b12809202_db;
 # Delete all existing binary logs.
 #
 RESET MASTER;
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+DROP DATABASE IF EXISTS b12688860_db;
+CREATE DATABASE b12688860_db;
+Warning: Using a password on the command line interface can be insecure.
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+DROP DATABASE b12688860_db;
+
+End of tests

=== added file 'mysql-test/r/mysqlimport.result'
--- a/mysql-test/r/mysqlimport.result	1970-01-01 00:00:00 +0000
+++ b/mysql-test/r/mysqlimport.result	2011-11-15 14:27:21 +0000
@@ -0,0 +1,18 @@
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+CREATE DATABASE b12688860_db;
+CREATE TABLE b12688860_db.b12688860_tab (c1 INT);
+# Creating a temp sql file to be loaded.
+Warning: Using a password on the command line interface can be insecure.
+b12688860_db.b12688860_tab: Records: 3  Deleted: 0  Skipped: 0  Warnings: 0
+SELECT * FROM b12688860_db.b12688860_tab;
+c1
+1
+2
+3
+DROP TABLE b12688860_db.b12688860_tab;
+DROP DATABASE b12688860_db;
+# Dropping the temp file
+
+End of tests

=== modified file 'mysql-test/r/mysqlshow.result'
--- a/mysql-test/r/mysqlshow.result	2011-10-27 04:20:52 +0000
+++ b/mysql-test/r/mysqlshow.result	2011-12-12 12:55:18 +0000
@@ -208,4 +208,20 @@ Database: test
 | Tables |
 +--------+
 +--------+
-End of 5.0 tests
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+DROP DATABASE IF EXISTS b12688860_db;
+CREATE DATABASE b12688860_db;
+CREATE TABLE b12688860_db.b12688860_tab (c1 INT);
+Warning: Using a password on the command line interface can be insecure.
+Database: b12688860_db
++---------------+
+|    Tables     |
++---------------+
+| b12688860_tab |
++---------------+
+DROP TABLE b12688860_db.b12688860_tab;
+DROP DATABASE b12688860_db;
+
+End of tests

=== modified file 'mysql-test/r/mysqlslap.result'
--- a/mysql-test/r/mysqlslap.result	2011-04-08 07:04:54 +0000
+++ b/mysql-test/r/mysqlslap.result	2011-11-15 14:27:21 +0000
@@ -247,3 +247,10 @@ mysql
 performance_schema
 test
 DROP DATABASE bug58090;
+#
+# Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+#
+Executing mysqlslap with password.
+Warning: Using a password on the command line interface can be insecure.
+
+End of tests

=== modified file 'mysql-test/r/partition_key_cache.result'
--- a/mysql-test/r/partition_key_cache.result	2009-12-22 09:35:56 +0000
+++ b/mysql-test/r/partition_key_cache.result	2011-12-14 14:33:01 +0000
@@ -397,6 +397,33 @@ test.t1	assign_to_keycache	error	Subpart
 test.t1	assign_to_keycache	Error	Key 'inx_b' doesn't exist in table 't1'
 test.t1	assign_to_keycache	status	Operation failed
 DROP TABLE t1,t2;
+#
+# Bug#12361113: crash when load index into cache
+#
+# Note that this creates an empty disabled key cache!
+SET GLOBAL key_cache_none.key_cache_block_size = 1024;
+CREATE TABLE t1 (a INT, b INTEGER NOT NULL, KEY (b) )
+ENGINE = MYISAM
+PARTITION BY HASH(a) PARTITIONS 2;
+INSERT INTO t1 VALUES (1, 1);
+CACHE INDEX t1 IN key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+CACHE INDEX t1 PARTITION (p0) IN key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+CACHE INDEX t1 PARTITION (p1) IN key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+CACHE INDEX t1 PARTITION (p0) KEY (`b`) IN key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+CACHE INDEX t1 PARTITION (p1) KEY (`b`) IN key_cache_none;
+ERROR HY000: Unknown key cache 'key_cache_none'
+# The bug crashed the server at LOAD INDEX below. Now it will succeed
+# since the default cache is used due to CACHE INDEX failed for
+# key_cache_none.
+LOAD INDEX INTO CACHE t1;
+Table	Op	Msg_type	Msg_text
+test.t1	preload_keys	status	OK
+DROP TABLE t1;
+# Clean up
 SET GLOBAL hot_cache.key_buffer_size = 0;
 SET GLOBAL warm_cache.key_buffer_size = 0;
 SET @@global.cold_cache.key_buffer_size = 0;

=== modified file 'mysql-test/r/plugin_auth.result'
--- a/mysql-test/r/plugin_auth.result	2011-10-12 15:47:16 +0000
+++ b/mysql-test/r/plugin_auth.result	2011-11-15 14:27:21 +0000
@@ -305,6 +305,8 @@ REVOKE ALL PRIVILEGES ON *.* FROM u1@loc
 DROP USER u1@localhost,u2@localhost;
 # test if FLUSH PRIVILEGES works without the proxies_priv table
 FLUSH PRIVILEGES;
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -438,6 +440,8 @@ YES	plugin
 ALTER TABLE mysql.user MODIFY plugin char(64) DEFAULT '' NOT NULL;
 ALTER TABLE mysql.user MODIFY authentication_string TEXT NOT NULL;
 Run mysql_upgrade on a 5.5.10 external authentication column layout
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
 mysql.columns_priv                                 OK
@@ -487,6 +491,7 @@ DROP USER bug12610784@localhost;
 # Bug # 11766641: 59792: BIN/MYSQL -UUNKNOWN -PUNKNOWN 
 #  .-> USING PASSWORD: NO 
 # shoud contain "using password=yes"
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'unknown'@'localhost' (using password: YES)
 # shoud contain "using password=no"
 ERROR 1045 (28000): Access denied for user 'unknown'@'localhost' (using password: NO)

=== modified file 'mysql-test/r/plugin_auth_qa_1.result'
--- a/mysql-test/r/plugin_auth_qa_1.result	2011-03-18 14:58:27 +0000
+++ b/mysql-test/r/plugin_auth_qa_1.result	2011-11-15 14:27:21 +0000
@@ -6,6 +6,7 @@ user	plugin	authentication_string
 CREATE USER plug_user IDENTIFIED WITH test_plugin_server AS 'plug_dest';
 CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
 GRANT PROXY ON plug_dest TO plug_user;
+Warning: Using a password on the command line interface can be insecure.
 current_user()
 plug_dest@%
 user()
@@ -13,6 +14,7 @@ plug_user@localhost
 Tables_in_test_user_db
 t1
 REVOKE PROXY ON plug_dest FROM plug_user;
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 DROP USER plug_user,plug_dest;
 GRANT ALL PRIVILEGES ON test_user_db.* TO plug_user
@@ -24,6 +26,7 @@ user	plugin	authentication_string
 plug_dest		NULL
 plug_user	test_plugin_server	plug_dest
 1)
+Warning: Using a password on the command line interface can be insecure.
 current_user()
 plug_dest@%
 user()
@@ -33,6 +36,7 @@ t1
 REVOKE ALL PRIVILEGES ON test_user_db.* FROM 'plug_user'
                          IDENTIFIED WITH test_plugin_server AS 'plug_dest';
 2)
+Warning: Using a password on the command line interface can be insecure.
 current_user()
 plug_dest@%
 user()
@@ -41,15 +45,18 @@ Tables_in_test_user_db
 t1
 REVOKE PROXY ON plug_dest FROM plug_user;
 3)
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 DROP USER plug_user,plug_dest;
 GRANT ALL PRIVILEGES ON test_user_db.* TO plug_user
 IDENTIFIED WITH test_plugin_server AS 'plug_dest';
 CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
 1)
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 GRANT PROXY ON plug_dest TO plug_user;
 2)
+Warning: Using a password on the command line interface can be insecure.
 current_user()
 plug_dest@%
 user()
@@ -64,13 +71,16 @@ GRANT ALL PRIVILEGES ON test_user_db.* T
 IDENTIFIED WITH test_plugin_server AS 'plug_dest';
 CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
 GRANT PROXY ON plug_dest TO plug_user;
+Warning: Using a password on the command line interface can be insecure.
 current_user()
 plug_dest@%
 user()
 plug_user@localhost
 RENAME USER plug_dest TO new_dest;
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 GRANT PROXY ON new_dest TO plug_user;
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
 user	plugin	authentication_string
@@ -80,15 +90,19 @@ DROP USER plug_user,new_dest;
 CREATE USER plug_user
 IDENTIFIED WITH test_plugin_server AS 'plug_dest';
 CREATE USER plug_dest IDENTIFIED BY 'plug_dest_passwd';
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 GRANT PROXY ON plug_dest TO plug_user;
+Warning: Using a password on the command line interface can be insecure.
 current_user()
 plug_dest@%
 user()
 plug_user@localhost
 RENAME USER plug_dest TO new_dest;
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 GRANT PROXY ON new_dest TO plug_user;
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'plug_user'@'localhost' (using password: YES)
 SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
 user	plugin	authentication_string

=== modified file 'mysql-test/r/plugin_auth_qa_2.result'
--- a/mysql-test/r/plugin_auth_qa_2.result	2011-03-18 14:16:17 +0000
+++ b/mysql-test/r/plugin_auth_qa_2.result	2011-11-15 14:27:21 +0000
@@ -16,6 +16,7 @@ SELECT @@external_user;
 @@external_user
 NULL
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_1_user --password=qa_test_1_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 current_user()	user()	@@local.proxy_user	@@local.external_user
 qa_test_1_user@%	qa_test_1_user@localhost	NULL	NULL
 SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -43,6 +44,7 @@ SELECT @@external_user;
 @@external_user
 NULL
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_2_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 current_user()	user()	@@local.proxy_user	@@local.external_user
 authenticated_as@%	user_name@localhost	'qa_test_2_user'@'%'	'qa_test_2_user'@'%'
 SELECT user,plugin,authentication_string FROM mysql.user WHERE user != 'root';
@@ -59,6 +61,7 @@ CREATE USER qa_test_3_dest IDENTIFIED BY
 GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_3_dest identified by 'dest_passwd';
 GRANT PROXY ON qa_test_3_dest TO qa_test_3_user;
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_3_user --password=qa_test_3_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 current_user()	user()	@@local.proxy_user	@@local.external_user
 qa_test_3_dest@%	qa_test_3_user@localhost	'qa_test_3_user'@'%'	'qa_test_3_user'@'%'
 DROP USER qa_test_3_user;
@@ -69,6 +72,7 @@ CREATE USER qa_test_4_dest IDENTIFIED BY
 GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_4_dest identified by 'dest_passwd';
 GRANT PROXY ON qa_test_4_dest TO qa_test_4_user;
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT -u qa_test_4_user --password=qa_test_4_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 current_user()	user()	@@local.proxy_user	@@local.external_user
 qa_test_4_dest@%	qa_test_4_user@localhost	'qa_test_4_user'@'%'	'qa_test_4_user'@'%'
 DROP USER qa_test_4_user;
@@ -87,6 +91,7 @@ user	plugin	authentication_string	passwo
 qa_test_5_dest		NULL	*DFCACE76914AD7BD801FC1A1ECF6562272621A22
 qa_test_5_user	qa_auth_interface	qa_test_5_dest	
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=qa_test_5_user  --password=qa_test_5_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'qa_test_5_user'@'localhost' (using password: YES)
 DROP USER qa_test_5_user;
 DROP USER qa_test_5_dest;
@@ -105,6 +110,7 @@ root			
 root			
 root			
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=qa_test_6_user  --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'qa_test_6_user'@'localhost' (using password: YES)
 GRANT PROXY ON qa_test_6_dest TO root IDENTIFIED WITH qa_auth_interface AS 'qa_test_6_dest';
 SELECT user,plugin,authentication_string,password FROM mysql.user;
@@ -117,6 +123,7 @@ root			
 root			
 root	qa_auth_interface	qa_test_6_dest	
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=root  --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
 REVOKE PROXY ON qa_test_6_dest FROM root;
 SELECT user,plugin,authentication_string FROM mysql.user;
@@ -129,6 +136,7 @@ root		
 root		
 root	qa_auth_interface	qa_test_6_dest
 exec MYSQL PLUGIN_AUTH_OPT -h localhost -P MASTER_MYPORT --user=root  --password=qa_test_6_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
 DROP USER qa_test_6_user;
 DROP USER qa_test_6_dest;
@@ -145,6 +153,7 @@ CREATE USER qa_test_11_dest IDENTIFIED B
 GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
 GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
 exec MYSQL PLUGIN_AUTH_OPT --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'qa_test_11_user'@'localhost' (using password: YES)
 DROP USER qa_test_11_user, qa_test_11_dest;
 DROP DATABASE test_user_db;

=== modified file 'mysql-test/r/plugin_auth_qa_3.result'
--- a/mysql-test/r/plugin_auth_qa_3.result	2010-10-22 08:20:17 +0000
+++ b/mysql-test/r/plugin_auth_qa_3.result	2011-11-15 14:27:21 +0000
@@ -3,9 +3,11 @@ CREATE USER qa_test_11_user IDENTIFIED W
 GRANT ALL PRIVILEGES ON test_user_db.* TO qa_test_11_dest identified by 'dest_passwd';
 GRANT PROXY ON qa_test_11_dest TO qa_test_11_user;
 exec MYSQL PLUGIN_AUTH_OPT --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_11_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 current_user()	user()	@@local.proxy_user	@@local.external_user
 qa_test_11_dest@%	qa_test_11_user@localhost	'qa_test_11_user'@'%'	'qa_test_11_user'@'%'
 exec MYSQL PLUGIN_AUTH_OPT --default_auth=qa_auth_client -h localhost -P MASTER_MYPORT -u qa_test_2_user --password=qa_test_11_dest test_user_db -e "SELECT current_user(),user(),@@local.proxy_user,@@local.external_user;" 2>&1
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1045 (28000): Access denied for user 'qa_test_2_user'@'localhost' (using password: NO)
 DROP USER qa_test_11_user, qa_test_11_dest;
 DROP DATABASE test_user_db;

=== modified file 'mysql-test/suite/federated/federated_debug.result'
--- a/mysql-test/suite/federated/federated_debug.result	2009-09-30 22:25:06 +0000
+++ b/mysql-test/suite/federated/federated_debug.result	2011-12-12 15:15:24 +0000
@@ -13,6 +13,7 @@ SELECT * FROM t1;
 a
 1
 # Start a asynchronous reload
+Warning: Using a password on the command line interface can be insecure.
 # Wait for tables to be closed
 # Ensure that the server didn't crash
 SELECT * FROM t1;

=== modified file 'mysql-test/suite/perfschema/r/pfs_upgrade.result'
--- a/mysql-test/suite/perfschema/r/pfs_upgrade.result	2011-10-27 21:18:19 +0000
+++ b/mysql-test/suite/perfschema/r/pfs_upgrade.result	2011-11-15 14:27:21 +0000
@@ -8,6 +8,8 @@ use performance_schema;
 show tables like "user_table";
 Tables_in_performance_schema (user_table)
 user_table
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1050 (42S01) at line 100: Table 'cond_instances' already exists
 ERROR 1050 (42S01) at line 125: Table 'events_waits_current' already exists
 ERROR 1050 (42S01) at line 150: Table 'events_waits_history' already exists
@@ -69,6 +71,8 @@ use performance_schema;
 show tables like "user_view";
 Tables_in_performance_schema (user_view)
 user_view
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1050 (42S01) at line 100: Table 'cond_instances' already exists
 ERROR 1050 (42S01) at line 125: Table 'events_waits_current' already exists
 ERROR 1050 (42S01) at line 150: Table 'events_waits_history' already exists
@@ -128,6 +132,8 @@ drop view test.user_view;
 create procedure test.user_proc()
 select "Not supposed to be here";
 update mysql.proc set db='performance_schema' where name='user_proc';
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1050 (42S01) at line 100: Table 'cond_instances' already exists
 ERROR 1050 (42S01) at line 125: Table 'events_waits_current' already exists
 ERROR 1050 (42S01) at line 150: Table 'events_waits_history' already exists
@@ -187,6 +193,8 @@ drop procedure test.user_proc;
 create function test.user_func() returns integer
 return 0;
 update mysql.proc set db='performance_schema' where name='user_func';
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1050 (42S01) at line 100: Table 'cond_instances' already exists
 ERROR 1050 (42S01) at line 125: Table 'events_waits_current' already exists
 ERROR 1050 (42S01) at line 150: Table 'events_waits_history' already exists
@@ -246,6 +254,8 @@ drop function test.user_func;
 create event test.user_event on schedule every 1 day do
 select "not supposed to be here";
 update mysql.event set db='performance_schema' where name='user_event';
+Warning: Using a password on the command line interface can be insecure.
+Warning: Using a password on the command line interface can be insecure.
 ERROR 1050 (42S01) at line 100: Table 'cond_instances' already exists
 ERROR 1050 (42S01) at line 125: Table 'events_waits_current' already exists
 ERROR 1050 (42S01) at line 150: Table 'events_waits_history' already exists

=== modified file 'mysql-test/t/func_time.test'
--- a/mysql-test/t/func_time.test	2011-11-17 13:41:28 +0000
+++ b/mysql-test/t/func_time.test	2012-01-12 13:27:57 +0000
@@ -970,6 +970,21 @@ SELECT MONTHNAME(0), MONTHNAME(0) IS NUL
 --error ER_WRONG_VALUE_FOR_VAR
 SET storage_engine=NULL;
 
+
+--echo #
+--echo # BUG#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP 
+--echo # Part1 (5.5)
+SET time_zone='+03:00';
+CREATE TABLE t1 (a DATETIME NOT NULL);
+INSERT INTO t1 VALUES ('2009-09-20 07:32:39.06');
+INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00');
+CREATE VIEW v1 AS SELECT * FROM t1;
+SELECT CAST(UNIX_TIMESTAMP(a) AS DECIMAL(25,3)) AS c1 FROM v1 ORDER BY 1; 
+DROP VIEW v1;
+DROP TABLE t1;
+SET time_zone=DEFAULT;
+
+
 --echo #
 --echo # Bug #59686 crash in String::copy() with time data type
 --echo #

=== modified file 'mysql-test/t/key_cache.test'
--- a/mysql-test/t/key_cache.test	2010-11-25 03:50:16 +0000
+++ b/mysql-test/t/key_cache.test	2011-12-14 14:33:01 +0000
@@ -251,3 +251,19 @@ SET GLOBAL key_cache_block_size= @bug284
 DROP TABLE t1;
 
 # End of 4.1 tests
+
+--echo #
+--echo # Bug#12361113: crash when load index into cache
+--echo #
+
+--echo # Note that this creates an empty disabled key cache!
+SET GLOBAL key_cache_none.key_cache_block_size = 1024;
+CREATE TABLE t1 (a INT, b INTEGER NOT NULL, KEY (b) ) ENGINE = MYISAM;
+INSERT INTO t1 VALUES (1, 1);
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 in key_cache_none;
+--echo # The bug crashed the server at LOAD INDEX below. Now it will succeed 
+--echo # since the default cache is used due to CACHE INDEX failed for
+--echo # key_cache_none.
+LOAD INDEX INTO CACHE t1;
+DROP TABLE t1;

=== modified file 'mysql-test/t/mysql.test'
--- a/mysql-test/t/mysql.test	2011-02-23 04:53:07 +0000
+++ b/mysql-test/t/mysql.test	2011-11-15 14:27:21 +0000
@@ -575,12 +575,19 @@ DROP DATABASE connected_db;
 --remove_file $MYSQLTEST_VARDIR/tmp/one_db_1.sql
 --remove_file $MYSQLTEST_VARDIR/tmp/one_db_2.sql
 
---echo
---echo End of tests
-
-
 #
 # WL#3126 TCP address binding for mysql client library;
 # - running mysql --protocol=tcp --bind-address=127.0.0.1
 #
 --exec $MYSQL --protocol=tcp --bind-address=127.0.0.1 -e "select 1 as Connected"
+
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--exec $MYSQL -uroot --password="" -e "SELECT 1" 2>&1
+# This too should throw single warning message.
+--exec $MYSQL -uroot --password="" --password="" -e "SELECT 1" 2>&1
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/mysql_upgrade.test'
--- a/mysql-test/t/mysql_upgrade.test	2011-11-15 12:18:42 +0000
+++ b/mysql-test/t/mysql_upgrade.test	2011-12-12 12:55:18 +0000
@@ -105,6 +105,12 @@ DROP USER 'user3'@'%';
 --exec $MYSQL_UPGRADE --skip-verbose --force --upgrade-system-tables
 
 --echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+--exec $MYSQL_UPGRADE -uroot --password= --skip-verbose --force 2>&1
+
+
+--echo #
 --echo # Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
 --echo #                     SKIP-WRITE-BINLOG
 --echo #
@@ -122,4 +128,5 @@ let $MYSQLD_DATADIR= `select @@datadir`;
 # so the following command should never fail.
 --remove_file $MYSQLD_DATADIR/mysql_upgrade_info
 
+--echo
 --echo End of tests

=== modified file 'mysql-test/t/mysqladmin.test'
--- a/mysql-test/t/mysqladmin.test	2011-03-17 12:34:53 +0000
+++ b/mysql-test/t/mysqladmin.test	2011-11-15 14:27:21 +0000
@@ -64,3 +64,12 @@ EOF
 --exec $MYSQLADMIN --defaults-extra-file=$MYSQLTEST_VARDIR/tmp/cnf_file -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT ping 2>&1
 
 --remove_file $MYSQLTEST_VARDIR/tmp/cnf_file
+
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--exec $MYSQLADMIN -uroot --password="" -S $MASTER_MYSOCK -P $MASTER_MYPORT ping 2>&1
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/mysqlbinlog.test'
--- a/mysql-test/t/mysqlbinlog.test	2011-03-25 15:20:25 +0000
+++ b/mysql-test/t/mysqlbinlog.test	2011-11-15 14:27:21 +0000
@@ -556,3 +556,12 @@ SHOW TABLES IN test;
 --exec $MYSQL_BINLOG --server-id=2 $MYSQLD_DATADIR/$master_binlog | $MYSQL
 SHOW TABLES IN test;
 eval SET GLOBAL SERVER_ID = $old_server_id;
+
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--exec $MYSQL_BINLOG -uroot --password="" std_data/master-bin.000001 2>&1
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/mysqlcheck.test'
--- a/mysql-test/t/mysqlcheck.test	2011-12-04 19:11:16 +0000
+++ b/mysql-test/t/mysqlcheck.test	2012-01-12 13:27:57 +0000
@@ -146,6 +146,7 @@ CREATE TABLE `��` (a INT) engine=myisam;
 SET NAMES DEFAULT;
 --echo mysqlcheck --default-character-set="latin1" --databases test
 # Error returned depends on platform, replace it with "Table doesn't exist"
+call mtr.add_suppression("Can't find file: '..test.@003f.frm'");
 --replace_result "Can't find file: './test/@003f.frm' (errno: 22 - Invalid argument)" "Table doesn't exist" "Table 'test.?' doesn't exist" "Table doesn't exist"
 --exec $MYSQL_CHECK --default-character-set="latin1" --databases test
 --echo mysqlcheck --default-character-set="utf8" --databases test
@@ -316,3 +317,19 @@ CHECK TABLE bug47205 FOR UPGRADE;
 CHECK TABLE bug47205 FOR UPGRADE;
 
 DROP TABLE bug47205;
+
+
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--disable_warnings
+DROP DATABASE IF EXISTS b12688860_db;
+--enable_warnings
+
+CREATE DATABASE b12688860_db;
+--exec $MYSQL_CHECK -uroot --password="" --fix-db-names b12688860_db 2>&1
+DROP DATABASE b12688860_db;
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/mysqldump.test'
--- a/mysql-test/t/mysqldump.test	2012-01-10 10:50:22 +0000
+++ b/mysql-test/t/mysqldump.test	2012-01-12 13:22:52 +0000
@@ -2390,5 +2390,21 @@ DROP DATABASE b12809202_db;
 --echo #
 RESET MASTER;
 
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--disable_warnings
+DROP DATABASE IF EXISTS b12688860_db;
+--enable_warnings
+
+CREATE DATABASE b12688860_db;
+--exec $MYSQL_DUMP -uroot --password="" --skip-comments b12688860_db 2>&1
+DROP DATABASE b12688860_db;
+
+
 # Wait till we reached the initial number of concurrent sessions
 --source include/wait_until_count_sessions.inc
+
+--echo
+--echo End of tests

=== added file 'mysql-test/t/mysqlimport.test'
--- a/mysql-test/t/mysqlimport.test	1970-01-01 00:00:00 +0000
+++ b/mysql-test/t/mysqlimport.test	2011-12-13 14:08:40 +0000
@@ -0,0 +1,28 @@
+# Embedded server doesn't support external clients
+--source include/not_embedded.inc
+
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+CREATE DATABASE b12688860_db;
+CREATE TABLE b12688860_db.b12688860_tab (c1 INT);
+
+--echo # Creating a temp sql file to be loaded.
+--write_file $MYSQLTEST_VARDIR/tmp/b12688860_tab.sql
+1
+2
+3
+EOF
+
+--exec $MYSQL_IMPORT -uroot --password="" b12688860_db $MYSQLTEST_VARDIR/tmp/b12688860_tab.sql 2>&1
+
+SELECT * FROM b12688860_db.b12688860_tab;
+DROP TABLE b12688860_db.b12688860_tab;
+DROP DATABASE b12688860_db;
+
+--echo # Dropping the temp file
+--remove_file $MYSQLTEST_VARDIR/tmp/b12688860_tab.sql
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/mysqlshow.test'
--- a/mysql-test/t/mysqlshow.test	2011-05-04 09:54:04 +0000
+++ b/mysql-test/t/mysqlshow.test	2011-11-15 14:27:21 +0000
@@ -43,4 +43,21 @@ DROP TABLE t1, t2;
 #
 --exec $MYSQL_SHOW --protocol=tcp --bind-address=127.0.0.1 test
 
---echo End of 5.0 tests
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--disable_warnings
+DROP DATABASE IF EXISTS b12688860_db;
+--enable_warnings
+
+CREATE DATABASE b12688860_db;
+CREATE TABLE b12688860_db.b12688860_tab (c1 INT);
+
+--exec $MYSQL_SHOW -uroot --password="" b12688860_db 2>&1
+
+DROP TABLE b12688860_db.b12688860_tab;
+DROP DATABASE b12688860_db;
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/mysqlslap.test'
--- a/mysql-test/t/mysqlslap.test	2011-04-08 07:07:57 +0000
+++ b/mysql-test/t/mysqlslap.test	2011-11-15 14:27:21 +0000
@@ -67,3 +67,12 @@ SHOW DATABASES;
 SHOW DATABASES;
 DROP DATABASE bug58090;
 
+--echo #
+--echo # Bug#12688860 : SECURITY RECOMMENDATION: PASSWORDS ON CLI
+--echo #
+
+--echo Executing mysqlslap with password.
+--exec $MYSQL_SLAP -uroot --password="" --silent --iterations=1 --concurrency=1 --auto-generate-sql 2>&1
+
+--echo
+--echo End of tests

=== modified file 'mysql-test/t/partition_key_cache.test'
--- a/mysql-test/t/partition_key_cache.test	2009-12-22 09:35:56 +0000
+++ b/mysql-test/t/partition_key_cache.test	2011-12-14 14:33:01 +0000
@@ -239,6 +239,34 @@ CACHE INDEX t2 INDEX (`inx_b`) IN hot_ca
 CACHE INDEX t1 PARTITION (p0) KEY (`inx_b`) IN hot_cache;
 CACHE INDEX t1 INDEX (`inx_b`) IN hot_cache;
 DROP TABLE t1,t2;
+
+--echo #
+--echo # Bug#12361113: crash when load index into cache
+--echo #
+--echo # Note that this creates an empty disabled key cache!
+SET GLOBAL key_cache_none.key_cache_block_size = 1024;
+CREATE TABLE t1 (a INT, b INTEGER NOT NULL, KEY (b) )
+ENGINE = MYISAM
+PARTITION BY HASH(a) PARTITIONS 2;
+INSERT INTO t1 VALUES (1, 1);
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 IN key_cache_none;
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 PARTITION (p0) IN key_cache_none;
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 PARTITION (p1) IN key_cache_none;
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 PARTITION (p0) KEY (`b`) IN key_cache_none;
+--error ER_UNKNOWN_KEY_CACHE
+CACHE INDEX t1 PARTITION (p1) KEY (`b`) IN key_cache_none;
+--echo # The bug crashed the server at LOAD INDEX below. Now it will succeed
+--echo # since the default cache is used due to CACHE INDEX failed for
+--echo # key_cache_none.
+LOAD INDEX INTO CACHE t1;
+DROP TABLE t1;
+
+
+--echo # Clean up
 SET GLOBAL hot_cache.key_buffer_size = 0;
 SET GLOBAL warm_cache.key_buffer_size = 0;
 SET @@global.cold_cache.key_buffer_size = 0;

=== modified file 'mysys/default.c'
--- a/mysys/default.c	2011-08-29 12:08:58 +0000
+++ b/mysys/default.c	2011-12-12 12:55:18 +0000
@@ -73,6 +73,13 @@ inline static void set_args_separator(ch
   DBUG_ASSERT(my_getopt_use_args_separator);
   *arg= (char*)args_separator;
 }
+
+/*
+  This flag indicates that the argument separator string
+  (args_separator) should be added to the list of arguments,
+  in order to separate arguments received from config file
+  and command line.
+*/
 my_bool my_getopt_use_args_separator= FALSE;
 my_bool my_getopt_is_args_separator(const char* arg)
 {

=== modified file 'mysys/my_getopt.c'
--- a/mysys/my_getopt.c	2011-11-16 01:01:44 +0000
+++ b/mysys/my_getopt.c	2011-12-12 12:55:18 +0000
@@ -38,6 +38,7 @@ static void init_one_value(const struct 
 static void fini_one_value(const struct my_option *, void *, longlong);
 static int setval(const struct my_option *, void *, char *, my_bool);
 static char *check_struct_option(char *cur_arg, char *key_name);
+static void print_cmdline_password_warning();
 
 /*
   The following three variables belong to same group and the number and
@@ -431,6 +432,9 @@ int handle_options(int *argc, char ***ar
 	}
 	else
 	  argument= optend;
+
+        if (optp->var_type == GET_PASSWORD && is_cmdline_arg && argument)
+          print_cmdline_password_warning();
       }
       else  /* must be short option */
       {
@@ -468,6 +472,8 @@ int handle_options(int *argc, char ***ar
 		  argument= optend + 1;
 		  /* This is in effect a jump out of the outer loop */
 		  optend= (char*) " ";
+                  if (optp->var_type == GET_PASSWORD && is_cmdline_arg)
+                    print_cmdline_password_warning();
 		}
 		else
 		{
@@ -560,6 +566,25 @@ int handle_options(int *argc, char ***ar
 }
 
 
+/**
+ * This function should be called to print a warning message
+ * if password string is specified on the command line.
+ */
+
+static void print_cmdline_password_warning()
+{
+  static my_bool password_warning_announced= FALSE;
+
+  if (!password_warning_announced)
+  {
+    fprintf(stderr, "Warning: Using a password on the command line "
+            "interface can be insecure.\n");
+    (void) fflush(stderr);
+    password_warning_announced= TRUE;
+  }
+}
+
+
 /*
   function: check_struct_option
 
@@ -680,6 +705,7 @@ static int setval(const struct my_option
       *((double*) value)= getopt_double(argument, opts, &err);
       break;
     case GET_STR:
+    case GET_PASSWORD:
       if (argument == enabled_my_option)
         break; /* string options don't use this default of "1" */
       *((char**) value)= argument;
@@ -1134,6 +1160,7 @@ static void init_one_value(const struct 
     *((double*) variable)= ulonglong2double(value);
     break;
   case GET_STR:
+  case GET_PASSWORD:
     /*
       Do not clear variable value if it has no default value.
       The default value may already be set.
@@ -1275,6 +1302,7 @@ void my_print_help(const struct my_optio
 	col++;
       }
       else if ((optp->var_type & GET_TYPE_MASK) == GET_STR       ||
+               (optp->var_type & GET_TYPE_MASK) == GET_PASSWORD  ||
                (optp->var_type & GET_TYPE_MASK) == GET_STR_ALLOC ||
                (optp->var_type & GET_TYPE_MASK) == GET_ENUM      ||
                (optp->var_type & GET_TYPE_MASK) == GET_SET       ||
@@ -1388,6 +1416,7 @@ void my_print_variables(const struct my_
         printf("%s\n", get_type(optp->typelib, *(ulong*) value));
 	break;
       case GET_STR:
+      case GET_PASSWORD:
       case GET_STR_ALLOC:                    /* fall through */
 	printf("%s\n", *((char**) value) ? *((char**) value) :
 	       "(No default value)");

=== modified file 'sql/item.cc'
--- a/sql/item.cc	2012-01-05 10:14:20 +0000
+++ b/sql/item.cc	2012-01-12 13:27:57 +0000
@@ -7524,7 +7524,9 @@ bool Item_direct_ref::is_null()
 
 bool Item_direct_ref::get_date(MYSQL_TIME *ltime,uint fuzzydate)
 {
-  return (null_value=(*ref)->get_date(ltime,fuzzydate));
+  bool tmp= (*ref)->get_date(ltime, fuzzydate);
+  null_value= (*ref)->null_value;
+  return tmp;
 }
 
 

=== modified file 'sql/sql_admin.cc'
--- a/sql/sql_admin.cc	2011-12-19 22:31:09 +0000
+++ b/sql/sql_admin.cc	2012-01-12 13:22:52 +0000
@@ -966,6 +966,11 @@ bool mysql_assign_to_keycache(THD* thd, 
     DBUG_RETURN(TRUE);
   }
   mysql_mutex_unlock(&LOCK_global_system_variables);
+  if (!key_cache->key_cache_inited)
+  {
+    my_error(ER_UNKNOWN_KEY_CACHE, MYF(0), key_cache_name->str);
+    DBUG_RETURN(true);
+  }
   check_opt.key_cache= key_cache;
   DBUG_RETURN(mysql_admin_table(thd, tables, &check_opt,
                                 "assign_to_keycache", TL_READ_NO_INSERT, 0, 0,

=== modified file 'storage/myisam/mi_preload.c'
--- a/storage/myisam/mi_preload.c	2011-06-30 15:46:53 +0000
+++ b/storage/myisam/mi_preload.c	2011-12-14 14:33:01 +0000
@@ -53,6 +53,9 @@ int mi_preload(MI_INFO *info, ulonglong 
   if (!keys || !mi_is_any_key_active(key_map) || key_file_length == pos)
     DBUG_RETURN(0);
 
+  /* Preload into a non initialized key cache should never happen. */
+  DBUG_ASSERT(share->key_cache->key_cache_inited);
+
   block_length= keyinfo[0].block_length;
 
   if (ignore_leaves)

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (Georgi.Kodinov:3722 to 3725) Georgi Kodinov12 Jan