Commit 334a4815 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

Fixed bug in multi-table-delete code

parent 7f681996
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@

**********************************************************************/

#define MTEST_VERSION "1.9"
#define MTEST_VERSION "1.10"

#include <global.h>
#include <my_sys.h>
@@ -84,7 +84,7 @@
static int record = 0, verbose = 0, silent = 0, opt_sleep=0;
static char *db = 0, *pass=0;
const char* user = 0, *host = 0, *unix_sock = 0;
static int port = 0;
static int port = 0, opt_big_test=0;
static uint start_lineno, *lineno;

static char **default_argv;
@@ -1410,6 +1410,7 @@ struct option long_options[] =
{
  {"debug",       optional_argument, 0, '#'},
  {"database",    required_argument, 0, 'D'},
  {"big-test",	  no_argument,	     0, 'B'},
  {"help",        no_argument,       0, '?'},
  {"host",        required_argument, 0, 'h'},
  {"password",    optional_argument, 0, 'p'},
@@ -1453,6 +1454,7 @@ void usage()
  -u, --user=...           User for login.\n\
  -p[password], --password[=...]\n\
                           Password to use when connecting to server.\n\
  -B, --big-test	   Define BIG_TEST to 1\n\
  -D, --database=...       Database to use.\n\
  -P, --port=...           Port number to use for connection.\n\
  -S, --socket=...         Socket file to use for connection.\n\
@@ -1475,7 +1477,7 @@ int parse_args(int argc, char **argv)
  load_defaults("my",load_default_groups,&argc,&argv);
  default_argv= argv;

  while((c = getopt_long(argc, argv, "h:p::u:P:D:S:R:x:t:T:#:?rvVq",
  while((c = getopt_long(argc, argv, "h:p::u:BP:D:S:R:x:t:T:#:?rvVq",
			 long_options, &option_index)) != EOF)
    {
      switch(c)	{
@@ -1508,6 +1510,9 @@ int parse_args(int argc, char **argv)
	else
	  tty_password=1;
	break;
      case 'B':
        opt_big_test=1;
        break;
      case 'P':
	port = atoi(optarg);
	break;
@@ -1814,6 +1819,7 @@ static void var_from_env(const char* name, const char* def_val)
  hash_insert(&var_hash, (byte*)v);
}


static void init_var_hash()
{
  if (hash_init(&var_hash, 1024, 0, 0, get_var_key, var_free, MYF(0)))
@@ -1821,6 +1827,7 @@ static void init_var_hash()
  var_from_env("MASTER_MYPORT", "9306");
  var_from_env("SLAVE_MYPORT", "9307");
  var_from_env("MYSQL_TEST_DIR", "/tmp");
  var_from_env("BIG_TEST", opt_big_test ? "1" : "0");
}

int main(int argc, char** argv)
+14 −11
Original line number Diff line number Diff line
@@ -74,6 +74,9 @@ bool lib_dispatch_command(enum enum_server_command command, NET *net,
{
  THD *thd=(THD *) net->vio->dest_thd;
  thd->store_globals();				// Fix if more than one connect
  thd->net.last_error[0]=0;			// Clear error message
  thd->net.last_errno=0;
  
  net_new_transaction(&thd->net);
  return dispatch_command(command, thd, (char *) arg, length + 1);
}
+2 −0
Original line number Diff line number Diff line
@@ -139,6 +139,8 @@ int vio_read(Vio * vio, gptr buf, int size)
      			 uint4korr(vio->packets + sizeof(char *));
    vio->packets = *(char **)vio->packets;
  }
  if (vio->where_in_packet + size > vio->end_of_packet)
    size = vio->end_of_packet - vio->where_in_packet;
  memcpy(buf, vio->where_in_packet, size);
  vio->where_in_packet += size;
  return (size);
+2 −0
Original line number Diff line number Diff line
@@ -151,6 +151,8 @@ while test $# -gt 0; do
      DO_BENCH=1
      NO_SLAVE=1
      ;;  
    --big*)			# Actually --big-test
      EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1" ;;
    --sleep=*)
      EXTRA_MYSQL_TEST_OPT="$EXTRA_MYSQL_TEST_OPT $1"
      SLEEP_TIME=`$ECHO "$1" | $SED -e "s;--sleep=;;"`
+22 −14
Original line number Diff line number Diff line
id1	t
1	3
2	2
id2	t
1	3
1	2
1	1
id3	t
2	3
2	2
2	1
1	3
1	2
1	1
Table	Op	Msg_type	Msg_text
test.t1	check	status	OK
test.t2	check	status	OK
test.t3	check	status	OK
count(*)
0
count(*)
0
count(*)
0
count(*)
0
count(*)
0
count(*)
0
count(*)
0
count(*)
0
count(*)
0
Loading