Commit 3faa1fcd authored by msvensson@neptunus.(none)'s avatar msvensson@neptunus.(none)

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

into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
parents 098164e6 804d2eff
...@@ -2472,17 +2472,13 @@ static st_error global_error_names[] = ...@@ -2472,17 +2472,13 @@ static st_error global_error_names[] =
#include <mysqld_ername.h> #include <mysqld_ername.h>
{ 0, 0 } { 0, 0 }
}; };
#define HAVE_MYSQLD_ERNAME
#endif
uint get_errcode_from_name(char *error_name, char *error_end) uint get_errcode_from_name(char *error_name, char *error_end)
{ {
DBUG_ENTER("get_errcode_from_name");
#ifdef HAVE_MYSQLD_ERNAME
/* SQL error as string */ /* SQL error as string */
st_error *e= global_error_names; st_error *e= global_error_names;
DBUG_ENTER("get_errcode_from_name");
DBUG_PRINT("enter", ("error_name: %s", error_name)); DBUG_PRINT("enter", ("error_name: %s", error_name));
/* Loop through the array of known error names */ /* Loop through the array of known error names */
...@@ -2501,13 +2497,17 @@ uint get_errcode_from_name(char *error_name, char *error_end) ...@@ -2501,13 +2497,17 @@ uint get_errcode_from_name(char *error_name, char *error_end)
} }
if (!e->name) if (!e->name)
die("Unknown SQL error name '%s'", error_name); die("Unknown SQL error name '%s'", error_name);
DBUG_RETURN(0);
}
#else #else
LINT_INIT(error_name); uint get_errcode_from_name(char *error_name __attribute__((unused)),
LINT_INIT(error_end); char *error_end __attribute__((unused)))
{
abort_not_in_this_version(); abort_not_in_this_version();
#endif return 0; /* Never reached */
DBUG_RETURN(0);;
} }
#endif
void do_get_errcodes(struct st_command *command) void do_get_errcodes(struct st_command *command)
...@@ -2536,6 +2536,8 @@ void do_get_errcodes(struct st_command *command) ...@@ -2536,6 +2536,8 @@ void do_get_errcodes(struct st_command *command)
if (*p == 'S') if (*p == 'S')
{ {
char *to_ptr= to->code.sqlstate;
/* /*
SQLSTATE string SQLSTATE string
- Must be SQLSTATE_LENGTH long - Must be SQLSTATE_LENGTH long
...@@ -2546,7 +2548,6 @@ void do_get_errcodes(struct st_command *command) ...@@ -2546,7 +2548,6 @@ void do_get_errcodes(struct st_command *command)
die("The sqlstate must be exactly %d chars long", SQLSTATE_LENGTH); die("The sqlstate must be exactly %d chars long", SQLSTATE_LENGTH);
/* Check sqlstate string validity */ /* Check sqlstate string validity */
char *to_ptr= to->code.sqlstate;
while (*p && p != end) while (*p && p != end)
{ {
if (my_isdigit(charset_info, *p) || my_isupper(charset_info, *p)) if (my_isdigit(charset_info, *p) || my_isupper(charset_info, *p))
......
...@@ -143,7 +143,7 @@ sub collect_test_cases ($) { ...@@ -143,7 +143,7 @@ sub collect_test_cases ($) {
{ {
next; next;
} }
next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test); next if $::opt_do_test and ! defined mtr_match_prefix($elem,$::opt_do_test);
collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled, collect_one_test_case($testdir,$resdir,$tname,$elem,$cases,\%disabled,
...@@ -159,37 +159,71 @@ sub collect_test_cases ($) { ...@@ -159,37 +159,71 @@ sub collect_test_cases ($) {
{ {
my %sort_criteria; my %sort_criteria;
my $tinfo;
# Make a mapping of test name to a string that represents how that test # Make a mapping of test name to a string that represents how that test
# should be sorted among the other tests. Put the most important criterion # should be sorted among the other tests. Put the most important criterion
# first, then a sub-criterion, then sub-sub-criterion, et c. # first, then a sub-criterion, then sub-sub-criterion, et c.
foreach $tinfo (@$cases) foreach my $tinfo (@$cases)
{ {
my @this_criteria = (); my @criteria = ();
#
# Append the criteria for sorting, in order of importance.
#
push(@this_criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0")); # Look for tests that muct be in run in a defined order
push(@this_criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0")); # that is defined by test having the same name except for
# Group test with similar options together. # the ending digit
# Ending with "~" makes empty sort later than filled
push(@this_criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~");
# Finally, order by the name # Put variables into hash
push(@this_criteria, $tinfo->{'name'}); my $test_name= $tinfo->{'name'};
my $depend_on_test_name;
if ( $test_name =~ /^([\D]+)([0-9]{1})$/ )
{
my $base_name= $1;
my $idx= $2;
mtr_verbose("$test_name => $base_name idx=$idx");
if ( $idx > 1 )
{
$idx-= 1;
$base_name= "$base_name$idx";
mtr_verbose("New basename $base_name");
}
foreach my $tinfo2 (@$cases)
{
if ( $tinfo2->{'name'} eq $base_name )
{
mtr_verbose("found dependent test $tinfo2->{'name'}");
$depend_on_test_name=$base_name;
}
}
}
$sort_criteria{$tinfo->{"name"}} = join(" ", @this_criteria); if ( defined $depend_on_test_name )
{
mtr_verbose("Giving $test_name same critera as $depend_on_test_name");
$sort_criteria{$test_name} = $sort_criteria{$depend_on_test_name};
}
else
{
#
# Append the criteria for sorting, in order of importance.
#
push(@criteria, "ndb=" . ($tinfo->{'ndb_test'} ? "1" : "0"));
push(@criteria, "restart=" . ($tinfo->{'master_restart'} ? "1" : "0"));
# Group test with equal options together.
# Ending with "~" makes empty sort later than filled
push(@criteria, join("!", sort @{$tinfo->{'master_opt'}}) . "~");
$sort_criteria{$test_name} = join(" ", @criteria);
}
} }
@$cases = sort { $sort_criteria{$a->{"name"}} cmp $sort_criteria{$b->{"name"}}; } @$cases; @$cases = sort {
$sort_criteria{$a->{'name'}} . $a->{'name'} cmp
$sort_criteria{$b->{'name'}} . $b->{'name'}; } @$cases;
if ( $::opt_script_debug ) if ( $::opt_script_debug )
{ {
# For debugging the sort-order # For debugging the sort-order
foreach $tinfo (@$cases) foreach my $tinfo (@$cases)
{ {
print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n"); print("$sort_criteria{$tinfo->{'name'}} -> \t$tinfo->{'name'}\n");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment