Loading client/mysql.cc +44 −10 Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ const char *VER= "14.12"; /* Don't try to make a nice table if the data is too big */ #define MAX_COLUMN_LENGTH 1024 /* Buffer to hold 'version' and 'version_comment' */ #define MAX_SERVER_VERSION_LENGTH 128 gptr sql_alloc(unsigned size); // Don't use mysqld alloc for these void sql_element_free(void *ptr); #include "sql_string.h" Loading Loading @@ -208,6 +211,7 @@ static int com_nopager(String *str, char*), com_pager(String *str, char*), static int read_and_execute(bool interactive); static int sql_connect(char *host,char *database,char *user,char *password, uint silent); static const char *server_version_string(MYSQL *mysql); static int put_info(const char *str,INFO_TYPE info,uint error=0, const char *sql_state=0); static int put_error(MYSQL *mysql); Loading Loading @@ -432,8 +436,8 @@ int main(int argc,char *argv[]) put_info("Welcome to the MySQL monitor. Commands end with ; or \\g.", INFO_INFO); sprintf((char*) glob_buffer.ptr(), "Your MySQL connection id is %lu to server version: %s\n", mysql_thread_id(&mysql),mysql_get_server_info(&mysql)); "Your MySQL connection id is %lu\nServer version: %s\n", mysql_thread_id(&mysql), server_version_string(&mysql)); put_info((char*) glob_buffer.ptr(),INFO_INFO); #ifdef HAVE_READLINE Loading Loading @@ -3335,16 +3339,13 @@ 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 version:\t\t%s\n", mysql_get_server_info(&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)); if ((id= mysql_insert_id(&mysql))) tee_fprintf(stdout, "Insert id:\t\t%s\n", llstr(id, buff)); /* Don't remove "limit 1", it is protection againts SQL_SELECT_LIMIT=0 */ /* "limit 1" is protection against SQL_SELECT_LIMIT=0 */ if (!mysql_query(&mysql,"select @@character_set_client, @@character_set_connection, @@character_set_server, @@character_set_database limit 1") && (result=mysql_use_result(&mysql))) { Loading Loading @@ -3409,6 +3410,39 @@ select_limit, max_join_size); return 0; } static const char * server_version_string(MYSQL *mysql) { static char buf[MAX_SERVER_VERSION_LENGTH] = ""; /* Only one thread calls this, so no synchronization is needed */ if (buf[0] == '\0') { char *bufp = buf; MYSQL_RES *result; MYSQL_ROW cur; bufp = strnmov(buf, mysql_get_server_info(mysql), sizeof buf); /* "limit 1" is protection against SQL_SELECT_LIMIT=0 */ if (!mysql_query(mysql, "select @@version_comment limit 1") && (result = mysql_use_result(mysql))) { MYSQL_ROW cur = mysql_fetch_row(result); if (cur && cur[0]) { bufp = strxnmov(bufp, sizeof buf - (bufp - buf), " ", cur[0], NullS); } mysql_free_result(result); } /* str*nmov doesn't guarantee NUL-termination */ if (bufp == buf + sizeof buf) buf[sizeof buf - 1] = '\0'; } return buf; } static int put_info(const char *str,INFO_TYPE info_type, uint error, const char *sqlstate) Loading Loading @@ -3536,14 +3570,14 @@ void tee_puts(const char *s, FILE *file) { NETWARE_YIELD; fputs(s, file); fputs("\n", file); fputc('\n', file); #ifdef OS2 fflush(file); #endif if (opt_outfile) { fputs(s, OUTFILE); fputs("\n", OUTFILE); fputc('\n', OUTFILE); } } Loading sql/log.cc +7 −4 Original line number Diff line number Diff line Loading @@ -566,15 +566,18 @@ bool MYSQL_LOG::open(const char *log_name, case LOG_NORMAL: { char *end; int len=my_snprintf(buff, sizeof(buff), "%s, Version: %s. " int len=my_snprintf(buff, sizeof(buff), "%s, Version: %s (%s). " #ifdef EMBEDDED_LIBRARY "embedded library\n", my_progname, server_version "embedded library\n", my_progname, server_version, MYSQL_COMPILATION_COMMENT #elif __NT__ "started with:\nTCP Port: %d, Named Pipe: %s\n", my_progname, server_version, mysqld_port, mysqld_unix_port my_progname, server_version, MYSQL_COMPILATION_COMMENT, mysqld_port, mysqld_unix_port #else "started with:\nTcp port: %d Unix socket: %s\n", my_progname,server_version,mysqld_port,mysqld_unix_port my_progname, server_version, MYSQL_COMPILATION_COMMENT, mysqld_port, mysqld_unix_port #endif ); end=strnmov(buff+len,"Time Id Command Argument\n", Loading Loading
client/mysql.cc +44 −10 Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ const char *VER= "14.12"; /* Don't try to make a nice table if the data is too big */ #define MAX_COLUMN_LENGTH 1024 /* Buffer to hold 'version' and 'version_comment' */ #define MAX_SERVER_VERSION_LENGTH 128 gptr sql_alloc(unsigned size); // Don't use mysqld alloc for these void sql_element_free(void *ptr); #include "sql_string.h" Loading Loading @@ -208,6 +211,7 @@ static int com_nopager(String *str, char*), com_pager(String *str, char*), static int read_and_execute(bool interactive); static int sql_connect(char *host,char *database,char *user,char *password, uint silent); static const char *server_version_string(MYSQL *mysql); static int put_info(const char *str,INFO_TYPE info,uint error=0, const char *sql_state=0); static int put_error(MYSQL *mysql); Loading Loading @@ -432,8 +436,8 @@ int main(int argc,char *argv[]) put_info("Welcome to the MySQL monitor. Commands end with ; or \\g.", INFO_INFO); sprintf((char*) glob_buffer.ptr(), "Your MySQL connection id is %lu to server version: %s\n", mysql_thread_id(&mysql),mysql_get_server_info(&mysql)); "Your MySQL connection id is %lu\nServer version: %s\n", mysql_thread_id(&mysql), server_version_string(&mysql)); put_info((char*) glob_buffer.ptr(),INFO_INFO); #ifdef HAVE_READLINE Loading Loading @@ -3335,16 +3339,13 @@ 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 version:\t\t%s\n", mysql_get_server_info(&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)); if ((id= mysql_insert_id(&mysql))) tee_fprintf(stdout, "Insert id:\t\t%s\n", llstr(id, buff)); /* Don't remove "limit 1", it is protection againts SQL_SELECT_LIMIT=0 */ /* "limit 1" is protection against SQL_SELECT_LIMIT=0 */ if (!mysql_query(&mysql,"select @@character_set_client, @@character_set_connection, @@character_set_server, @@character_set_database limit 1") && (result=mysql_use_result(&mysql))) { Loading Loading @@ -3409,6 +3410,39 @@ select_limit, max_join_size); return 0; } static const char * server_version_string(MYSQL *mysql) { static char buf[MAX_SERVER_VERSION_LENGTH] = ""; /* Only one thread calls this, so no synchronization is needed */ if (buf[0] == '\0') { char *bufp = buf; MYSQL_RES *result; MYSQL_ROW cur; bufp = strnmov(buf, mysql_get_server_info(mysql), sizeof buf); /* "limit 1" is protection against SQL_SELECT_LIMIT=0 */ if (!mysql_query(mysql, "select @@version_comment limit 1") && (result = mysql_use_result(mysql))) { MYSQL_ROW cur = mysql_fetch_row(result); if (cur && cur[0]) { bufp = strxnmov(bufp, sizeof buf - (bufp - buf), " ", cur[0], NullS); } mysql_free_result(result); } /* str*nmov doesn't guarantee NUL-termination */ if (bufp == buf + sizeof buf) buf[sizeof buf - 1] = '\0'; } return buf; } static int put_info(const char *str,INFO_TYPE info_type, uint error, const char *sqlstate) Loading Loading @@ -3536,14 +3570,14 @@ void tee_puts(const char *s, FILE *file) { NETWARE_YIELD; fputs(s, file); fputs("\n", file); fputc('\n', file); #ifdef OS2 fflush(file); #endif if (opt_outfile) { fputs(s, OUTFILE); fputs("\n", OUTFILE); fputc('\n', OUTFILE); } } Loading
sql/log.cc +7 −4 Original line number Diff line number Diff line Loading @@ -566,15 +566,18 @@ bool MYSQL_LOG::open(const char *log_name, case LOG_NORMAL: { char *end; int len=my_snprintf(buff, sizeof(buff), "%s, Version: %s. " int len=my_snprintf(buff, sizeof(buff), "%s, Version: %s (%s). " #ifdef EMBEDDED_LIBRARY "embedded library\n", my_progname, server_version "embedded library\n", my_progname, server_version, MYSQL_COMPILATION_COMMENT #elif __NT__ "started with:\nTCP Port: %d, Named Pipe: %s\n", my_progname, server_version, mysqld_port, mysqld_unix_port my_progname, server_version, MYSQL_COMPILATION_COMMENT, mysqld_port, mysqld_unix_port #else "started with:\nTcp port: %d Unix socket: %s\n", my_progname,server_version,mysqld_port,mysqld_unix_port my_progname, server_version, MYSQL_COMPILATION_COMMENT, mysqld_port, mysqld_unix_port #endif ); end=strnmov(buff+len,"Time Id Command Argument\n", Loading