mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
5.3 merge
This commit is contained in:
@ -1536,6 +1536,10 @@ select t2.fld1,t22.fld1 from t2,t2 t22 where t2.fld1 >= 250501 and t2.fld1 <= 25
|
||||
#
|
||||
# Test of left join.
|
||||
#
|
||||
|
||||
SET @save_optimizer_switch=@@optimizer_switch;
|
||||
SET optimizer_switch='outer_join_with_cache=off';
|
||||
|
||||
insert into t2 (fld1, companynr) values (999999,99);
|
||||
|
||||
select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null;
|
||||
@ -1568,6 +1572,8 @@ explain select companynr,companyname from t4 left join t2 using (companynr) wher
|
||||
explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0;
|
||||
explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0;
|
||||
|
||||
SET optimizer_switch=@save_optimizer_switch;
|
||||
|
||||
#
|
||||
# Joins with forms.
|
||||
#
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2007, 2010, Oracle and/or its affiliates
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -33,6 +33,7 @@ EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
--replace_column 9 #
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
@ -1,5 +1,4 @@
|
||||
disable_query_log;
|
||||
--require r/true.require
|
||||
select (PLUGIN_LIBRARY LIKE 'auth_test_plugin%') as `TRUE` FROM INFORMATION_SCHEMA.PLUGINS
|
||||
WHERE PLUGIN_NAME='test_plugin_server';
|
||||
enable_query_log;
|
||||
if (`select count(*) = 0 from information_schema.plugins where plugin_name = 'test_plugin_server' and plugin_status='active'`)
|
||||
{
|
||||
--skip Needs auth_test_plugin
|
||||
}
|
||||
|
@ -437,6 +437,7 @@ LIMIT 1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo #
|
||||
--echo # Bug#59259 "Incorrect rows returned for a correlated subquery
|
||||
--echo # when ICP is on"
|
||||
@ -744,3 +745,110 @@ SELECT a FROM t1 WHERE c IS NULL AND d IS NOT NULL GROUP BY 1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug#904832: an attempt to perform an index condition pushdown
|
||||
--echo # of a condition containing a subquery
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (
|
||||
a INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||
b INT, c INT, d DATE NOT NULL, e VARCHAR(1),
|
||||
KEY (c), KEY (d), KEY k2(b), KEY k3(b), KEY k4(b)
|
||||
);
|
||||
|
||||
INSERT INTO t1 (b,c,d,e) VALUES
|
||||
(6,5,'2006-05-25','y'),(1,5,'2008-01-23','t'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'),
|
||||
(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'),
|
||||
(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'),
|
||||
(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'),
|
||||
(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'),
|
||||
(1,5,'2008-01-23','t'),(6,5,'2007-06-18','d'),
|
||||
(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'),
|
||||
(4,5,'2006-03-09','b'),(4,5,'2001-06-05','f'),
|
||||
(4,5,'2001-06-05','x'),(8,5,'1900-01-01','m'),
|
||||
(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'),
|
||||
(1,5,'2008-01-23','t'),(6,5,'2007-06-18','d'),
|
||||
(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'),
|
||||
(4,5,'2006-03-09','b'),(6,5,'2007-06-18','d'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'),
|
||||
(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'),
|
||||
(1,5,'2008-01-23','t'),(6,5,'2007-06-18','d'),
|
||||
(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'),
|
||||
(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'),
|
||||
(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'),
|
||||
(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'),
|
||||
(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'),
|
||||
(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'),
|
||||
(6,5,'2007-06-18','d'),(4,1,'1900-01-01','r'),
|
||||
(8,8,'1900-01-01','m'),(4,1,'2006-03-09','b'),
|
||||
(4,1,'2001-06-05','x'),(7,1,'2006-05-28','g');
|
||||
|
||||
CREATE TABLE t2 (
|
||||
f INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
|
||||
g INT,
|
||||
h VARCHAR(1),
|
||||
KEY (g)
|
||||
);
|
||||
|
||||
INSERT INTO t2 (g,h) VALUES
|
||||
(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),
|
||||
(5,'l'),(8,'y'),(0,'p'),(0,'f'),(0,'p'),(7,'d'),
|
||||
(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'),
|
||||
(6,'i'),(1,'x'),(5,'l'),(8,'y'),(0,'p'),(0,'f'),
|
||||
(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),
|
||||
(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),
|
||||
(7,'d'),(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'),
|
||||
(9,'u'),(6,'i'),(1,'x'),(5,'l'),(8,'y'),(0,'p'),
|
||||
(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),(3,'e'),
|
||||
(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),(5,'l'),
|
||||
(6,'q'),(2,'n'),(4,'r'),(4,'b'),(8,'y'),(0,'p'),
|
||||
(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),(3,'e'),
|
||||
(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),(5,'l'),
|
||||
(8,'y'),(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),
|
||||
(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),
|
||||
(1,'x'),(5,'l'),(8,'y'),(0,'p'),(0,'f'),(0,'p'),
|
||||
(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),(3,'e'),
|
||||
(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),(7,'d'),
|
||||
(7,'f'),(5,'j'),(3,'e'),(1,'u'),(0,'f'),(0,'p'),
|
||||
(7,'d'),(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'),
|
||||
(9,'u'),(6,'i'),(1,'x'),(5,'l'),(8,'y'),(0,'p'),
|
||||
(0,'f'),(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),
|
||||
(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),
|
||||
(1,'x'),(7,'d'),(7,'f'),(5,'j'),(3,'e'),(1,'u'),
|
||||
(4,'v'),(9,'u'),(6,'i'),(1,'x'),(5,'l'),(8,'y'),
|
||||
(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),
|
||||
(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),
|
||||
(5,'l'),(6,'q'),(2,'n'),(4,'r'),(4,'b'),(8,'y'),
|
||||
(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),
|
||||
(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),
|
||||
(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u');
|
||||
|
||||
SET @save_optimize_switch=@@optimizer_switch;
|
||||
SET optimizer_switch='materialization=on';
|
||||
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 AS t, t2
|
||||
WHERE c = g
|
||||
AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b)
|
||||
OR a = 0 AND h < 'z' );
|
||||
|
||||
SELECT COUNT(*) FROM t1 AS t, t2
|
||||
WHERE c = g
|
||||
AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b)
|
||||
OR a = 0 AND h < 'z' );
|
||||
SELECT COUNT(*) FROM t1 AS t, t2
|
||||
WHERE c = g
|
||||
AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b)
|
||||
OR a = 0 AND h < 'z' );
|
||||
|
||||
SET optimizer_switch=@save_optimizer_switch;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
@ -264,7 +264,10 @@ explain select * from t1 where key1=3 or key2=4
|
||||
union select * from t1 where key1<4 or key3=5;
|
||||
|
||||
# index merge in subselect
|
||||
set @tmp_optimizer_switch=@@optimizer_switch;
|
||||
set optimizer_switch='derived_merge=off,derived_with_keys=off';
|
||||
explain select * from (select * from t1 where key1 = 3 or key2 =3) as Z where key8 >5;
|
||||
set optimizer_switch=@tmp_optimizer_switch;
|
||||
|
||||
# 12. check for long index_merges.
|
||||
create table t3 like t0;
|
||||
|
@ -1188,9 +1188,9 @@ DROP TABLE t1;
|
||||
create table t1 (a bit(1) not null,b int) engine=myisam;
|
||||
create table t2 (c int) engine=innodb;
|
||||
set @save_optimizer_switch=@@optimizer_switch;
|
||||
set @@optimizer_switch='partial_match_rowid_merge=off,partial_match_table_scan=off';
|
||||
set @@optimizer_switch='in_to_exists=on,materialization=off';
|
||||
explain
|
||||
select b from t1 where a not in (select b from t1,t2 group by a) group by a;
|
||||
select b from t1 where a not in (select max(b) from t1,t2 group by a) group by a;
|
||||
set optimizer_switch=@save_optimizer_switch;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
-- Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
-- Copyright (c) 2008, 2010, Oracle and/or its affiliates
|
||||
--
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
@ -29,7 +29,8 @@ BEGIN
|
||||
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||||
WHERE variable_name NOT IN ('timestamp', 'innodb_file_format_max')
|
||||
AND variable_name not like "Last_IO_Err*"
|
||||
ORDER BY VARIABLE_NAME;
|
||||
AND variable_name != 'INNODB_IBUF_MAX_SIZE'
|
||||
ORDER BY variable_name;
|
||||
|
||||
-- Dump all databases, there should be none
|
||||
-- except those that was created during bootstrap
|
||||
|
@ -1,4 +1,4 @@
|
||||
-- Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
-- Copyright (c) 2008, 2011, Oracle and/or its affiliates
|
||||
--
|
||||
-- This program is free software; you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,6 @@
|
||||
# -*- cperl -*-
|
||||
|
||||
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2007, 2010, Oracle and/or its affiliates
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,5 +1,5 @@
|
||||
# -*- cperl -*-
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
|
@ -150,7 +150,7 @@ sub is_set {
|
||||
foreach my $set_opt (@$set_opts){
|
||||
my ($opt_name2, $value2)= _split_option($set_opt);
|
||||
|
||||
if ($opt_name1 eq $opt_name2){
|
||||
if ($opt_name1 eq $opt_name2 and $value1 eq $value2){
|
||||
# Option already set
|
||||
return 1;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
/* Copyright (c) 2008, 2011, Oracle and/or its affiliates
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/perl
|
||||
# -*- cperl -*-
|
||||
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -97,7 +97,8 @@ sub read_test {
|
||||
chomp($serialized);
|
||||
$serialized =~ s/\\([0-9a-fA-F]{2})/chr(hex($1))/eg;
|
||||
my $test= Storable::thaw($serialized);
|
||||
die "wrong class (hack attempt?): ".ref($test)
|
||||
use Data::Dumper;
|
||||
die "wrong class (hack attempt?): ".ref($test)."\n".Dumper(\$test)
|
||||
unless ref($test) eq 'My::Test';
|
||||
resfile_from_test($test) if $::opt_resfile;
|
||||
return $test;
|
||||
|
@ -470,20 +470,32 @@ sub collect_one_suite
|
||||
#print_testcases(@cases);
|
||||
|
||||
my @new_cases;
|
||||
foreach my $comb (@combinations)
|
||||
TEST: foreach my $test (@cases)
|
||||
{
|
||||
foreach my $test (@cases)
|
||||
{
|
||||
if ( $test->{'skip'} )
|
||||
{
|
||||
push(@new_cases, $test);
|
||||
next;
|
||||
}
|
||||
|
||||
next if ( $test->{'skip'} );
|
||||
|
||||
# Skip this combination if the values it provides
|
||||
# already are set in master_opt or slave_opt
|
||||
foreach my $comb (@combinations)
|
||||
{
|
||||
# Skip all other combinations if the values they change
|
||||
# are already fixed in master_opt or slave_opt
|
||||
if (My::Options::is_set($test->{master_opt}, $comb->{comb_opt}) &&
|
||||
My::Options::is_set($test->{slave_opt}, $comb->{comb_opt}) ){
|
||||
next;
|
||||
}
|
||||
|
||||
# Add combination name short name
|
||||
$test->{combination}= $comb->{name};
|
||||
|
||||
# Add the test to new test cases list
|
||||
push(@new_cases, $test);
|
||||
next TEST;
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $comb (@combinations)
|
||||
{
|
||||
# Copy test options
|
||||
my $new_test= My::Test->new();
|
||||
while (my ($key, $value) = each(%$test)) {
|
||||
@ -506,17 +518,6 @@ sub collect_one_suite
|
||||
}
|
||||
}
|
||||
|
||||
# Add the plain test if it was not already added
|
||||
# as part of a combination
|
||||
my %added;
|
||||
foreach my $new_test (@new_cases){
|
||||
$added{$new_test->{name}}= 1;
|
||||
}
|
||||
foreach my $test (@cases){
|
||||
push(@new_cases, $test) unless $added{$test->{name}};
|
||||
}
|
||||
|
||||
|
||||
#print_testcases(@new_cases);
|
||||
@cases= @new_cases;
|
||||
#print_testcases(@cases);
|
||||
@ -643,9 +644,6 @@ sub process_opts {
|
||||
my @opts= @{$tinfo->{$opt_name}};
|
||||
$tinfo->{$opt_name} = [];
|
||||
|
||||
my @plugins;
|
||||
my %seen;
|
||||
|
||||
foreach my $opt (@opts)
|
||||
{
|
||||
my $value;
|
||||
@ -661,14 +659,6 @@ sub process_opts {
|
||||
next;
|
||||
}
|
||||
|
||||
$value= mtr_match_prefix($opt, "--plugin-load=");
|
||||
if (defined $value)
|
||||
{
|
||||
push @plugins, $value unless $seen{$value};
|
||||
$seen{$value}=1;
|
||||
next;
|
||||
}
|
||||
|
||||
$value= mtr_match_prefix($opt, "--result-file=");
|
||||
if ( defined $value )
|
||||
{
|
||||
@ -715,11 +705,6 @@ sub process_opts {
|
||||
# Ok, this was a real option, add it
|
||||
push(@{$tinfo->{$opt_name}}, $opt);
|
||||
}
|
||||
|
||||
if (@plugins) {
|
||||
my $sep = (IS_WINDOWS) ? ';' : ':';
|
||||
push @{$tinfo->{$opt_name}}, "--plugin-load=" . join($sep, @plugins);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# -*- cperl -*-
|
||||
# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2004, 2011, Oracle and/or its affiliates
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,5 +1,5 @@
|
||||
# -*- cperl -*-
|
||||
# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2004, 2010, Oracle and/or its affiliates
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -130,7 +130,7 @@ sub sleep_until_file_created ($$$$) {
|
||||
mtr_debug("Sleep $sleeptime milliseconds waiting for $pidfile");
|
||||
|
||||
# Print extra message every $warn_seconds seconds
|
||||
if ( $seconds > 1 && $seconds % $warn_seconds == 0 && $seconds < $timeout )
|
||||
if ( $seconds > 1 && ($seconds*10) % ($warn_seconds*10) == 0 && $seconds < $timeout )
|
||||
{
|
||||
my $left= $timeout - $seconds;
|
||||
mtr_warning("Waited $seconds seconds for $pidfile to be created, " .
|
||||
|
@ -176,6 +176,7 @@ my $DEFAULT_SUITES= join(',', qw(
|
||||
pbxt
|
||||
percona
|
||||
perfschema
|
||||
plugins
|
||||
rpl
|
||||
sphinx
|
||||
sys_vars
|
||||
@ -2845,7 +2846,7 @@ sub check_debug_support ($) {
|
||||
#
|
||||
# Helper function to find the correct value for the opt_vs_config
|
||||
# if it was not set explicitly.
|
||||
#
|
||||
#
|
||||
# the configuration with the most recent build dir in sql/ is selected.
|
||||
#
|
||||
# note: looking for all BuildLog.htm files everywhere in the tree with the
|
||||
@ -2874,6 +2875,33 @@ sub fix_vs_config_dir () {
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Helper function to handle configuration-based subdirectories which Visual
|
||||
# Studio uses for storing binaries. If opt_vs_config is set, this returns
|
||||
# a path based on that setting; if not, it returns paths for the default
|
||||
# /release/ and /debug/ subdirectories.
|
||||
#
|
||||
# $exe can be undefined, if the directory itself will be used
|
||||
#
|
||||
sub vs_config_dirs ($$) {
|
||||
my ($path_part, $exe) = @_;
|
||||
|
||||
$exe = "" if not defined $exe;
|
||||
|
||||
# Don't look in these dirs when not on windows
|
||||
return () unless IS_WINDOWS;
|
||||
|
||||
if ($opt_vs_config)
|
||||
{
|
||||
return ("$basedir/$path_part/$opt_vs_config/$exe");
|
||||
}
|
||||
|
||||
return ("$basedir/$path_part/release/$exe",
|
||||
"$basedir/$path_part/relwithdebinfo/$exe",
|
||||
"$basedir/$path_part/debug/$exe");
|
||||
}
|
||||
|
||||
|
||||
sub check_ndbcluster_support ($) {
|
||||
my $mysqld_variables= shift;
|
||||
|
||||
@ -4134,7 +4162,7 @@ sub run_testcase ($$) {
|
||||
# Allow only alpanumerics pluss _ - + . in combination names,
|
||||
# or anything beginning with -- (the latter comes from --combination)
|
||||
my $combination= $tinfo->{combination};
|
||||
if ($combination && $combination !~ /^\w[-\w\.\+]+$/
|
||||
if ($combination && $combination !~ /^\w[-\w\.\+]*$/
|
||||
&& $combination !~ /^--/)
|
||||
{
|
||||
mtr_error("Combination '$combination' contains illegal characters");
|
||||
@ -5301,6 +5329,9 @@ sub mysqld_arguments ($$$) {
|
||||
}
|
||||
|
||||
my $found_skip_core= 0;
|
||||
my @plugins;
|
||||
my %seen;
|
||||
my $plugin;
|
||||
foreach my $arg ( @$extra_opts )
|
||||
{
|
||||
# Skip --defaults-file option since it's handled above.
|
||||
@ -5320,10 +5351,10 @@ sub mysqld_arguments ($$$) {
|
||||
{
|
||||
; # Dont add --skip-log-bin when mysqld have --log-slave-updates in config
|
||||
}
|
||||
elsif ($arg eq "")
|
||||
elsif ($plugin = mtr_match_prefix($arg, "--plugin-load="))
|
||||
{
|
||||
# We can get an empty argument when we set environment variables to ""
|
||||
# (e.g plugin not found). Just skip it.
|
||||
push @plugins, $plugin unless $seen{$plugin};
|
||||
$seen{$plugin} = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -5341,6 +5372,11 @@ sub mysqld_arguments ($$$) {
|
||||
mtr_add_arg($args, "--loose-debug-sync-timeout=%s",
|
||||
$opt_debug_sync_timeout) unless $opt_user_args;
|
||||
|
||||
if (@plugins) {
|
||||
my $sep = (IS_WINDOWS) ? ';' : ':';
|
||||
mtr_add_arg($args, "--plugin-load=%s" . join($sep, @plugins));
|
||||
}
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
||||
@ -5441,8 +5477,8 @@ sub mysqld_start ($$) {
|
||||
# Write a message about this to the normal log file
|
||||
my $trace_name= "$opt_vardir/log/".$mysqld->name().".trace";
|
||||
mtr_tofile($output,
|
||||
"NOTE: When running with --valgrind --debug the output from",
|
||||
"mysqld(where the valgrind messages shows up) is stored ",
|
||||
"NOTE: When running with --valgrind --debug the output from ",
|
||||
"mysqld (where the valgrind messages shows up) is stored ",
|
||||
"together with the trace file to make it ",
|
||||
"easier to find the exact position of valgrind errors.",
|
||||
"See trace file $trace_name.\n");
|
||||
|
@ -12738,8 +12738,15 @@ INSERT INTO t1 (col1, col2) VALUES (1, "value");
|
||||
ERROR HY000: Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
||||
REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair Error Table upgrade required. Please do "REPAIR TABLE `t1`" or dump/reload to fix it!
|
||||
test.t1 repair status Table is already up to date
|
||||
test.t1 repair status OK
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` int(11) DEFAULT NULL,
|
||||
`col2` varchar(20) DEFAULT NULL
|
||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1;
|
||||
col1 col2
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#48757 - missing .ARZ file causes server crash
|
||||
|
@ -714,12 +714,17 @@ Warnings:
|
||||
Warning 1708 The value of 'max_allowed_packet' should be no less than the value of 'net_buffer_length'
|
||||
SELECT CONVERT('a', BINARY(2049));
|
||||
CONVERT('a', BINARY(2049))
|
||||
NULL
|
||||
a |