Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
8a80193e
Commit
8a80193e
authored
Aug 17, 2005
by
aivanov@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge aivanov@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/alexi/mysql-5.0
parents
0a1fa931
a55786ca
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
257 additions
and
181 deletions
+257
-181
BUILD/check-cpu
BUILD/check-cpu
+6
-0
mysql-test/lib/mtr_cases.pl
mysql-test/lib/mtr_cases.pl
+13
-14
mysql-test/lib/mtr_process.pl
mysql-test/lib/mtr_process.pl
+26
-11
mysql-test/lib/mtr_report.pl
mysql-test/lib/mtr_report.pl
+0
-1
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+18
-11
mysql-test/r/select.result
mysql-test/r/select.result
+17
-0
mysql-test/t/select.test
mysql-test/t/select.test
+2
-4
sql/sql_base.cc
sql/sql_base.cc
+174
-139
sql/table.h
sql/table.h
+1
-1
No files found.
BUILD/check-cpu
View file @
8a80193e
...
@@ -90,6 +90,9 @@ case "$cpu_family--$model_name" in
...
@@ -90,6 +90,9 @@ case "$cpu_family--$model_name" in
*
Athlon
*
)
*
Athlon
*
)
cpu_arg
=
"athlon"
;
cpu_arg
=
"athlon"
;
;;
;;
*
Opteron
*
)
cpu_arg
=
"opteron"
;
;;
# Intel ia64
# Intel ia64
*
Itanium
*
)
*
Itanium
*
)
...
@@ -147,6 +150,9 @@ case "$cc_ver--$cc_verno" in
...
@@ -147,6 +150,9 @@ case "$cc_ver--$cc_verno" in
ppc-
*
)
ppc-
*
)
check_cpu_args
=
'-mcpu=$cpu_arg -mtune=$cpu_arg'
check_cpu_args
=
'-mcpu=$cpu_arg -mtune=$cpu_arg'
;;
;;
x86_64-
*
)
check_cpu_args
=
'-mtune=$cpu_arg'
;;
*
)
*
)
check_cpu_cflags
=
""
check_cpu_cflags
=
""
return
return
...
...
mysql-test/lib/mtr_cases.pl
View file @
8a80193e
...
@@ -53,21 +53,20 @@ sub collect_test_cases ($) {
...
@@ -53,21 +53,20 @@ sub collect_test_cases ($) {
else
else
{
{
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
#
Skip
some tests listed in disabled.def
#
Disable
some tests listed in disabled.def
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
my
%
skiplist
;
my
%
disabled
;
my
$skipfile
=
"
$testdir
/disabled.def
";
if
(
open
(
DISABLED
,
"
$testdir
/disabled.def
"
)
)
if
(
open
(
SKIPFILE
,
$skipfile
)
)
{
{
while
(
<
SKIPFILE
>
)
while
(
<
DISABLED
>
)
{
{
chomp
;
chomp
;
if
(
/^\s*(\S+)\s*:\s*(.*?)\s*$/
)
if
(
/^\s*(\S+)\s*:\s*(.*?)\s*$/
)
{
{
$
skiplist
{
$1
}
=
$2
;
$
disabled
{
$1
}
=
$2
;
}
}
}
}
close
SKIPFILE
;
close
DISABLED
;
}
}
foreach
my
$elem
(
sort
readdir
(
TESTDIR
)
)
{
foreach
my
$elem
(
sort
readdir
(
TESTDIR
)
)
{
...
@@ -75,7 +74,7 @@ sub collect_test_cases ($) {
...
@@ -75,7 +74,7 @@ sub collect_test_cases ($) {
next
if
!
defined
$tname
;
next
if
!
defined
$tname
;
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
,
\%
skiplist
);
collect_one_test_case
(
$testdir
,
$resdir
,
$tname
,
$elem
,
$cases
,
\%
disabled
);
}
}
closedir
TESTDIR
;
closedir
TESTDIR
;
}
}
...
@@ -119,7 +118,7 @@ sub collect_one_test_case($$$$$$) {
...
@@ -119,7 +118,7 @@ sub collect_one_test_case($$$$$$) {
my
$tname
=
shift
;
my
$tname
=
shift
;
my
$elem
=
shift
;
my
$elem
=
shift
;
my
$cases
=
shift
;
my
$cases
=
shift
;
my
$
skiplist
=
shift
;
my
$
disabled
=
shift
;
my
$path
=
"
$testdir
/
$elem
";
my
$path
=
"
$testdir
/
$elem
";
...
@@ -188,7 +187,7 @@ sub collect_one_test_case($$$$$$) {
...
@@ -188,7 +187,7 @@ sub collect_one_test_case($$$$$$) {
my
$slave_mi_file
=
"
$testdir
/
$tname
.slave-mi
";
my
$slave_mi_file
=
"
$testdir
/
$tname
.slave-mi
";
my
$master_sh
=
"
$testdir
/
$tname
-master.sh
";
my
$master_sh
=
"
$testdir
/
$tname
-master.sh
";
my
$slave_sh
=
"
$testdir
/
$tname
-slave.sh
";
my
$slave_sh
=
"
$testdir
/
$tname
-slave.sh
";
my
$disabled
=
"
$testdir
/
$tname
.disabled
";
my
$disabled
_file
=
"
$testdir
/
$tname
.disabled
";
$tinfo
->
{'
master_opt
'}
=
$::glob_win32
?
["
--default-time-zone=+3:00
"]
:
[]
;
$tinfo
->
{'
master_opt
'}
=
$::glob_win32
?
["
--default-time-zone=+3:00
"]
:
[]
;
$tinfo
->
{'
slave_opt
'}
=
$::glob_win32
?
["
--default-time-zone=+3:00
"]
:
[]
;
$tinfo
->
{'
slave_opt
'}
=
$::glob_win32
?
["
--default-time-zone=+3:00
"]
:
[]
;
...
@@ -292,18 +291,18 @@ sub collect_one_test_case($$$$$$) {
...
@@ -292,18 +291,18 @@ sub collect_one_test_case($$$$$$) {
}
}
# FIXME why this late?
# FIXME why this late?
if
(
$
skiplist
->
{
$tname
}
)
if
(
$
disabled
->
{
$tname
}
)
{
{
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
disable
'}
=
1
;
# Sub type of 'skip'
$tinfo
->
{'
disable
'}
=
1
;
# Sub type of 'skip'
$tinfo
->
{'
comment
'}
=
$
skiplist
->
{
$tname
}
if
$skiplist
->
{
$tname
};
$tinfo
->
{'
comment
'}
=
$
disabled
->
{
$tname
}
if
$disabled
->
{
$tname
};
}
}
if
(
-
f
$disabled
)
if
(
-
f
$disabled
_file
)
{
{
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
disable
'}
=
1
;
# Sub type of 'skip'
$tinfo
->
{'
disable
'}
=
1
;
# Sub type of 'skip'
$tinfo
->
{'
comment
'}
=
mtr_fromfile
(
$disabled
);
$tinfo
->
{'
comment
'}
=
mtr_fromfile
(
$disabled
_file
);
}
}
# We can't restart a running server that may be in use
# We can't restart a running server that may be in use
...
...
mysql-test/lib/mtr_process.pl
View file @
8a80193e
...
@@ -186,8 +186,8 @@ sub spawn_parent_impl {
...
@@ -186,8 +186,8 @@ sub spawn_parent_impl {
if
(
$mode
eq
'
run
'
or
$mode
eq
'
test
'
)
if
(
$mode
eq
'
run
'
or
$mode
eq
'
test
'
)
{
{
my
$exit_value
=
-
1
;
my
$exit_value
=
-
1
;
my
$signal_num
=
0
;
#
my $signal_num= 0;
my
$dumped_core
=
0
;
#
my $dumped_core= 0;
if
(
$mode
eq
'
run
'
)
if
(
$mode
eq
'
run
'
)
{
{
...
@@ -199,9 +199,10 @@ sub spawn_parent_impl {
...
@@ -199,9 +199,10 @@ sub spawn_parent_impl {
mtr_error
("
$path
(
$pid
) got lost somehow
");
mtr_error
("
$path
(
$pid
) got lost somehow
");
}
}
$exit_value
=
$?
>>
8
;
$exit_value
=
$?
;
$signal_num
=
$?
&
127
;
# $exit_value= $? >> 8;
$dumped_core
=
$?
&
128
;
# $signal_num= $? & 127;
# $dumped_core= $? & 128;
return
$exit_value
;
return
$exit_value
;
}
}
...
@@ -229,9 +230,10 @@ sub spawn_parent_impl {
...
@@ -229,9 +230,10 @@ sub spawn_parent_impl {
if
(
$ret_pid
==
$pid
)
if
(
$ret_pid
==
$pid
)
{
{
# We got termination of mysqltest, we are done
# We got termination of mysqltest, we are done
$exit_value
=
$?
>>
8
;
$exit_value
=
$?
;
$signal_num
=
$?
&
127
;
# $exit_value= $? >> 8;
$dumped_core
=
$?
&
128
;
# $signal_num= $? & 127;
# $dumped_core= $? & 128;
last
;
last
;
}
}
...
@@ -473,6 +475,7 @@ sub mtr_stop_mysqld_servers ($) {
...
@@ -473,6 +475,7 @@ sub mtr_stop_mysqld_servers ($) {
}
}
else
else
{
{
# Server is dead, we remove the pidfile if any
# Race, could have been removed between I tested with -f
# Race, could have been removed between I tested with -f
# and the unlink() below, so I better check again with -f
# and the unlink() below, so I better check again with -f
...
@@ -502,10 +505,12 @@ sub mtr_stop_mysqld_servers ($) {
...
@@ -502,10 +505,12 @@ sub mtr_stop_mysqld_servers ($) {
# that for true Win32 processes, kill(0,$pid) will not return 1.
# that for true Win32 processes, kill(0,$pid) will not return 1.
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
start_reap_all
();
# Avoid zombies
SIGNAL:
SIGNAL:
foreach
my
$sig
(
15
,
9
)
foreach
my
$sig
(
15
,
9
)
{
{
my
$retries
=
10
;
# 10 seconds
my
$retries
=
20
;
# FIXME 20 seconds, this is silly!
kill
(
$sig
,
keys
%
mysqld_pids
);
kill
(
$sig
,
keys
%
mysqld_pids
);
while
(
$retries
--
and
kill
(
0
,
keys
%
mysqld_pids
)
)
while
(
$retries
--
and
kill
(
0
,
keys
%
mysqld_pids
)
)
{
{
...
@@ -514,6 +519,8 @@ sub mtr_stop_mysqld_servers ($) {
...
@@ -514,6 +519,8 @@ sub mtr_stop_mysqld_servers ($) {
}
}
}
}
stop_reap_all
();
# Get into control again
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# Now, we check if all we can find using kill(0,$pid) are dead,
# Now, we check if all we can find using kill(0,$pid) are dead,
# and just assume the rest are. We cleanup socket and PID files.
# and just assume the rest are. We cleanup socket and PID files.
...
@@ -632,7 +639,8 @@ sub mtr_mysqladmin_shutdown () {
...
@@ -632,7 +639,8 @@ sub mtr_mysqladmin_shutdown () {
$mysql_admin_pids
{
$pid
}
=
1
;
$mysql_admin_pids
{
$pid
}
=
1
;
}
}
# We wait blocking, we wait for the last one anyway
# As mysqladmin is such a simple program, we trust it to terminate.
# I.e. we wait blocking, and wait wait for them all before we go on.
while
(
keys
%
mysql_admin_pids
)
while
(
keys
%
mysql_admin_pids
)
{
{
foreach
my
$pid
(
keys
%
mysql_admin_pids
)
foreach
my
$pid
(
keys
%
mysql_admin_pids
)
...
@@ -651,7 +659,8 @@ sub mtr_mysqladmin_shutdown () {
...
@@ -651,7 +659,8 @@ sub mtr_mysqladmin_shutdown () {
my
$timeout
=
20
;
# 20 seconds max
my
$timeout
=
20
;
# 20 seconds max
my
$res
=
1
;
# If we just fall through, we are done
my
$res
=
1
;
# If we just fall through, we are done
# in the sense that the servers don't
# listen to their ports any longer
TIME:
TIME:
while
(
$timeout
--
)
while
(
$timeout
--
)
{
{
...
@@ -669,6 +678,8 @@ sub mtr_mysqladmin_shutdown () {
...
@@ -669,6 +678,8 @@ sub mtr_mysqladmin_shutdown () {
last
;
# If we got here, we are done
last
;
# If we got here, we are done
}
}
$timeout
or
mtr_debug
("
At least one server is still listening to its port
");
sleep
(
5
)
if
$::glob_win32
;
# FIXME next startup fails if no sleep
sleep
(
5
)
if
$::glob_win32
;
# FIXME next startup fails if no sleep
return
$res
;
return
$res
;
...
@@ -794,8 +805,12 @@ sub sleep_until_file_created ($$$) {
...
@@ -794,8 +805,12 @@ sub sleep_until_file_created ($$$) {
#
#
##############################################################################
##############################################################################
# FIXME something is wrong, we sometimes terminate with "Hangup" written
# to tty, and no STDERR output telling us why.
sub
mtr_exit
($)
{
sub
mtr_exit
($)
{
my
$code
=
shift
;
my
$code
=
shift
;
# cluck("Called mtr_exit()");
local
$SIG
{
HUP
}
=
'
IGNORE
';
local
$SIG
{
HUP
}
=
'
IGNORE
';
kill
('
HUP
',
-
$$
);
kill
('
HUP
',
-
$$
);
exit
(
$code
);
exit
(
$code
);
...
...
mysql-test/lib/mtr_report.pl
View file @
8a80193e
...
@@ -10,7 +10,6 @@ sub mtr_report_test_name($);
...
@@ -10,7 +10,6 @@ sub mtr_report_test_name($);
sub
mtr_report_test_passed
($);
sub
mtr_report_test_passed
($);
sub
mtr_report_test_failed
($);
sub
mtr_report_test_failed
($);
sub
mtr_report_test_skipped
($);
sub
mtr_report_test_skipped
($);
sub
mtr_report_test_disabled
($);
sub
mtr_show_failed_diff
($);
sub
mtr_show_failed_diff
($);
sub
mtr_report_stats
($);
sub
mtr_report_stats
($);
...
...
mysql-test/mysql-test-run.pl
View file @
8a80193e
...
@@ -341,7 +341,6 @@ sub main () {
...
@@ -341,7 +341,6 @@ sub main () {
if
(
!
$glob_use_running_server
)
if
(
!
$glob_use_running_server
)
{
{
if
(
$opt_start_dirty
)
if
(
$opt_start_dirty
)
{
{
kill_running_server
();
kill_running_server
();
...
@@ -356,7 +355,7 @@ sub main () {
...
@@ -356,7 +355,7 @@ sub main () {
}
}
}
}
if
(
$opt_start_
and_exit
or
$opt_start_
dirty
)
if
(
$opt_start_dirty
)
{
{
if
(
ndbcluster_start
()
)
if
(
ndbcluster_start
()
)
{
{
...
@@ -371,16 +370,13 @@ sub main () {
...
@@ -371,16 +370,13 @@ sub main () {
mtr_error
("
Can't start the mysqld server
");
mtr_error
("
Can't start the mysqld server
");
}
}
}
}
elsif
(
$opt_bench
)
{
run_benchmarks
(
shift
);
# Shift what? Extra arguments?!
}
else
else
{
{
if
(
$opt_bench
)
run_tests
();
{
run_benchmarks
(
shift
);
# Shift what? Extra arguments?!
}
else
{
run_tests
();
}
}
}
mtr_exit
(
0
);
mtr_exit
(
0
);
...
@@ -1487,6 +1483,16 @@ sub run_testcase ($) {
...
@@ -1487,6 +1483,16 @@ sub run_testcase ($) {
}
}
}
}
# ----------------------------------------------------------------------
# If --start-and-exit given, stop here to let user manually run tests
# ----------------------------------------------------------------------
if
(
$opt_start_and_exit
)
{
mtr_report
("
\n
Servers started, exiting
");
exit
(
0
);
}
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
# Run the test case
# Run the test case
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
...
@@ -2248,7 +2254,8 @@ Misc options
...
@@ -2248,7 +2254,8 @@ Misc options
script-debug Debug this script itself
script-debug Debug this script itself
compress Use the compressed protocol between client and server
compress Use the compressed protocol between client and server
timer Show test case execution time
timer Show test case execution time
start-and-exit Only initiate and start the "mysqld" servers
start-and-exit Only initiate and start the "mysqld" servers, use the startup
settings for the specified test case if any
start-dirty Only start the "mysqld" servers without initiation
start-dirty Only start the "mysqld" servers without initiation
fast Don't try to cleanup from earlier runs
fast Don't try to cleanup from earlier runs
reorder Reorder tests to get less server restarts
reorder Reorder tests to get less server restarts
...
...
mysql-test/r/select.result
View file @
8a80193e
...
@@ -2218,6 +2218,23 @@ a
...
@@ -2218,6 +2218,23 @@ a
1
1
2
2
3
3
select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
a a
NULL 1
1 2
2 2
3 2
1 3
2 3
3 3
select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
a a
2 1
3 1
2 2
3 2
2 3
3 3
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
select * from (t1 as t2 left join t1 as t3 using (a)) right outer join t1 using ( a );
a
a
1
1
...
...
mysql-test/t/select.test
View file @
8a80193e
...
@@ -1850,10 +1850,8 @@ select * from t1 left join (t1 as t2 left join t1 as t3 using (a)) using ( a );
...
@@ -1850,10 +1850,8 @@ select * from t1 left join (t1 as t2 left join t1 as t3 using (a)) using ( a );
select
*
from
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
natural
left
join
t1
;
select
*
from
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
natural
left
join
t1
;
select
*
from
t1
natural
left
join
(
t1
as
t2
left
join
t1
as
t3
using
(
a
));
select
*
from
t1
natural
left
join
(
t1
as
t2
left
join
t1
as
t3
using
(
a
));
# right join on
# right join on
# TODO: WL#2486 - there is a problem in the order of tables in RIGHT JOIN
select
*
from
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
right
join
t1
on
t1
.
a
>
1
;
# check how we set next_name_resolution_table
select
*
from
t1
right
join
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
on
t1
.
a
>
1
;
# select * from (t1 as t2 left join t1 as t3 using (a)) right join t1 on t1.a>1;
# select * from t1 right join (t1 as t2 left join t1 as t3 using (a)) on t1.a>1;
# right [outer] joing using
# right [outer] joing using
select
*
from
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
right
outer
join
t1
using
(
a
);
select
*
from
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
right
outer
join
t1
using
(
a
);
select
*
from
t1
right
outer
join
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
using
(
a
);
select
*
from
t1
right
outer
join
(
t1
as
t2
left
join
t1
as
t3
using
(
a
))
using
(
a
);
...
...
sql/sql_base.cc
View file @
8a80193e
This diff is collapsed.
Click to expand it.
sql/table.h
View file @
8a80193e
...
@@ -374,7 +374,7 @@ struct Field_translator
...
@@ -374,7 +374,7 @@ struct Field_translator
Field (for tables), or a Field_translator (for views).
Field (for tables), or a Field_translator (for views).
*/
*/
class
Natural_join_column
class
Natural_join_column
:
public
Sql_alloc
{
{
public:
public:
Field_translator
*
view_field
;
/* Column reference of merge view. */
Field_translator
*
view_field
;
/* Column reference of merge view. */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment