summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rwxr-xr-xmysql-test/mysql-test-run.pl15
-rw-r--r--mysql-test/r/type_newdecimal.result44
-rw-r--r--mysql-test/suite.pm6
-rw-r--r--mysql-test/suite/innodb/r/table_flags,4k,debug.rdiff128
-rw-r--r--mysql-test/suite/innodb/r/table_flags,4k,release.rdiff (renamed from mysql-test/suite/innodb/r/table_flags,4k.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/table_flags,8k,debug.rdiff128
-rw-r--r--mysql-test/suite/innodb/r/table_flags,8k,release.rdiff (renamed from mysql-test/suite/innodb/r/table_flags,8k.rdiff)0
-rw-r--r--mysql-test/suite/innodb/r/table_flags,debug.rdiff128
-rw-r--r--mysql-test/suite/innodb/t/table_flags.test4
-rw-r--r--mysql-test/t/type_newdecimal.test45
10 files changed, 490 insertions, 8 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index d969d7bf9f6..0e5e1c3d9d0 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -1136,7 +1136,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,
@@ -1231,6 +1231,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;
@@ -5666,7 +5669,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);
@@ -5676,7 +5681,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 )
diff --git a/mysql-test/r/type_newdecimal.result b/mysql-test/r/type_newdecimal.result
index 56a04971fa1..2246784df42 100644
--- a/mysql-test/r/type_newdecimal.result
+++ b/mysql-test/r/type_newdecimal.result
@@ -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
+) 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
diff --git a/mysql-test/suite.pm b/mysql-test/suite.pm
index 5ac3bd3e138..959329d1641 100644
--- a/mysql-test/suite.pm
+++ b/mysql-test/suite.pm
@@ -26,6 +26,9 @@ sub skip_combinations {
# don't run tests for the wrong platform
$skip{'include/platform.combinations'} = [ (IS_WINDOWS) ? 'unix' : 'win' ];
+ $skip{'include/maybe_debug.combinations'} =
+ [ defined $::mysqld_variables{'debug-dbug'} ? 'release' : 'debug' ];
+
# and for the wrong word size
# check for exact values, in case the default changes to be small everywhere
my $longsysvar= $::mysqld_variables{'max-binlog-stmt-cache-size'};
@@ -36,9 +39,6 @@ sub skip_combinations {
die "unknown value max-binlog-stmt-cache-size=$longsysvar" unless $val_map{$longsysvar};
$skip{'include/word_size.combinations'} = [ $val_map{$longsysvar} ];
- $skip{'include/maybe_debug.combinations'} =
- [ defined $::mysqld_variables{'debug-dbug'} ? 'release' : 'debug' ];
-
# as a special case, disable certain include files as a whole
$skip{'include/not_embedded.inc'} = 'Not run for embedded server'
if $::opt_embedded_server;
diff --git a/mysql-test/suite/innodb/r/table_flags,4k,debug.rdiff b/mysql-test/suite/innodb/r/table_flags,4k,debug.rdiff
new file mode 100644
index 00000000000..83e40b2d3fd
--- /dev/null
+++ b/mysql-test/suite/innodb/r/table_flags,4k,debug.rdiff
@@ -0,0 +1,128 @@
+--- suite/innodb/r/table_flags.result
++++ suite/innodb/r/table_flags,4k,debug.reject
+@@ -10,81 +10,81 @@
+ CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+ SYS_TABLES clustered index root page (8):
+ N_RECS=9; LEVEL=0; INDEX_ID=0x0000000000000001
+-header=0x01000003016e (NAME=0x696e66696d756d00)
+-header=0x00002815008d (NAME='SYS_DATAFILES',
+- DB_TRX_ID=0x000000000301,
+- DB_ROLL_PTR=0x81000001320194,
+- ID=0x000000000000000e,
++header=0x0100000301bf (NAME=0x696e66696d756d00)
++header=0x0000301500de (NAME='SYS_DATAFILES',
++ DB_TRX_ID=0x000000000302,
++ DB_ROLL_PTR=0x81000003270194,
++ ID=0x000000000000000f,
+ N_COLS=0x00000002,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x0000101500d5 (NAME='SYS_FOREIGN',
++header=0x000018150126 (NAME='SYS_FOREIGN',
+ DB_TRX_ID=0x000000000300,
+- DB_ROLL_PTR=0x800000012d0110,
+- ID=0x000000000000000b,
++ DB_ROLL_PTR=0x8000000320016f,
++ ID=0x000000000000000c,
+ N_COLS=0x00000004,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
++header=0x000020150173 (NAME='SYS_FOREIGN_COLS',
+ DB_TRX_ID=0x000000000300,
+- DB_ROLL_PTR=0x800000012d0201,
+- ID=0x000000000000000c,
++ DB_ROLL_PTR=0x80000003200260,
++ ID=0x000000000000000d,
+ N_COLS=0x00000004,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x0400201501fc (NAME='SYS_TABLESPACES',
+- DB_TRX_ID=0x000000000301,
+- DB_ROLL_PTR=0x81000001320110,
+- ID=0x000000000000000d,
++header=0x040028150209 (NAME='SYS_TABLESPACES',
++ DB_TRX_ID=0x000000000302,
++ DB_ROLL_PTR=0x81000003270110,
++ ID=0x000000000000000e,
+ N_COLS=0x00000003,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x000038150240 (NAME='test/tc',
+- DB_TRX_ID=0x000000000303,
+- DB_ROLL_PTR=0x83000001360110,
+- ID=0x0000000000000010,
++header=0x00003815024d (NAME='test/tc',
++ DB_TRX_ID=0x000000000304,
++ DB_ROLL_PTR=0x830000032c0110,
++ ID=0x0000000000000011,
+ N_COLS=0x80000001,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000002)
+-header=0x0000401502c8 (NAME='test/td',
+- DB_TRX_ID=0x000000000304,
+- DB_ROLL_PTR=0x84000001370110,
+- ID=0x0000000000000011,
++header=0x0000401502d5 (NAME='test/td',
++ DB_TRX_ID=0x000000000305,
++ DB_ROLL_PTR=0x840000032d0110,
++ ID=0x0000000000000012,
+ N_COLS=0x80000001,
+ TYPE=0x00000021,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000003)
+-header=0x0000501501b8 (NAME='test/tp',
+- DB_TRX_ID=0x000000000306,
+- DB_ROLL_PTR=0x86000001390110,
+- ID=0x0000000000000013,
++header=0x00005015008d (NAME='test/tp',
++ DB_TRX_ID=0x000000000307,
++ DB_ROLL_PTR=0x86000003300110,
++ ID=0x0000000000000014,
+ N_COLS=0x80000001,
+ TYPE=0x00000021,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000005)
+-header=0x000030150284 (NAME='test/tr',
+- DB_TRX_ID=0x000000000302,
+- DB_ROLL_PTR=0x82000001350110,
+- ID=0x000000000000000f,
++header=0x000010150291 (NAME='test/tr',
++ DB_TRX_ID=0x000000000303,
++ DB_ROLL_PTR=0x820000032b0110,
++ ID=0x0000000000000010,
+ N_COLS=0x00000001,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+@@ -92,9 +92,9 @@
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000001)
+ header=0x000048150074 (NAME='test/tz',
+- DB_TRX_ID=0x000000000305,
+- DB_ROLL_PTR=0x85000001380110,
+- ID=0x0000000000000012,
++ DB_TRX_ID=0x000000000306,
++ DB_ROLL_PTR=0x850000032e0110,
++ ID=0x0000000000000013,
+ N_COLS=0x80000001,
+ TYPE=0x00000023,
+ MIX_ID=0x0000000000000000,
diff --git a/mysql-test/suite/innodb/r/table_flags,4k.rdiff b/mysql-test/suite/innodb/r/table_flags,4k,release.rdiff
index faa8a408c65..faa8a408c65 100644
--- a/mysql-test/suite/innodb/r/table_flags,4k.rdiff
+++ b/mysql-test/suite/innodb/r/table_flags,4k,release.rdiff
diff --git a/mysql-test/suite/innodb/r/table_flags,8k,debug.rdiff b/mysql-test/suite/innodb/r/table_flags,8k,debug.rdiff
new file mode 100644
index 00000000000..14fa7509c19
--- /dev/null
+++ b/mysql-test/suite/innodb/r/table_flags,8k,debug.rdiff
@@ -0,0 +1,128 @@
+--- suite/innodb/r/table_flags.result
++++ suite/innodb/r/table_flags,8k,debug.reject
+@@ -10,81 +10,81 @@
+ CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+ SYS_TABLES clustered index root page (8):
+ N_RECS=9; LEVEL=0; INDEX_ID=0x0000000000000001
+-header=0x01000003016e (NAME=0x696e66696d756d00)
+-header=0x00002815008d (NAME='SYS_DATAFILES',
+- DB_TRX_ID=0x000000000301,
+- DB_ROLL_PTR=0x81000001320194,
+- ID=0x000000000000000e,
++header=0x0100000301bf (NAME=0x696e66696d756d00)
++header=0x0000301500de (NAME='SYS_DATAFILES',
++ DB_TRX_ID=0x000000000302,
++ DB_ROLL_PTR=0x81000001d80194,
++ ID=0x000000000000000f,
+ N_COLS=0x00000002,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x0000101500d5 (NAME='SYS_FOREIGN',
++header=0x000018150126 (NAME='SYS_FOREIGN',
+ DB_TRX_ID=0x000000000300,
+- DB_ROLL_PTR=0x800000012d0110,
+- ID=0x000000000000000b,
++ DB_ROLL_PTR=0x80000001d1016f,
++ ID=0x000000000000000c,
+ N_COLS=0x00000004,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
++header=0x000020150173 (NAME='SYS_FOREIGN_COLS',
+ DB_TRX_ID=0x000000000300,
+- DB_ROLL_PTR=0x800000012d0201,
+- ID=0x000000000000000c,
++ DB_ROLL_PTR=0x80000001d10260,
++ ID=0x000000000000000d,
+ N_COLS=0x00000004,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x0400201501fc (NAME='SYS_TABLESPACES',
+- DB_TRX_ID=0x000000000301,
+- DB_ROLL_PTR=0x81000001320110,
+- ID=0x000000000000000d,
++header=0x040028150209 (NAME='SYS_TABLESPACES',
++ DB_TRX_ID=0x000000000302,
++ DB_ROLL_PTR=0x81000001d80110,
++ ID=0x000000000000000e,
+ N_COLS=0x00000003,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x000038150240 (NAME='test/tc',
+- DB_TRX_ID=0x000000000303,
+- DB_ROLL_PTR=0x83000001360110,
+- ID=0x0000000000000010,
++header=0x00003815024d (NAME='test/tc',
++ DB_TRX_ID=0x000000000304,
++ DB_ROLL_PTR=0x83000001dc0110,
++ ID=0x0000000000000011,
+ N_COLS=0x80000001,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000002)
+-header=0x0000401502c8 (NAME='test/td',
+- DB_TRX_ID=0x000000000304,
+- DB_ROLL_PTR=0x84000001370110,
+- ID=0x0000000000000011,
++header=0x0000401502d5 (NAME='test/td',
++ DB_TRX_ID=0x000000000305,
++ DB_ROLL_PTR=0x84000001dd0110,
++ ID=0x0000000000000012,
+ N_COLS=0x80000001,
+ TYPE=0x00000021,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000003)
+-header=0x0000501501b8 (NAME='test/tp',
+- DB_TRX_ID=0x000000000306,
+- DB_ROLL_PTR=0x86000001390110,
+- ID=0x0000000000000013,
++header=0x00005015008d (NAME='test/tp',
++ DB_TRX_ID=0x000000000307,
++ DB_ROLL_PTR=0x86000001df0110,
++ ID=0x0000000000000014,
+ N_COLS=0x80000001,
+ TYPE=0x00000021,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000005)
+-header=0x000030150284 (NAME='test/tr',
+- DB_TRX_ID=0x000000000302,
+- DB_ROLL_PTR=0x82000001350110,
+- ID=0x000000000000000f,
++header=0x000010150291 (NAME='test/tr',
++ DB_TRX_ID=0x000000000303,
++ DB_ROLL_PTR=0x82000001db0110,
++ ID=0x0000000000000010,
+ N_COLS=0x00000001,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+@@ -92,9 +92,9 @@
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000001)
+ header=0x000048150074 (NAME='test/tz',
+- DB_TRX_ID=0x000000000305,
+- DB_ROLL_PTR=0x85000001380110,
+- ID=0x0000000000000012,
++ DB_TRX_ID=0x000000000306,
++ DB_ROLL_PTR=0x85000001de0110,
++ ID=0x0000000000000013,
+ N_COLS=0x80000001,
+ TYPE=0x00000023,
+ MIX_ID=0x0000000000000000,
diff --git a/mysql-test/suite/innodb/r/table_flags,8k.rdiff b/mysql-test/suite/innodb/r/table_flags,8k,release.rdiff
index ba3439fc6cf..ba3439fc6cf 100644
--- a/mysql-test/suite/innodb/r/table_flags,8k.rdiff
+++ b/mysql-test/suite/innodb/r/table_flags,8k,release.rdiff
diff --git a/mysql-test/suite/innodb/r/table_flags,debug.rdiff b/mysql-test/suite/innodb/r/table_flags,debug.rdiff
new file mode 100644
index 00000000000..d038515ffe5
--- /dev/null
+++ b/mysql-test/suite/innodb/r/table_flags,debug.rdiff
@@ -0,0 +1,128 @@
+--- suite/innodb/r/table_flags.result
++++ suite/innodb/r/table_flags,debug.reject
+@@ -10,81 +10,81 @@
+ CREATE TABLE tp(a INT PRIMARY KEY)ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
+ SYS_TABLES clustered index root page (8):
+ N_RECS=9; LEVEL=0; INDEX_ID=0x0000000000000001
+-header=0x01000003016e (NAME=0x696e66696d756d00)
+-header=0x00002815008d (NAME='SYS_DATAFILES',
+- DB_TRX_ID=0x000000000301,
+- DB_ROLL_PTR=0x81000001320194,
+- ID=0x000000000000000e,
++header=0x0100000301bf (NAME=0x696e66696d756d00)
++header=0x0000301500de (NAME='SYS_DATAFILES',
++ DB_TRX_ID=0x000000000302,
++ DB_ROLL_PTR=0x81000001330194,
++ ID=0x000000000000000f,
+ N_COLS=0x00000002,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x0000101500d5 (NAME='SYS_FOREIGN',
++header=0x000018150126 (NAME='SYS_FOREIGN',
+ DB_TRX_ID=0x000000000300,
+- DB_ROLL_PTR=0x800000012d0110,
+- ID=0x000000000000000b,
++ DB_ROLL_PTR=0x800000012d016f,
++ ID=0x000000000000000c,
+ N_COLS=0x00000004,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x000018150122 (NAME='SYS_FOREIGN_COLS',
++header=0x000020150173 (NAME='SYS_FOREIGN_COLS',
+ DB_TRX_ID=0x000000000300,
+- DB_ROLL_PTR=0x800000012d0201,
+- ID=0x000000000000000c,
++ DB_ROLL_PTR=0x800000012d0260,
++ ID=0x000000000000000d,
+ N_COLS=0x00000004,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x0400201501fc (NAME='SYS_TABLESPACES',
+- DB_TRX_ID=0x000000000301,
+- DB_ROLL_PTR=0x81000001320110,
+- ID=0x000000000000000d,
++header=0x040028150209 (NAME='SYS_TABLESPACES',
++ DB_TRX_ID=0x000000000302,
++ DB_ROLL_PTR=0x81000001330110,
++ ID=0x000000000000000e,
+ N_COLS=0x00000003,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000040,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000000)
+-header=0x000038150240 (NAME='test/tc',
+- DB_TRX_ID=0x000000000303,
+- DB_ROLL_PTR=0x83000001360110,
+- ID=0x0000000000000010,
++header=0x00003815024d (NAME='test/tc',
++ DB_TRX_ID=0x000000000304,
++ DB_ROLL_PTR=0x83000001370110,
++ ID=0x0000000000000011,
+ N_COLS=0x80000001,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000002)
+-header=0x0000401502c8 (NAME='test/td',
+- DB_TRX_ID=0x000000000304,
+- DB_ROLL_PTR=0x84000001370110,
+- ID=0x0000000000000011,
++header=0x0000401502d5 (NAME='test/td',
++ DB_TRX_ID=0x000000000305,
++ DB_ROLL_PTR=0x84000001380110,
++ ID=0x0000000000000012,
+ N_COLS=0x80000001,
+ TYPE=0x00000021,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000003)
+-header=0x0000501501b8 (NAME='test/tp',
+- DB_TRX_ID=0x000000000306,
+- DB_ROLL_PTR=0x86000001390110,
+- ID=0x0000000000000013,
++header=0x00005015008d (NAME='test/tp',
++ DB_TRX_ID=0x000000000307,
++ DB_ROLL_PTR=0x860000013a0110,
++ ID=0x0000000000000014,
+ N_COLS=0x80000001,
+ TYPE=0x00000021,
+ MIX_ID=0x0000000000000000,
+ MIX_LEN=0x00000050,
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000005)
+-header=0x000030150284 (NAME='test/tr',
+- DB_TRX_ID=0x000000000302,
+- DB_ROLL_PTR=0x82000001350110,
+- ID=0x000000000000000f,
++header=0x000010150291 (NAME='test/tr',
++ DB_TRX_ID=0x000000000303,
++ DB_ROLL_PTR=0x82000001360110,
++ ID=0x0000000000000010,
+ N_COLS=0x00000001,
+ TYPE=0x00000001,
+ MIX_ID=0x0000000000000000,
+@@ -92,9 +92,9 @@
+ CLUSTER_NAME=NULL(0 bytes),
+ SPACE=0x00000001)
+ header=0x000048150074 (NAME='test/tz',
+- DB_TRX_ID=0x000000000305,
+- DB_ROLL_PTR=0x85000001380110,
+- ID=0x0000000000000012,
++ DB_TRX_ID=0x000000000306,
++ DB_ROLL_PTR=0x85000001390110,
++ ID=0x0000000000000013,
+ N_COLS=0x80000001,
+ TYPE=0x00000023,
+ MIX_ID=0x0000000000000000,
diff --git a/mysql-test/suite/innodb/t/table_flags.test b/mysql-test/suite/innodb/t/table_flags.test
index 1e2b22235a2..dda5f948e20 100644
--- a/mysql-test/suite/innodb/t/table_flags.test
+++ b/mysql-test/suite/innodb/t/table_flags.test
@@ -1,6 +1,7 @@
--source include/innodb_page_size.inc
# Embedded server tests do not support restarting
--source include/not_embedded.inc
+--source include/maybe_debug.inc
--disable_query_log
call mtr.add_suppression("InnoDB: New log files created, LSN=");
@@ -22,6 +23,9 @@ let bugdir= $MYSQLTEST_VARDIR/tmp/table_flags;
--let $d=--innodb-data-home-dir=$bugdir --innodb-log-group-home-dir=$bugdir
--let $d=$d --innodb-data-file-path=ibdata1:10M:autoextend
--let $d=$d --innodb-undo-tablespaces=0
+if ($have_debug) {
+--let $d=$d --debug=d,create_and_drop_garbage
+}
--let $restart_parameters=$d --innodb-stats-persistent=0 --innodb-file-format=1
--source include/restart_mysqld.inc
diff --git a/mysql-test/t/type_newdecimal.test b/mysql-test/t/type_newdecimal.test
index 6fb8fd4f97d..03e55831972 100644
--- a/mysql-test/t/type_newdecimal.test
+++ b/mysql-test/t/type_newdecimal.test
@@ -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 #