#At lp:maria 2748 knielsen@knielsen-hq.org 2009-10-02 [merge] Merge Monty's fixes from main into release branch. - MariaDB naming. - Error reporting with mysqld --help --verbose. modified: client/mysql.cc configure.in include/mysql.h include/mysql.h.pp libmysql/libmysql.c mysql-test/r/mysqld_option_err.result mysql-test/t/mysqld_option_err.test sql/mysqld.cc === modified file 'client/mysql.cc' --- a/client/mysql.cc 2009-09-07 20:50:10 +0000 +++ b/client/mysql.cc 2009-10-02 11:56:11 +0000 @@ -43,7 +43,7 @@ #include <locale.h> #endif -const char *VER= "14.15"; +const char *VER= "14.16"; /* Don't try to make a nice table if the data is too big */ #define MAX_COLUMN_LENGTH 1024 @@ -1076,7 +1076,7 @@ int main(int argc,char *argv[]) delimiter_str= delimiter; default_prompt = my_strdup(getenv("MYSQL_PS1") ? getenv("MYSQL_PS1") : - "mysql> ",MYF(MY_WME)); + "\\N [\\d]> ",MYF(MY_WME)); current_prompt = my_strdup(default_prompt,MYF(MY_WME)); prompt_counter=0; @@ -1156,10 +1156,11 @@ int main(int argc,char *argv[]) signal(SIGINT, handle_sigint); // Catch SIGINT to clean up signal(SIGQUIT, mysql_end); // Catch SIGQUIT to clean up - put_info("Welcome to the MySQL monitor. Commands end with ; or \\g.", + put_info("Welcome to the MariaDB monitor. Commands end with ; or \\g.", INFO_INFO); sprintf((char*) glob_buffer.ptr(), - "Your MySQL connection id is %lu\nServer version: %s\n", + "Your %s connection id is %lu\nServer version: %s\n", + mysql_get_server_name(&mysql), mysql_thread_id(&mysql), server_version_string(&mysql)); put_info((char*) glob_buffer.ptr(),INFO_INFO); @@ -4369,6 +4370,7 @@ com_status(String *buffer __attribute__( tee_fprintf(stdout, "Using outfile:\t\t'%s'\n", opt_outfile ? outfile : ""); #endif tee_fprintf(stdout, "Using delimiter:\t%s\n", delimiter); + tee_fprintf(stdout, "Server:\t\t\t%s\n", mysql_get_server_name(&mysql)); tee_fprintf(stdout, "Server version:\t\t%s\n", server_version_string(&mysql)); tee_fprintf(stdout, "Protocol version:\t%d\n", mysql_get_proto_info(&mysql)); tee_fprintf(stdout, "Connection:\t\t%s\n", mysql_get_host_info(&mysql)); @@ -4700,7 +4702,7 @@ static void mysql_end_timer(ulong start_ strmov(strend(buff),")"); } -static const char* construct_prompt() +static const char *construct_prompt() { processed_prompt.free(); // Erase the old prompt time_t lclock = time(NULL); // Get the date struct @@ -4729,6 +4731,12 @@ static const char* construct_prompt() case 'd': processed_prompt.append(current_db ? current_db : "(none)"); break; + case 'N': + if (connected) + processed_prompt.append(mysql_get_server_name(&mysql)); + else + processed_prompt.append("unknown"); + break; case 'h': { const char *prompt; === modified file 'configure.in' --- a/configure.in 2009-09-29 22:50:10 +0000 +++ b/configure.in 2009-10-02 12:55:16 +0000 @@ -13,7 +13,7 @@ AC_CANONICAL_SYSTEM # # When merging new MySQL releases, update the version number to match the # MySQL version number, but reset the maria subrelease (-beta1). -AM_INIT_AUTOMAKE(mysql, 5.1.38-maria-beta1) +AM_INIT_AUTOMAKE(mysql, 5.1.38-MariaDB-beta1) AM_CONFIG_HEADER([include/config.h:config.h.in]) PROTOCOL_VERSION=10 === modified file 'include/mysql.h' --- a/include/mysql.h 2007-11-26 18:10:26 +0000 +++ b/include/mysql.h 2009-10-02 10:36:28 +0000 @@ -527,6 +527,7 @@ int STDCALL mysql_set_server_option(MYS int STDCALL mysql_ping(MYSQL *mysql); const char * STDCALL mysql_stat(MYSQL *mysql); const char * STDCALL mysql_get_server_info(MYSQL *mysql); +const char * STDCALL mysql_get_server_name(MYSQL *mysql); const char * STDCALL mysql_get_client_info(void); unsigned long STDCALL mysql_get_client_version(void); const char * STDCALL mysql_get_host_info(MYSQL *mysql); @@ -560,6 +561,7 @@ void STDCALL mysql_debug(const char *de void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); unsigned int STDCALL mysql_thread_safe(void); my_bool STDCALL mysql_embedded(void); +my_bool STDCALL mariadb_connection(MYSQL *mysql); MYSQL_MANAGER* STDCALL mysql_manager_init(MYSQL_MANAGER* con); MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con, const char* host, === modified file 'include/mysql.h.pp' --- a/include/mysql.h.pp 2009-03-12 22:27:35 +0000 +++ b/include/mysql.h.pp 2009-10-02 10:36:28 +0000 @@ -487,6 +487,7 @@ int mysql_set_server_option(MYSQL *mysql int mysql_ping(MYSQL *mysql); const char * mysql_stat(MYSQL *mysql); const char * mysql_get_server_info(MYSQL *mysql); +const char * mysql_get_server_name(MYSQL *mysql); const char * mysql_get_client_info(void); unsigned long mysql_get_client_version(void); const char * mysql_get_host_info(MYSQL *mysql); @@ -520,6 +521,7 @@ void mysql_debug(const char *debug); void myodbc_remove_escape(MYSQL *mysql,char *name); unsigned int mysql_thread_safe(void); my_bool mysql_embedded(void); +my_bool mariadb_connection(MYSQL *mysql); MYSQL_MANAGER* mysql_manager_init(MYSQL_MANAGER* con); MYSQL_MANAGER* mysql_manager_connect(MYSQL_MANAGER* con, const char* host, === modified file 'libmysql/libmysql.c' --- a/libmysql/libmysql.c 2009-04-25 10:05:32 +0000 +++ b/libmysql/libmysql.c 2009-10-02 10:36:28 +0000 @@ -1430,6 +1430,18 @@ mysql_get_server_info(MYSQL *mysql) } +my_bool STDCALL mariadb_connection(MYSQL *mysql) +{ + return strinstr(mysql->server_version, "MariaDB") != 0; +} + +const char * STDCALL +mysql_get_server_name(MYSQL *mysql) +{ + return mariadb_connection(mysql) ? "MariaDB" : "MySQL"; +} + + const char * STDCALL mysql_get_host_info(MYSQL *mysql) { === modified file 'mysql-test/r/mysqld_option_err.result' --- a/mysql-test/r/mysqld_option_err.result 2009-09-03 13:05:02 +0000 +++ b/mysql-test/r/mysqld_option_err.result 2009-10-02 11:09:01 +0000 @@ -3,4 +3,6 @@ Test bad binlog format. Test bad default storage engine. Test non-numeric value passed to number option. Test that bad value for plugin enum option is rejected correctly. +Test that --help --verbose works +Test that --not-known-option --help --verbose gives error Done. === modified file 'mysql-test/t/mysqld_option_err.test' --- a/mysql-test/t/mysqld_option_err.test 2009-09-25 14:38:02 +0000 +++ b/mysql-test/t/mysqld_option_err.test 2009-10-02 11:09:01 +0000 @@ -46,5 +46,14 @@ mkdir $MYSQLTEST_VARDIR/tmp/mysqld_optio --error 7 --exec $MYSQLD --skip-networking --datadir=$MYSQLTEST_VARDIR/tmp/mysqld_option_err --skip-grant-tables $EXAMPLE_PLUGIN_OPT --plugin-load=EXAMPLE=ha_example.so --plugin-example-enum-var=noexist >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1 +# +# Test that an wrong option with --help --verbose gives an error +# + +--echo Test that --help --verbose works +--exec $MYSQLD --help --verbose >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1 +--echo Test that --not-known-option --help --verbose gives error +--error 2 +--exec $MYSQLD --not-known-option --help --verbose >>$MYSQLTEST_VARDIR/tmp/mysqld_option_err/mysqltest.log 2>&1 --echo Done. === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2009-09-17 22:46:10 +0000 +++ b/sql/mysqld.cc 2009-10-02 11:09:01 +0000 @@ -4020,9 +4020,6 @@ server."); plugins_are_initialized= TRUE; /* Don't separate from init function */ } - if (opt_help) - unireg_abort(0); - /* we do want to exit if there are any other unknown options */ if (defaults_argc > 1) { @@ -4047,13 +4044,15 @@ server."); if (defaults_argc) { - fprintf(stderr, "%s: Too many arguments (first extra is '%s').\n" - "Use --verbose --help to get a list of available options\n", + fprintf(stderr, "%s: Too many arguments (first extra is '%s').\n", my_progname, *tmp_argv); unireg_abort(1); } } + if (opt_help) + unireg_abort(0); + /* if the errmsg.sys is not loaded, terminate to maintain behaviour */ if (!errmesg[0][0]) unireg_abort(1);