mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Merge 5.5 into 10.1
This commit is contained in:
commit
cf40393471
7 changed files with 231 additions and 23 deletions
123
.clang-format
123
.clang-format
|
@ -1,18 +1,117 @@
|
|||
SpaceBeforeAssignmentOperators: false
|
||||
SpaceAfterCStyleCast: true
|
||||
|
||||
BreakBeforeBraces: Custom
|
||||
---
|
||||
Language: Cpp
|
||||
AccessModifierOffset: -2
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveAssignments: false
|
||||
AlignConsecutiveDeclarations: false
|
||||
AlignEscapedNewlines: Right
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllArgumentsOnNextLine: true
|
||||
AllowAllConstructorInitializersOnNextLine: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: true
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: All
|
||||
AllowShortLambdasOnASingleLine: All
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
AlwaysBreakTemplateDeclarations: MultiLine
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BraceWrapping:
|
||||
AfterClass: true
|
||||
AfterCaseLabel: true
|
||||
AfterClass: true
|
||||
AfterControlStatement: true
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: true
|
||||
BeforeCatch: true
|
||||
BeforeElse: true
|
||||
BeforeCatch: true
|
||||
BeforeElse: true
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBraces: Custom
|
||||
BreakBeforeInheritanceComma: false
|
||||
BreakInheritanceList: BeforeColon
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
BreakConstructorInitializers: BeforeColon
|
||||
BreakStringLiterals: true
|
||||
ColumnLimit: 79
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: true
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
FixNamespaceComments: true
|
||||
ForEachMacros:
|
||||
- foreach
|
||||
- Q_FOREACH
|
||||
- BOOST_FOREACH
|
||||
IncludeBlocks: Preserve
|
||||
IncludeCategories:
|
||||
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
|
||||
Priority: 2
|
||||
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
|
||||
Priority: 3
|
||||
- Regex: '.*'
|
||||
Priority: 1
|
||||
IncludeIsMainRegex: '(Test)?$'
|
||||
IndentCaseLabels: false
|
||||
IndentPPDirectives: None
|
||||
IndentWidth: 2
|
||||
IndentWrappedFunctionNames: false
|
||||
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||
Language: Cpp
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: None
|
||||
PenaltyBreakAssignment: 2
|
||||
PenaltyBreakBeforeFirstCallParameter: 19
|
||||
PenaltyBreakComment: 300
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyBreakTemplateDeclaration: 10
|
||||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Right
|
||||
ReflowComments: true
|
||||
SortIncludes: true
|
||||
SortUsingDeclarations: true
|
||||
SpaceAfterCStyleCast: true
|
||||
SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: true
|
||||
SpaceBeforeAssignmentOperators: false
|
||||
SpaceBeforeCpp11BracedList: false
|
||||
SpaceBeforeCtorInitializerColon: true
|
||||
SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: false
|
||||
SpacesInContainerLiterals: true
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: Cpp11
|
||||
StatementMacros:
|
||||
- Q_UNUSED
|
||||
- QT_REQUIRE_VERSION
|
||||
TabWidth: 8
|
||||
UseTab: Never
|
||||
...
|
||||
|
|
|
@ -36,6 +36,21 @@ use POSIX qw[ _exit ];
|
|||
use IO::Handle qw[ flush ];
|
||||
use mtr_results;
|
||||
|
||||
use Term::ANSIColor;
|
||||
|
||||
my %color_map = qw/pass green
|
||||
retry-pass green
|
||||
fail red
|
||||
retry-fail red
|
||||
disabled bright_black
|
||||
skipped yellow
|
||||
reset reset/;
|
||||
sub xterm_color {
|
||||
if (-t STDOUT and defined $ENV{TERM} and $ENV{TERM} =~ /xterm/) {
|
||||
syswrite STDOUT, color($color_map{$_[0]});
|
||||
}
|
||||
}
|
||||
|
||||
my $tot_real_time= 0;
|
||||
|
||||
our $timestamp= 0;
|
||||
|
@ -498,7 +513,16 @@ sub mtr_print (@) {
|
|||
sub mtr_report (@) {
|
||||
if (defined $verbose)
|
||||
{
|
||||
print _name(). join(" ", @_). "\n";
|
||||
my @s = split /\[ (\S+) \]/, _name() . "@_\n";
|
||||
if (@s > 1) {
|
||||
print $s[0];
|
||||
xterm_color($s[1]);
|
||||
print "[ $s[1] ]";
|
||||
xterm_color('reset');
|
||||
print $s[2];
|
||||
} else {
|
||||
print $s[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2512,6 +2512,40 @@ WHERE tb1.pk = 40
|
|||
ORDER BY tb1.i1;
|
||||
v2
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# MDEV-19790 : IS NOT TRUE / IS NOT FALSE predicates over
|
||||
# inner tables of outer joins
|
||||
#
|
||||
create table t1 (a int);
|
||||
create table t2 (b int);
|
||||
insert into t1 values (3), (7), (1);
|
||||
insert into t2 values (7), (4), (3);
|
||||
select * from t1 left join t2 on a=b;
|
||||
a b
|
||||
3 3
|
||||
7 7
|
||||
1 NULL
|
||||
select * from t1 left join t2 on a=b where (b > 3) is not true;
|
||||
a b
|
||||
3 3
|
||||
1 NULL
|
||||
explain extended select * from t1 left join t2 on a=b where (b > 3) is not true;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`b` = `test`.`t1`.`a`)) where ((`test`.`t2`.`b` > 3) is not true)
|
||||
select * from t1 left join t2 on a=b where (b > 3) is not false;
|
||||
a b
|
||||
7 7
|
||||
1 NULL
|
||||
explain extended select * from t1 left join t2 on a=b where (b > 3) is not false;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`b` = `test`.`t1`.`a`)) where ((`test`.`t2`.`b` > 3) is not false)
|
||||
drop table t1,t2;
|
||||
# end of 5.5 tests
|
||||
#
|
||||
# MDEV-19258: chained right joins all converted to inner joins
|
||||
|
|
|
@ -2523,6 +2523,40 @@ WHERE tb1.pk = 40
|
|||
ORDER BY tb1.i1;
|
||||
v2
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# MDEV-19790 : IS NOT TRUE / IS NOT FALSE predicates over
|
||||
# inner tables of outer joins
|
||||
#
|
||||
create table t1 (a int);
|
||||
create table t2 (b int);
|
||||
insert into t1 values (3), (7), (1);
|
||||
insert into t2 values (7), (4), (3);
|
||||
select * from t1 left join t2 on a=b;
|
||||
a b
|
||||
7 7
|
||||
3 3
|
||||
1 NULL
|
||||
select * from t1 left join t2 on a=b where (b > 3) is not true;
|
||||
a b
|
||||
3 3
|
||||
1 NULL
|
||||
explain extended select * from t1 left join t2 on a=b where (b > 3) is not true;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`b` = `test`.`t1`.`a`)) where ((`test`.`t2`.`b` > 3) is not true)
|
||||
select * from t1 left join t2 on a=b where (b > 3) is not false;
|
||||
a b
|
||||
7 7
|
||||
1 NULL
|
||||
explain extended select * from t1 left join t2 on a=b where (b > 3) is not false;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`b` = `test`.`t1`.`a`)) where ((`test`.`t2`.`b` > 3) is not false)
|
||||
drop table t1,t2;
|
||||
# end of 5.5 tests
|
||||
#
|
||||
# MDEV-19258: chained right joins all converted to inner joins
|
||||
|
|
|
@ -2040,6 +2040,29 @@ ORDER BY tb1.i1;
|
|||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-19790 : IS NOT TRUE / IS NOT FALSE predicates over
|
||||
--echo # inner tables of outer joins
|
||||
--echo #
|
||||
|
||||
create table t1 (a int);
|
||||
create table t2 (b int);
|
||||
insert into t1 values (3), (7), (1);
|
||||
insert into t2 values (7), (4), (3);
|
||||
select * from t1 left join t2 on a=b;
|
||||
|
||||
let $q=
|
||||
select * from t1 left join t2 on a=b where (b > 3) is not true;
|
||||
eval $q;
|
||||
eval explain extended $q;
|
||||
|
||||
let $q=
|
||||
select * from t1 left join t2 on a=b where (b > 3) is not false;
|
||||
eval $q;
|
||||
eval explain extended $q;
|
||||
|
||||
drop table t1,t2;
|
||||
|
||||
--echo # end of 5.5 tests
|
||||
|
||||
--echo #
|
||||
|
|
|
@ -257,6 +257,8 @@ public:
|
|||
Item_func_truth(thd, a, true, false) {}
|
||||
~Item_func_isnottrue() {}
|
||||
virtual const char* func_name() const { return "isnottrue"; }
|
||||
bool eval_not_null_tables(uchar *opt_arg)
|
||||
{ not_null_tables_cache= 0; return false; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -284,6 +286,8 @@ public:
|
|||
Item_func_truth(thd, a, false, false) {}
|
||||
~Item_func_isnotfalse() {}
|
||||
virtual const char* func_name() const { return "isnotfalse"; }
|
||||
bool eval_not_null_tables(uchar *opt_arg)
|
||||
{ not_null_tables_cache= 0; return false; }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
UseTab: Always
|
||||
TabWidth: 8
|
||||
IndentWidth: 8
|
||||
BreakBeforeBinaryOperators: All
|
||||
PointerAlignment: Left
|
||||
AlwaysBreakAfterReturnType: TopLevel
|
||||
BreakBeforeBraces: Custom
|
||||
BraceWrapping:
|
||||
AfterFunction: true
|
||||
AccessModifierOffset: -8
|
Loading…
Reference in a new issue