Commit b2bf4843 authored by unknown's avatar unknown
Browse files

Merge shellback.(none):/home/msvensson/mysql/mysql-4.1-maint

into  shellback.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysql.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
client/mysqltest.c:
  Auto merged
include/my_dbug.h:
  Auto merged
mysql-test/lib/mtr_cases.pl:
  Auto merged
mysql-test/lib/mtr_report.pl:
  Auto merged
mysql-test/mysql-test-run.pl:
  Auto merged
mysql-test/r/csv.result:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/t/csv.test:
  Auto merged
sql/field.cc:
  Auto merged
sql/handler.cc:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
mysql-test/r/innodb_mysql.result:
  Manual merge
mysql-test/t/func_time.test:
  Manual merge, test already there
mysql-test/t/innodb_mysql.test:
  Manual merge
parents 591d09a9 9a506df0
Loading
Loading
Loading
Loading
+26 −16
Original line number Diff line number Diff line
@@ -890,7 +890,7 @@ int dyn_string_cmp(DYNAMIC_STRING* ds, const char *fname)
    die(NullS);
  if (!eval_result && (uint) stat_info.st_size != ds->length)
  {
    DBUG_PRINT("info",("Size differs:  result size: %u  file size: %u",
    DBUG_PRINT("info",("Size differs:  result size: %u  file size: %llu",
		       ds->length, stat_info.st_size));
    DBUG_PRINT("info",("result: '%s'", ds->str));
    DBUG_RETURN(RESULT_LENGTH_MISMATCH);
@@ -1810,7 +1810,7 @@ void my_ungetc(int c)
void read_until_delimiter(DYNAMIC_STRING *ds,
                          DYNAMIC_STRING *ds_delimiter)
{
  int c;
  char c;
  DBUG_ENTER("read_until_delimiter");
  DBUG_PRINT("enter", ("delimiter: %s, length: %d",
                       ds_delimiter->str, ds_delimiter->length));
@@ -2558,7 +2558,7 @@ void do_get_errcodes(struct st_command *command)

      *to_ptr= 0;
      to->type= ERR_SQLSTATE;
      DBUG_PRINT("info", ("ERR_SQLSTATE: %d", to->code.sqlstate));
      DBUG_PRINT("info", ("ERR_SQLSTATE: %s", to->code.sqlstate));
    }
    else if (*p == 's')
    {
@@ -3346,7 +3346,7 @@ int read_line(char *buf, int size)
  LINT_INIT(last_quote);

  start_lineno= cur_file->lineno;
  DBUG_PRINT("info", ("start_lineno: %d", start_lineno));
  DBUG_PRINT("info", ("Starting to read at lineno: %d", start_lineno));
  for (; p < buf_end ;)
  {
    skip_char= 0;
@@ -3370,7 +3370,7 @@ int read_line(char *buf, int size)
          die("Missing end of block");

        *p= 0;
        DBUG_PRINT("info", ("end of file"));
        DBUG_PRINT("info", ("end of file at line %d", cur_file->lineno));
        DBUG_RETURN(1);
      }
      cur_file--;
@@ -3393,17 +3393,21 @@ int read_line(char *buf, int size)
      if (end_of_query(c))
      {
	*p= 0;
        DBUG_PRINT("exit", ("Found delimiter '%s'", delimiter));
        DBUG_PRINT("exit", ("Found delimiter '%s' at line %d",
                            delimiter, cur_file->lineno));
	DBUG_RETURN(0);
      }
      else if ((c == '{' &&
                (!strncasecmp(buf, "while", min(5, p - buf)) ||
                 !strncasecmp(buf, "if", min(2, p - buf)))))
                (!my_strnncoll_simple(charset_info, "while", 5,
                                      buf, min(5, p - buf), 0) ||
                 !my_strnncoll_simple(charset_info, "if", 2,
                                      buf, min(2, p - buf), 0))))
      {
        /* Only if and while commands can be terminated by { */
        *p++= c;
	*p= 0;
        DBUG_PRINT("exit", ("Found '{' indicating begining of block"));
        DBUG_PRINT("exit", ("Found '{' indicating start of block at line %d",
                            cur_file->lineno));
	DBUG_RETURN(0);
      }
      else if (c == '\'' || c == '"' || c == '`')
@@ -3418,7 +3422,8 @@ int read_line(char *buf, int size)
      {
        /* Comments are terminated by newline */
	*p= 0;
        DBUG_PRINT("exit", ("Found newline in comment"));
        DBUG_PRINT("exit", ("Found newline in comment at line: %d",
                            cur_file->lineno));
	DBUG_RETURN(0);
      }
      break;
@@ -3433,13 +3438,19 @@ int read_line(char *buf, int size)
      {
        /* Skip all space at begining of line */
	if (c == '\n')
	  start_lineno= cur_file->lineno; /* Query hasn't started yet */
        {
          /* Query hasn't started yet */
	  start_lineno= cur_file->lineno;
          DBUG_PRINT("info", ("Query hasn't started yet, start_lineno: %d",
                              start_lineno));
        }
	skip_char= 1;
      }
      else if (end_of_query(c))
      {
	*p= 0;
        DBUG_PRINT("exit", ("Found delimiter '%s'", delimiter));
        DBUG_PRINT("exit", ("Found delimiter '%s' at line: %d",
                            delimiter, cur_file->lineno));
	DBUG_RETURN(0);
      }
      else if (c == '}')
@@ -3447,7 +3458,8 @@ int read_line(char *buf, int size)
        /* A "}" need to be by itself in the begining of a line to terminate */
        *p++= c;
	*p= 0;
        DBUG_PRINT("exit", ("Found '}' in begining of a line"));
        DBUG_PRINT("exit", ("Found '}' in begining of a line at line: %d",
                            cur_file->lineno));
	DBUG_RETURN(0);
      }
      else if (c == '\'' || c == '"' || c == '`')
@@ -4317,7 +4329,7 @@ void append_stmt_result(DYNAMIC_STRING *ds, MYSQL_STMT *stmt,
    bind[i].is_null= &is_null[i];
    bind[i].length= &length[i];

    DBUG_PRINT("bind", ("col[%d]: buffer_type: %d, buffer_length: %d",
    DBUG_PRINT("bind", ("col[%d]: buffer_type: %d, buffer_length: %lu",
			i, bind[i].buffer_type, bind[i].buffer_length));
  }

@@ -7267,5 +7279,3 @@ void replace_dynstr_append_uint(DYNAMIC_STRING *ds, uint val)
  char *end= longlong10_to_str(val, buff, 10);
  replace_dynstr_append_mem(ds, buff, end - buff);
}

+9 −4
Original line number Diff line number Diff line
@@ -575,8 +575,6 @@ sub mtr_options_from_test_file($$) {

  while ( my $line= <$F> )
  {
    next if ( $line !~ /^--/ );

    # Match this line against tag in "tags" array
    foreach my $tag (@tags)
    {
@@ -588,15 +586,22 @@ sub mtr_options_from_test_file($$) {
    }

    # If test sources another file, open it as well
    if ( $line =~ /^\-\-([[:space:]]*)source(.*)$/ )
    if ( $line =~ /^\-\-([[:space:]]*)source(.*)$/ or
	 $line =~ /^([[:space:]]*)source(.*);$/ )
    {
      my $value= $2;
      $value =~ s/^\s+//;  # Remove leading space
      $value =~ s/[[:space:]]+$//;  # Remove ending space

      my $sourced_file= "$::glob_mysql_test_dir/$value";
      if ( -f $sourced_file )
      {
	# Only source the file if it exists, we may get
	# false positives in the regexes above if someone
	# writes "source nnnn;" in a test case(such as mysqltest.test)
	mtr_options_from_test_file($tinfo, $sourced_file);
      }
    }

  }
}
+1 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ sub mtr_report_test_failed ($) {
  if ( $tinfo->{'timeout'} )
  {
    print "[ fail ]  timeout\n";
    return;
  }
  elsif ( $tinfo->{'ndb_test'} and $::cluster->[0]->{'installed_ok'} eq "NO")
  {
+62 −22
Original line number Diff line number Diff line
@@ -468,11 +468,11 @@ sub initial_setup () {
  #

  # Look for the path where to find the client binaries
  $path_client_bindir= mtr_path_exists("$glob_basedir/client/release",
  $path_client_bindir= mtr_path_exists("$glob_basedir/client_release",
				       "$glob_basedir/client_debug",
				       "$glob_basedir/client/release",
				       "$glob_basedir/client/debug",
				       "$glob_basedir/client",
				       "$glob_basedir/client_release",
				       "$glob_basedir/client_debug",
				       "$glob_basedir/bin");

  # Look for the mysqld executable
@@ -484,6 +484,7 @@ sub initial_setup () {
				       "$path_client_bindir/mysqld-debug",
				       "$path_client_bindir/mysqld-max",
				       "$glob_basedir/libexec/mysqld",
				       "$glob_basedir/bin/mysqld",
				       "$glob_basedir/sql/release/mysqld",
				       "$glob_basedir/sql/debug/mysqld");

@@ -1386,12 +1387,15 @@ sub executable_setup () {
      mtr_exe_exists("$ndb_path/src/kernel/ndbd",
		     "$glob_basedir/bin/ndbd");

    if ( $mysql_version_id >= 50000 )
    {
      $path_ndb_examples_dir=
	mtr_path_exists("$ndb_path/ndbapi-examples",
			"$ndb_path/examples");
      $exe_ndb_example=
	mtr_file_exists("$path_ndb_examples_dir/ndbapi_simple/ndbapi_simple");
    }
  }

  # Look for the udf_example library
  $lib_udf_example=
@@ -1413,6 +1417,14 @@ sub executable_setup () {

  }

  if ( $glob_win32 and $mysql_version_id < 50000 )
  {
    # Skip looking for exe_mysql_client_test as its not built by default
    # in 4.1 for windows.
    $exe_mysql_client_test= "unavailable";
  }
  else
  {
    # Look for mysql_client_test executable
    if ( $glob_use_embedded_server )
    {
@@ -1427,6 +1439,7 @@ sub executable_setup () {
			 "$glob_basedir/tests/debug/mysql_client_test");
      }
  }
}


sub generate_cmdline_mysqldump ($) {
@@ -1548,8 +1561,11 @@ sub environment_setup () {
    $ENV{'NDB_TOOLS_OUTPUT'}=         $path_ndb_testrun_log;
    $ENV{'NDB_CONNECTSTRING'}=        $opt_ndbconnectstring;

    if ( $mysql_version_id >= 50000 )
    {
      $ENV{'NDB_EXAMPLES_DIR'}=         $path_ndb_examples_dir;
      $ENV{'MY_NDB_EXAMPLES_BINARY'}=   $exe_ndb_example;
    }
    $ENV{'NDB_EXAMPLES_OUTPUT'}=      $path_ndb_testrun_log;
  }

@@ -2809,6 +2825,33 @@ sub do_after_run_mysqltest($)
}


sub find_testcase_skipped_reason($)
{
  my ($tinfo)= @_;

  # Open mysqltest.log
  my $F= IO::File->new($path_timefile) or
    mtr_error("can't open file \"$path_timefile\": $!");
  my $reason;

  while ( my $line= <$F> )
  {
    # Look for "reason: <reason fo skiping test>"
    if ( $line =~ /reason: (.*)/ )
    {
      $reason= $1;
    }
  }

  if ( ! $reason )
  {
    mtr_warning("Could not find reason for skipping test in $path_timefile");
    $reason= "Detected by testcase(reason unknown) ";
  }
  $tinfo->{'comment'}= $reason;
}


##############################################################################
#
#  Run a single test case
@@ -2881,10 +2924,7 @@ sub run_testcase ($) {
      # Testcase itself tell us to skip this one

      # Try to get reason from mysqltest.log
      my $last_line= mtr_lastlinefromfile($path_timefile) if -f $path_timefile;
      my $reason= mtr_match_prefix($last_line, "reason: ");
      $tinfo->{'comment'}=
	defined $reason ? $reason : "Detected by testcase(reason unknown) ";
      find_testcase_skipped_reason($tinfo);
      mtr_report_test_skipped($tinfo);
    }
    elsif ( $res == 63 )
+10 −0
Original line number Diff line number Diff line
@@ -104,6 +104,16 @@ SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` =
id1
2
DROP TABLE t1, t2;
flush status;
create table t1 (c1 int) engine=innodb;
handler t1 open;
handler t1 read first;
c1
show /*!50002 GLOBAL */ status like 'Handler_rollback';
Variable_name	Value
Handler_rollback	0
drop table t1;
End of 4.1 tests
create table t1m (a int) engine=myisam;
create table t1i (a int) engine=innodb;
create table t2m (a int) engine=myisam;
Loading