Commit e6340946 authored by unknown's avatar unknown
Browse files

Merge neptunus.(none):/home/msvensson/mysql/mysql-5.1

into  neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint


BitKeeper/etc/collapsed:
  auto-union
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/lib/mtr_process.pl:
  Auto merged
mysql-test/r/ps.result:
  Auto merged
mysql-test/t/ps.test:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_func.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
parents 16336789 4506b26d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1242,6 +1242,7 @@ mysql-test/gmon.out
mysql-test/install_test_db
mysql-test/mtr
mysql-test/mysql-test-run
mysql-test/mysql-test-run-shell
mysql-test/mysql-test-run.log
mysql-test/mysql_test_run_new
mysql-test/ndb/ndbcluster
@@ -1733,6 +1734,7 @@ netware/.deps/my_manage.Po
netware/.deps/mysql_install_db.Po
netware/.deps/mysql_test_run.Po
netware/.deps/mysqld_safe.Po
netware/libmysql.imp
pack_isam/*.ds?
perror/*.ds?
perror/*.vcproj
+2 −0
Original line number Diff line number Diff line
@@ -5,3 +5,5 @@
45001f7c3b2hhCXDKfUvzkX9TNe6VA
45002051rHJfMEXAIMiAZV0clxvKSA
4513d8e4Af4dQWuk13sArwofRgFDQw
4519a6c5BVUxEHTf5iJnjZkixMBs8g
451ab499rgdjXyOnUDqHu-wBDoS-OQ
+45 −11
Original line number Diff line number Diff line
@@ -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"
@@ -207,6 +210,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);
@@ -430,8 +434,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
@@ -2896,7 +2900,7 @@ com_connect(String *buffer, char *line)
  bzero(buff, sizeof(buff));
  if (buffer)
  {
    strmake(buff, line, sizeof(buff));
    strmake(buff, line, sizeof(buff) - 1);
    tmp= get_arg(buff, 0);
    if (tmp && *tmp)
    {
@@ -3011,7 +3015,7 @@ com_use(String *buffer __attribute__((unused)), char *line)
  int select_db;

  bzero(buff, sizeof(buff));
  strmov(buff, line);
  strmake(buff, line, sizeof(buff) - 1);
  tmp= get_arg(buff, 0);
  if (!tmp || !*tmp)
  {
@@ -3321,16 +3325,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)))
  {
@@ -3395,6 +3396,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)
@@ -3516,11 +3550,11 @@ void tee_puts(const char *s, FILE *file)
{
  NETWARE_YIELD;
  fputs(s, file);
  fputs("\n", file);
  fputc('\n', file);
  if (opt_outfile)
  {
    fputs(s, OUTFILE);
    fputs("\n", OUTFILE);
    fputc('\n', OUTFILE);
  }
}

+13 −3
Original line number Diff line number Diff line
@@ -1784,8 +1784,12 @@ int do_save_master_pos()

int do_let(struct st_query *query)
{
  int ret;
  char *p= query->first_argument;
  char *var_name, *var_name_end, *var_val_start;
  char *var_name, *var_name_end;
  DYNAMIC_STRING let_rhs_expr;

  init_dynamic_string(&let_rhs_expr, "", 512, 2048);

  /* Find <var_name> */
  if (!*p)
@@ -1805,10 +1809,16 @@ int do_let(struct st_query *query)
  /* Find start of <var_val> */
  while (*p && my_isspace(charset_info,*p))
    p++;
  var_val_start= p;

  do_eval(&let_rhs_expr, p, FALSE);

  query->last_argument= query->end;
  /* Assign var_val to var_name */
  return var_set(var_name, var_name_end, var_val_start, query->end);
  ret= var_set(var_name, var_name_end, let_rhs_expr.str, 
                 (let_rhs_expr.str + let_rhs_expr.length));
  dynstr_free(&let_rhs_expr);

  return(ret);
}


+9 −4
Original line number Diff line number Diff line
@@ -22,11 +22,15 @@ BUILT_SOURCES= $(top_builddir)/include/mysqld_error.h \
                        $(top_builddir)/include/sql_state.h \
                        $(top_builddir)/include/mysqld_ername.h
pkginclude_HEADERS=	$(BUILT_SOURCES)
CLEANFILES =		$(BUILT_SOURCES)
DISTCLEANFILES =	$(BUILT_SOURCES)
SUBDIRS =		@yassl_dir@

# This will build mysqld_error.h and sql_state.h
$(top_builddir)/include/mysqld_error.h: comp_err$(EXEEXT)
# This will build mysqld_error.h, mysqld_ername.h and sql_state.h
# NOTE Built files should depend on their sources to avoid
# the built files being rebuilt in source dist
$(top_builddir)/include/mysqld_error.h: comp_err.c \
			$(top_srcdir)/sql/share/errmsg.txt
	$(MAKE) $(AM_MAKEFLAGS) comp_err$(EXEEXT)
	$(top_builddir)/extra/comp_err$(EXEEXT) \
	--charset=$(top_srcdir)/sql/share/charsets \
	--out-dir=$(top_builddir)/sql/share/ \
@@ -37,9 +41,10 @@ $(top_builddir)/include/mysqld_error.h: comp_err$(EXEEXT)
$(top_builddir)/include/mysqld_ername.h: $(top_builddir)/include/mysqld_error.h
$(top_builddir)/include/sql_state.h: $(top_builddir)/include/mysqld_error.h

bin_PROGRAMS =		replace comp_err perror resolveip my_print_defaults \
bin_PROGRAMS =		replace perror resolveip my_print_defaults \
			resolve_stack_dump mysql_waitpid innochecksum
noinst_PROGRAMS =	charset2html
EXTRA_PROGRAMS =	comp_err
EXTRA_DIST =		CMakeLists.txt

perror.o: perror.c 
Loading