diff options
-rw-r--r-- | mysql-test/std_data/mdev17909#P#p20181029.MYD | 0 | ||||
-rw-r--r-- | mysql-test/std_data/mdev17909#P#p20181029.MYI | bin | 0 -> 1024 bytes | |||
-rw-r--r-- | mysql-test/std_data/mdev17909#P#p20181128.MYD | 0 | ||||
-rw-r--r-- | mysql-test/std_data/mdev17909#P#p20181128.MYI | bin | 0 -> 1024 bytes | |||
-rw-r--r-- | mysql-test/std_data/mdev17909.frm | bin | 0 -> 3284 bytes | |||
-rw-r--r-- | mysql-test/std_data/mdev17909.par | bin | 0 -> 48 bytes | |||
-rw-r--r-- | mysql-test/suite/vcol/r/upgrade.result | 16 | ||||
-rw-r--r-- | mysql-test/suite/vcol/t/upgrade.test | 15 | ||||
-rw-r--r-- | sql/table.cc | 2 |
9 files changed, 32 insertions, 1 deletions
diff --git a/mysql-test/std_data/mdev17909#P#p20181029.MYD b/mysql-test/std_data/mdev17909#P#p20181029.MYD new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/mysql-test/std_data/mdev17909#P#p20181029.MYD diff --git a/mysql-test/std_data/mdev17909#P#p20181029.MYI b/mysql-test/std_data/mdev17909#P#p20181029.MYI Binary files differnew file mode 100644 index 00000000000..dcdd088b4dc --- /dev/null +++ b/mysql-test/std_data/mdev17909#P#p20181029.MYI diff --git a/mysql-test/std_data/mdev17909#P#p20181128.MYD b/mysql-test/std_data/mdev17909#P#p20181128.MYD new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/mysql-test/std_data/mdev17909#P#p20181128.MYD diff --git a/mysql-test/std_data/mdev17909#P#p20181128.MYI b/mysql-test/std_data/mdev17909#P#p20181128.MYI Binary files differnew file mode 100644 index 00000000000..dcdd088b4dc --- /dev/null +++ b/mysql-test/std_data/mdev17909#P#p20181128.MYI diff --git a/mysql-test/std_data/mdev17909.frm b/mysql-test/std_data/mdev17909.frm Binary files differnew file mode 100644 index 00000000000..575ecd2c70f --- /dev/null +++ b/mysql-test/std_data/mdev17909.frm diff --git a/mysql-test/std_data/mdev17909.par b/mysql-test/std_data/mdev17909.par Binary files differnew file mode 100644 index 00000000000..d9141dd0dee --- /dev/null +++ b/mysql-test/std_data/mdev17909.par diff --git a/mysql-test/suite/vcol/r/upgrade.result b/mysql-test/suite/vcol/r/upgrade.result index 75684bf0e41..527bc5f3abf 100644 --- a/mysql-test/suite/vcol/r/upgrade.result +++ b/mysql-test/suite/vcol/r/upgrade.result @@ -16,3 +16,19 @@ select * from vcol_autoinc; pk v3 1 1 drop table vcol_autoinc; +check table t1 for upgrade; +Table Op Msg_type Msg_text +test.t1 check status OK +flush tables; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `Date` datetime(6) NOT NULL, + `Data` varbinary(2000) NOT NULL, + `a` varchar(100) GENERATED ALWAYS AS (column_get(`Data`,1 as char(100) charset latin1)) VIRTUAL, + PRIMARY KEY (`Date`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 + PARTITION BY RANGE (to_days(`Date`)) +(PARTITION `p20181029` VALUES LESS THAN (737361) ENGINE = MyISAM, + PARTITION `p20181128` VALUES LESS THAN (737391) ENGINE = MyISAM) +drop table t1; diff --git a/mysql-test/suite/vcol/t/upgrade.test b/mysql-test/suite/vcol/t/upgrade.test index 3e221747dfa..146495d8ed0 100644 --- a/mysql-test/suite/vcol/t/upgrade.test +++ b/mysql-test/suite/vcol/t/upgrade.test @@ -11,3 +11,18 @@ select * from vcol_autoinc; insert vcol_autoinc (pk) values (1); select * from vcol_autoinc; drop table vcol_autoinc; + +# +# MDEV-17909 Problem by MariaDB Update 10.1.32 -> 10.2.19 (Incorrect information in file: .frm) +# +source include/have_partition.inc; +copy_file std_data/mdev17909#P#p20181029.MYD $datadir/test/t1#P#p20181029.MYD; +copy_file std_data/mdev17909#P#p20181029.MYI $datadir/test/t1#P#p20181029.MYI; +copy_file std_data/mdev17909#P#p20181128.MYD $datadir/test/t1#P#p20181128.MYD; +copy_file std_data/mdev17909#P#p20181128.MYI $datadir/test/t1#P#p20181128.MYI; +copy_file std_data/mdev17909.frm $datadir/test/t1.frm; +copy_file std_data/mdev17909.par $datadir/test/t1.par; +check table t1 for upgrade; +flush tables; +show create table t1; +drop table t1; diff --git a/sql/table.cc b/sql/table.cc index 0cf88aed4f6..dbf10bc8293 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -1027,7 +1027,7 @@ bool parse_vcol_defs(THD *thd, MEM_ROOT *mem_root, TABLE *table, while (pos < end) { uint type, expr_length; - if (table->s->mysql_version >= 100202) + if (table->s->frm_version >= FRM_VER_EXPRESSSIONS) { uint field_nr, name_length; /* see pack_expression() for how data is stored */ |