Merge branch '5.5' into 10.0
This commit is contained in:
commit
09e97299ba
@ -170,7 +170,7 @@ MACRO (MYSQL_CHECK_SSL)
|
||||
REGEX "^#define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*"
|
||||
)
|
||||
STRING(REGEX REPLACE
|
||||
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1"
|
||||
"^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9][0-9][0-9]).*$" "\\1"
|
||||
OPENSSL_MAJOR_VERSION "${OPENSSL_VERSION_NUMBER}"
|
||||
)
|
||||
INCLUDE(CheckSymbolExists)
|
||||
@ -182,7 +182,8 @@ MACRO (MYSQL_CHECK_SSL)
|
||||
SET(OPENSSL_FOUND FALSE)
|
||||
ENDIF()
|
||||
|
||||
IF(OPENSSL_FOUND AND HAVE_SHA512_DIGEST_LENGTH)
|
||||
IF(OPENSSL_FOUND AND OPENSSL_MAJOR_VERSION STRLESS "101" AND
|
||||
HAVE_SHA512_DIGEST_LENGTH)
|
||||
MESSAGE(STATUS "OPENSSL_INCLUDE_DIR = ${OPENSSL_INCLUDE_DIR}")
|
||||
MESSAGE(STATUS "OPENSSL_LIBRARIES = ${OPENSSL_LIBRARIES}")
|
||||
MESSAGE(STATUS "CRYPTO_LIBRARY = ${CRYPTO_LIBRARY}")
|
||||
|
@ -1152,7 +1152,7 @@ sub command_line_setup {
|
||||
'debug' => \$opt_debug,
|
||||
'debug-common' => \$opt_debug_common,
|
||||
'debug-server' => \$opt_debug_server,
|
||||
'gdb' => \$opt_gdb,
|
||||
'gdb=s' => \$opt_gdb,
|
||||
'client-gdb' => \$opt_client_gdb,
|
||||
'manual-gdb' => \$opt_manual_gdb,
|
||||
'manual-lldb' => \$opt_manual_lldb,
|
||||
@ -1247,6 +1247,9 @@ sub command_line_setup {
|
||||
'skip-test-list=s' => \@opt_skip_test_list
|
||||
);
|
||||
|
||||
# fix options (that take an optional argument and *only* after = sign
|
||||
my %fixopt = ( '--gdb' => '--gdb=#' );
|
||||
@ARGV = map { $fixopt{$_} or $_ } @ARGV;
|
||||
GetOptions(%options) or usage("Can't read options");
|
||||
usage("") if $opt_usage;
|
||||
list_options(\%options) if $opt_list_options;
|
||||
@ -6069,7 +6072,9 @@ sub gdb_arguments {
|
||||
# Put $args into a single string
|
||||
$input = $input ? "< $input" : "";
|
||||
|
||||
if ($type ne 'client' and $opt_valgrind_mysqld) {
|
||||
if ($type eq 'client') {
|
||||
mtr_tofile($gdb_init_file, "set args @$$args $input");
|
||||
} elsif ($opt_valgrind_mysqld) {
|
||||
my $v = $$exe;
|
||||
my $vargs = [];
|
||||
valgrind_arguments($vargs, \$v);
|
||||
@ -6079,7 +6084,11 @@ shell sleep 1
|
||||
target remote | /usr/lib64/valgrind/../../bin/vgdb
|
||||
EOF
|
||||
} else {
|
||||
mtr_tofile($gdb_init_file, "set args @$$args $input\n");
|
||||
mtr_tofile($gdb_init_file,
|
||||
join("\n",
|
||||
"set args @$$args $input",
|
||||
split /;/, $opt_gdb || ""
|
||||
));
|
||||
}
|
||||
|
||||
if ( $opt_manual_gdb )
|
||||
|
@ -1997,8 +1997,50 @@ select 0.0000000001 mod 1;
|
||||
select 0.01 mod 1;
|
||||
0.01 mod 1
|
||||
0.01
|
||||
CREATE TABLE t1 (
|
||||
`FLD1` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD2` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD3` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD4` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD5` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD6` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD7` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD8` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD9` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD10` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD11` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD12` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD13` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD14` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD15` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD16` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD17` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD18` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD19` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD20` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD21` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD22` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD23` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000
|
||||
);
|
||||
INSERT INTO t1 VALUES (001.0760,000.9500,001.0000,001.0000,001.0000,
|
||||
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.5949,001.0194,
|
||||
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.9220,001.1890,001.2130,327.2690);
|
||||
select FLD1*FLD2*FLD3*FLD4*FLD5*FLD6*FLD7*FLD8*FLD9*FLD10*FLD11*FLD12*FLD13*FLD14*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD23 as calc1 from t1;
|
||||
calc1
|
||||
269.775757576440530322187032000000
|
||||
select FLD23*FLD2*FLD1*FLD4*FLD5*FLD11*FLD12*FLD13*FLD3*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD14*FLD6*FLD7*FLD8*FLD9*FLD10 as calc2 from t1;
|
||||
calc2
|
||||
269.775757576440530322187032000000
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT 1.0 * 2.000;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`1.0 * 2.000` decimal(6,4) NOT NULL DEFAULT '0.0000'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 10.0 tests
|
||||
# End of 5.5 tests
|
||||
#
|
||||
#
|
||||
# MDEV-6950 Bad results with joins comparing DATE and INT/ENUM/VARCHAR columns
|
||||
|
@ -1581,8 +1581,51 @@ select 0.000000000000000000000000000000000000000000000000001 mod 1;
|
||||
select 0.0000000001 mod 1;
|
||||
select 0.01 mod 1;
|
||||
|
||||
#
|
||||
# MDEV-17256 Decimal field multiplication bug
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
`FLD1` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD2` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD3` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD4` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD5` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD6` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD7` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD8` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD9` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD10` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD11` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD12` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD13` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD14` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD15` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD16` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD17` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD18` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD19` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD20` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD21` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD22` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000,
|
||||
`FLD23` decimal(7,4) unsigned zerofill NOT NULL DEFAULT 001.0000
|
||||
);
|
||||
|
||||
INSERT INTO t1 VALUES (001.0760,000.9500,001.0000,001.0000,001.0000,
|
||||
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.5949,001.0194,
|
||||
001.0000,001.0000,001.0000,001.0000,001.0000,001.0000,000.9220,001.1890,001.2130,327.2690);
|
||||
|
||||
select FLD1*FLD2*FLD3*FLD4*FLD5*FLD6*FLD7*FLD8*FLD9*FLD10*FLD11*FLD12*FLD13*FLD14*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD23 as calc1 from t1;
|
||||
select FLD23*FLD2*FLD1*FLD4*FLD5*FLD11*FLD12*FLD13*FLD3*FLD15*FLD16*FLD17*FLD18*FLD19*FLD20*FLD21*FLD22*FLD14*FLD6*FLD7*FLD8*FLD9*FLD10 as calc2 from t1;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 AS SELECT 1.0 * 2.000;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Start of 10.0 tests
|
||||
--echo # End of 5.5 tests
|
||||
--echo #
|
||||
|
||||
--echo #
|
||||
|
@ -2078,26 +2078,21 @@ int decimal_mul(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
|
||||
}
|
||||
}
|
||||
|
||||
/* Now we have to check for -0.000 case */
|
||||
if (to->sign)
|
||||
/* Remove trailing zero words in frac part */
|
||||
frac0= ROUND_UP(to->frac);
|
||||
|
||||
if (frac0 > 0 && to->buf[intg0 + frac0 - 1] == 0)
|
||||
{
|
||||
dec1 *buf= to->buf;
|
||||
dec1 *end= to->buf + intg0 + frac0;
|
||||
DBUG_ASSERT(buf != end);
|
||||
for (;;)
|
||||
do
|
||||
{
|
||||
if (*buf)
|
||||
break;
|
||||
if (++buf == end)
|
||||
{
|
||||
/* We got decimal zero */
|
||||
decimal_make_zero(to);
|
||||
break;
|
||||
}
|
||||
}
|
||||
frac0--;
|
||||
} while (frac0 > 0 && to->buf[intg0 + frac0 - 1] == 0);
|
||||
to->frac= DIG_PER_DEC1 * frac0;
|
||||
}
|
||||
|
||||
/* Remove heading zero words in intg part */
|
||||
buf1= to->buf;
|
||||
d_to_move= intg0 + ROUND_UP(to->frac);
|
||||
d_to_move= intg0 + frac0;
|
||||
while (!*buf1 && (to->intg > DIG_PER_DEC1))
|
||||
{
|
||||
buf1++;
|
||||
@ -2110,6 +2105,14 @@ int decimal_mul(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
|
||||
for (; d_to_move--; cur_d++, buf1++)
|
||||
*cur_d= *buf1;
|
||||
}
|
||||
|
||||
/* Now we have to check for -0.000 case */
|
||||
if (to->sign && to->frac == 0 && to->buf[0] == 0)
|
||||
{
|
||||
DBUG_ASSERT(to->intg <= DIG_PER_DEC1);
|
||||
/* We got decimal zero */
|
||||
decimal_make_zero(to);
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user