From f77e2692dcce37e23a643c4e7c83394ea553b5c3 Mon Sep 17 00:00:00 2001 From: Michael Widenius Date: Fri, 2 Oct 2009 13:36:28 +0300 Subject: [PATCH] Added client functions: - mysql_get_server_name() This returns MySQL or MariaDB depending on the server type - mariadb_connection() This returns 1 if you are connected to a MariaDB server Modifed the MySQL command line client to print out if you are connected to MariaDB or MySQL Better default prompt (shows server you are connected to and base directory) client/mysql.cc: Print out if you are connected to MariaDB or MySQL Better default prompt (shows server you are connected to and base directory) Added option \N to prompt to print server name. configure.in: Changed maria to MariaDB in version string include/mysql.h: Added mysql_get_server_name() and mariadb_connection() include/mysql.h.pp: Update for new API functions libmysql/libmysql.c: Added client functions: - mysql_get_server_name() This returns MySQL or MariaDB depending on the server type - mariadb_connection() This returns 1 if you are connected to a MariaDB server --- client/mysql.cc | 18 +++++++++++++----- configure.in | 2 +- include/mysql.h | 2 ++ include/mysql.h.pp | 2 ++ libmysql/libmysql.c | 12 ++++++++++++ 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 99c279dfc44..d73d1d992d7 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -43,7 +43,7 @@ #include #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__((unused)), 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_time,char *buff) 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("unkown"); + break; case 'h': { const char *prompt; diff --git a/configure.in b/configure.in index 4705d4a343a..c293b5eae1f 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/include/mysql.h b/include/mysql.h index d114afb6c93..074098aef1b 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -527,6 +527,7 @@ int STDCALL mysql_set_server_option(MYSQL *mysql, 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 *debug); 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, diff --git a/include/mysql.h.pp b/include/mysql.h.pp index 081c95c5638..c333cb2bec5 100644 --- a/include/mysql.h.pp +++ b/include/mysql.h.pp @@ -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, diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 464cc5f870e..526dcf51e70 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -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) {