Commit 570f3281 authored by unknown's avatar unknown
Browse files

merged


BitKeeper/etc/ignore:
  auto-union
client/mysqltest.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/binary.result:
  Auto merged
mysql-test/r/federated.result:
  Auto merged
mysql-test/r/func_math.result:
  Auto merged
mysql-test/r/grant.result:
  Auto merged
mysql-test/r/heap.result:
  Auto merged
mysql-test/r/sp.result:
  Auto merged
mysql-test/r/trigger.result:
  Auto merged
mysql-test/r/type_decimal.result:
  Auto merged
mysql-test/r/union.result:
  Auto merged
mysql-test/t/binary.test:
  Auto merged
mysql-test/t/federated.test:
  Auto merged
mysql-test/t/mysql.test:
  Auto merged
mysql-test/t/mysqldump.test:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
mysql-test/t/trigger.test:
  Auto merged
sql/field_conv.cc:
  Auto merged
sql/ha_federated.cc:
  Auto merged
sql/ha_federated.h:
  Auto merged
sql/item.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/item_strfunc.h:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_trigger.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/table.cc:
  Auto merged
sql/table.h:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
parents 29c66eea 502b3073
Loading
Loading
Loading
Loading
+134 −3
Original line number Diff line number Diff line
@@ -134,6 +134,137 @@ autom4te.cache/*
autom4te.cache/output.0
autom4te.cache/requests
autom4te.cache/traces.0
bdb/*.ds?
bdb/*.vcproj
bdb/README
bdb/btree/btree_auto.c
bdb/build_unix/*
bdb/build_vxworks/db.h
bdb/build_vxworks/db_int.h
bdb/build_win32/db.h
bdb/build_win32/db_archive.dsp
bdb/build_win32/db_checkpoint.dsp
bdb/build_win32/db_config.h
bdb/build_win32/db_cxx.h
bdb/build_win32/db_deadlock.dsp
bdb/build_win32/db_dll.dsp
bdb/build_win32/db_dump.dsp
bdb/build_win32/db_int.h
bdb/build_win32/db_java.dsp
bdb/build_win32/db_load.dsp
bdb/build_win32/db_perf.dsp
bdb/build_win32/db_printlog.dsp
bdb/build_win32/db_recover.dsp
bdb/build_win32/db_stat.dsp
bdb/build_win32/db_static.dsp
bdb/build_win32/db_tcl.dsp
bdb/build_win32/db_test.dsp
bdb/build_win32/db_upgrade.dsp
bdb/build_win32/db_verify.dsp
bdb/build_win32/ex_access.dsp
bdb/build_win32/ex_btrec.dsp
bdb/build_win32/ex_env.dsp
bdb/build_win32/ex_lock.dsp
bdb/build_win32/ex_mpool.dsp
bdb/build_win32/ex_tpcb.dsp
bdb/build_win32/excxx_access.dsp
bdb/build_win32/excxx_btrec.dsp
bdb/build_win32/excxx_env.dsp
bdb/build_win32/excxx_lock.dsp
bdb/build_win32/excxx_mpool.dsp
bdb/build_win32/excxx_tpcb.dsp
bdb/build_win32/include.tcl
bdb/build_win32/libdb.def
bdb/build_win32/libdb.rc
bdb/db/crdel_auto.c
bdb/db/db_auto.c
bdb/dbinc_auto/*.*
bdb/dbreg/dbreg_auto.c
bdb/dist/autom4te-2.53.cache/*
bdb/dist/autom4te-2.53.cache/output.0
bdb/dist/autom4te-2.53.cache/requests
bdb/dist/autom4te-2.53.cache/traces.0
bdb/dist/autom4te.cache/*
bdb/dist/autom4te.cache/output.0
bdb/dist/autom4te.cache/requests
bdb/dist/autom4te.cache/traces.0
bdb/dist/config.hin
bdb/dist/configure
bdb/dist/tags
bdb/dist/template/db_server_proc
bdb/dist/template/gen_client_ret
bdb/dist/template/rec_btree
bdb/dist/template/rec_crdel
bdb/dist/template/rec_db
bdb/dist/template/rec_dbreg
bdb/dist/template/rec_fileops
bdb/dist/template/rec_hash
bdb/dist/template/rec_log
bdb/dist/template/rec_qam
bdb/dist/template/rec_txn
bdb/examples_c/ex_apprec/ex_apprec_auto.c
bdb/examples_c/ex_apprec/ex_apprec_auto.h
bdb/examples_c/ex_apprec/ex_apprec_template
bdb/examples_java
bdb/fileops/fileops_auto.c
bdb/hash/hash_auto.c
bdb/include/btree_auto.h
bdb/include/btree_ext.h
bdb/include/clib_ext.h
bdb/include/common_ext.h
bdb/include/crdel_auto.h
bdb/include/db_auto.h
bdb/include/db_ext.h
bdb/include/db_server.h
bdb/include/env_ext.h
bdb/include/gen_client_ext.h
bdb/include/gen_server_ext.h
bdb/include/hash_auto.h
bdb/include/hash_ext.h
bdb/include/lock_ext.h
bdb/include/log_auto.h
bdb/include/log_ext.h
bdb/include/mp_ext.h
bdb/include/mutex_ext.h
bdb/include/os_ext.h
bdb/include/qam_auto.h
bdb/include/qam_ext.h
bdb/include/rpc_client_ext.h
bdb/include/rpc_server_ext.h
bdb/include/tcl_ext.h
bdb/include/txn_auto.h
bdb/include/txn_ext.h
bdb/include/xa_ext.h
bdb/java/src/com/sleepycat/db/Db.java
bdb/java/src/com/sleepycat/db/DbBtreeStat.java
bdb/java/src/com/sleepycat/db/DbConstants.java
bdb/java/src/com/sleepycat/db/DbHashStat.java
bdb/java/src/com/sleepycat/db/DbLockStat.java
bdb/java/src/com/sleepycat/db/DbLogStat.java
bdb/java/src/com/sleepycat/db/DbMpoolFStat.java
bdb/java/src/com/sleepycat/db/DbQueueStat.java
bdb/java/src/com/sleepycat/db/DbRepStat.java
bdb/java/src/com/sleepycat/db/DbTxnStat.java
bdb/libdb_java/java_stat_auto.c
bdb/libdb_java/java_stat_auto.h
bdb/log/log_auto.c
bdb/qam/qam_auto.c
bdb/rpc_client/db_server_clnt.c
bdb/rpc_client/gen_client.c
bdb/rpc_server/c/db_server_proc.c
bdb/rpc_server/c/db_server_proc.sed
bdb/rpc_server/c/db_server_svc.c
bdb/rpc_server/c/db_server_xdr.c
bdb/rpc_server/c/gen_db_server.c
bdb/rpc_server/db_server.x
bdb/rpc_server/db_server_proc.sed
bdb/rpc_server/db_server_svc.c
bdb/rpc_server/db_server_xdr.c
bdb/rpc_server/gen_db_server.c
bdb/test/TESTS
bdb/test/include.tcl
bdb/test/logtrack.list
bdb/txn/txn_auto.c
binary/*
bkpull.log
bkpull.log*
@@ -253,6 +384,7 @@ include/my_global.h
include/mysql_version.h
include/mysqld_ername.h
include/mysqld_error.h
include/openssl
include/readline
include/readline/*.h
include/readline/readline.h
@@ -396,6 +528,7 @@ libmysqld/opt_range.cc
libmysqld/opt_sum.cc
libmysqld/pack.c
libmysqld/parse_file.cc
libmysqld/partition_info.cc
libmysqld/password.c
libmysqld/procedure.cc
libmysqld/protocol.cc
@@ -1383,6 +1516,7 @@ storage/ndb/src/common/mgmcommon/printConfig/*.d
storage/ndb/src/common/portlib/libportlib.dsp
storage/ndb/src/common/transporter/libtransporter.dsp
storage/ndb/src/common/util/libgeneral.dsp
storage/ndb/src/common/util/testBitmask.cpp
storage/ndb/src/cw/cpcd/ndb_cpcd
storage/ndb/src/dummy.cpp
storage/ndb/src/kernel/blocks/backup/libbackup.dsp
@@ -1614,6 +1748,3 @@ vio/viotest-sslconnect.cpp
vio/viotest.cpp
zlib/*.ds?
zlib/*.vcproj
libmysqld/partition_info.cc
storage/ndb/src/common/util/testBitmask.cpp
include/openssl
+47 −8
Original line number Diff line number Diff line
@@ -185,6 +185,7 @@ void tee_fprintf(FILE *file, const char *fmt, ...);
void tee_fputs(const char *s, FILE *file);
void tee_puts(const char *s, FILE *file);
void tee_putc(int c, FILE *file);
static void tee_print_sized_data(const char *data, unsigned int length, unsigned int width);
/* The names of functions that actually do the manipulation. */
static int get_options(int argc,char **argv);
static int com_quit(String *str,char*),
@@ -2308,20 +2309,29 @@ print_table_data(MYSQL_RES *result)
    for (uint off= 0; off < mysql_num_fields(result); off++)
    {
      const char *str= cur[off] ? cur[off] : "NULL";
      uint currlength;
      uint maxlength;
      uint numcells;

      field= mysql_fetch_field(result);
      uint maxlength= field->max_length;
      maxlength= field->max_length;
      currlength= (uint) lengths[off];
      numcells= charset_info->cset->numcells(charset_info, 
                                                    str, str + currlength);
      if (maxlength > MAX_COLUMN_LENGTH)
      {
	tee_fputs(str, PAGER);
        tee_print_sized_data(str, currlength, maxlength);
        tee_fputs(" |", PAGER);
      }
      else
      {
        uint currlength= (uint) lengths[off];
        uint numcells= charset_info->cset->numcells(charset_info, 
                                                    str, str + currlength);
        tee_fprintf(PAGER, num_flag[off] ? "%*s |" : " %-*s|",
                    maxlength + currlength - numcells, str);
        if (num_flag[off] != 0)
          tee_fprintf(PAGER, " %-*s|", maxlength + currlength - numcells, str);
        else 
        {
          tee_print_sized_data(str, currlength, maxlength);
          tee_fputs(" |", PAGER);
        }
      }
    }
    (void) tee_fputs("\n", PAGER);
@@ -2331,6 +2341,35 @@ print_table_data(MYSQL_RES *result)
}


static void
tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
{
  /* 
    It is not a number, so print each character justified to the left.
    For '\0's print ASCII spaces instead, as '\0' is eaten by (at
    least my) console driver, and that messes up the pretty table
    grid.  (The \0 is also the reason we can't use fprintf() .) 
  */
  unsigned int i;
  const char *p;

  tee_putc(' ', PAGER);

  for (i= 0, p= data; i < length; i+= 1, p+= 1)
  {
    if (*p == '\0')
      tee_putc((int)' ', PAGER);
    else
      tee_putc((int)*p, PAGER);
  }

  i+= 1; 
  for (   ; i < width; i+= 1)
    tee_putc((int)' ', PAGER);
}



static void
print_table_data_html(MYSQL_RES *result)
{
+38 −12
Original line number Diff line number Diff line
@@ -1180,8 +1180,6 @@ static void do_exec(struct st_query *query)
               ("error: %d, status: %d", error, status));
    for (i= 0; i < query->expected_errors; i++)
    {
      DBUG_PRINT("info",
                 ("error: %d, status: %d", error, status));
      DBUG_PRINT("info", ("expected error: %d",
                          query->expected_errno[i].code.errnum));
      if ((query->expected_errno[i].type == ERR_ERRNO) &&
@@ -1413,6 +1411,35 @@ int do_modify_var(struct st_query *query, const char *name,
}


/*
  Wrapper for 'system' function

  NOTE
   If mysqltest is executed from cygwin shell, the command will be
   executed in the "windows command interpreter" cmd.exe and we prepend "sh"
   to make it be executed by cygwins "bash". Thus commands like "rm",
   "mkdir" as well as shellscripts can executed by "system" in Windows.

*/

int my_system(DYNAMIC_STRING* ds_cmd)
{
#ifdef __WIN__
  /* Dump the command into a sh script file and execute with "sh" */
  int err;
  char tmp_sh_name[64], tmp_sh_cmd[70];
  my_snprintf(tmp_sh_name, sizeof(tmp_sh_name), "tmp_%d.sh", getpid());
  my_snprintf(tmp_sh_cmd, sizeof(tmp_sh_cmd), "sh %s", tmp_sh_name);
  str_to_file(tmp_sh_name, ds_cmd->str, ds_cmd->length);
  err= system(tmp_sh_cmd);
  my_delete(tmp_sh_name, MYF(0));
  return err;
#else
  return system(ds_cmd->str);
#endif
}


/*

  SYNOPSIS
@@ -1425,14 +1452,12 @@ int do_modify_var(struct st_query *query, const char *name,
    Eval the query to expand any $variables in the command.
    Execute the command with the "system" command.

  NOTE
   If mysqltest is executed from cygwin shell, the command will be
   executed in cygwin shell. Thus commands like "rm" etc can be used.
*/

int do_system(struct st_query *command)
void do_system(struct st_query *command)
{
  DYNAMIC_STRING ds_cmd;
  DBUG_ENTER("do_system");

  if (strlen(command->first_argument) == 0)
    die("Missing arguments to system, nothing to do!");
@@ -1444,7 +1469,7 @@ int do_system(struct st_query *command)

  DBUG_PRINT("info", ("running system command '%s' as '%s'",
                      command->first_argument, ds_cmd.str));
  if (system(ds_cmd.str))
  if (my_system(&ds_cmd))
  {
    if (command->abort_on_error)
      die("system command '%s' failed", command->first_argument);
@@ -1456,7 +1481,7 @@ int do_system(struct st_query *command)
  }

  command->last_argument= command->end;
  return 0;
  DBUG_VOID_RETURN;
}


@@ -1795,6 +1820,7 @@ int do_sleep(struct st_query *query, my_bool real_sleep)
  char *p= query->first_argument;
  char *sleep_start, *sleep_end= query->end;
  double sleep_val;
  const char *cmd = (real_sleep ? "real_sleep" : "sleep");

  while (my_isspace(charset_info, *p))
    p++;
@@ -2764,7 +2790,7 @@ int do_done(struct st_query *q)

 */

int do_block(enum block_cmd cmd, struct st_query* q)
void do_block(enum block_cmd cmd, struct st_query* q)
{
  char *p= q->first_argument;
  const char *expr_start, *expr_end;
@@ -2788,7 +2814,7 @@ int do_block(enum block_cmd cmd, struct st_query* q)
    cur_block++;
    cur_block->cmd= cmd;
    cur_block->ok= FALSE;
    return 0;
    DBUG_VOID_RETURN;
  }

  /* Parse and evaluate test expression */
@@ -3704,7 +3730,7 @@ static void init_win_path_patterns()

static void free_win_path_patterns()
{
  int i= 0;
  uint i= 0;
  for (i=0 ; i < patterns.elements ; i++)
  {
    const char** pattern= dynamic_element(&patterns, i, const char**);
+22 −32
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ int check_user(THD *thd, enum enum_server_command command,
	       const char *passwd, uint passwd_len, const char *db,
	       bool check_count);
C_MODE_START

#include <mysql.h>
#undef ER
#include "errmsg.h"
@@ -46,22 +47,6 @@ C_MODE_START

static my_bool emb_read_query_result(MYSQL *mysql);

C_MODE_END

void THD::clear_data_list()
{
  while (first_data)
  {
    MYSQL_DATA *data= first_data;
    first_data= data->embedded_info->next;
    free_rows(data);
  }
  data_tail= &first_data;
  free_rows(cur_data);
  cur_data= 0;
}

C_MODE_START

/*
  Reads error information from the MYSQL_DATA and puts
@@ -426,15 +411,6 @@ MYSQL_METHODS embedded_methods=
  emb_read_rows_from_cursor
};

C_MODE_END

void THD::clear_error()
{
  net.last_error[0]= 0;
  net.last_errno= 0;
  net.report_error= 0;
}

/*
  Make a copy of array and the strings array points to
*/
@@ -461,10 +437,6 @@ char **copy_arguments(int argc, char **argv)
  return res;
}


extern "C"
{

char **		copy_arguments_ptr= 0;

int init_embedded_server(int argc, char **argv, char **groups)
@@ -580,9 +552,7 @@ void end_embedded_server()
  clean_up(0);
}

} /* extern "C" */

C_MODE_START
void init_embedded_mysql(MYSQL *mysql, int client_flag, char *db)
{
  THD *thd = (THD *)mysql->thd;
@@ -701,6 +671,26 @@ int check_embedded_connection(MYSQL *mysql)

C_MODE_END

void THD::clear_data_list()
{
  while (first_data)
  {
    MYSQL_DATA *data= first_data;
    first_data= data->embedded_info->next;
    free_rows(data);
  }
  data_tail= &first_data;
  free_rows(cur_data);
  cur_data= 0;
}

void THD::clear_error()
{
  net.last_error[0]= 0;
  net.last_errno= 0;
  net.report_error= 0;
}

static char *dup_str_aux(MEM_ROOT *root, const char *from, uint length,
			 CHARSET_INFO *fromcs, CHARSET_INFO *tocs)
{
+10 −1
Original line number Diff line number Diff line
@@ -96,7 +96,16 @@ sub mtr_exe_exists (@) {
  map {$_.= ".exe"} @path if $::glob_win32;
  foreach my $path ( @path )
  {
    return $path if -x $path;
    if ( -x $path )
    {
      if ( $::glob_cygwin_perl )
      {
        $path= `cygpath -w $path`;
	# Chop off the \n that cygpath adds
        $path=~ s/\n//;
      }
      return $path;
    }
  }
  if ( @path == 1 )
  {
Loading