diff options
author | Monty <monty@mariadb.org> | 2018-08-24 21:03:22 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-08-24 21:03:22 +0300 |
commit | 490e220ad2cf14321f18841a3e6c60fcb12a322e (patch) | |
tree | 2d8e730648bafdee09d48a7806ae8febeed2b5e0 /mysql-test/suite/maria | |
parent | f195286a3eae6328a1f90948205e90201c0479c5 (diff) | |
download | mariadb-git-490e220ad2cf14321f18841a3e6c60fcb12a322e.tar.gz |
MDEV-17067 Server crash in write_block_record
Problem was that Create_field::create_length_to_internal_length()
calculated a different pack_length for NEWDECIMAL compared to
Field_new_decimal constructor which lead to some unused bytes
in the middle of the record, which Aria didn't like.
Diffstat (limited to 'mysql-test/suite/maria')
-rw-r--r-- | mysql-test/suite/maria/create.result | 9 | ||||
-rw-r--r-- | mysql-test/suite/maria/create.test | 11 |
2 files changed, 19 insertions, 1 deletions
diff --git a/mysql-test/suite/maria/create.result b/mysql-test/suite/maria/create.result index 83c5b8d22e4..82c6b8c9871 100644 --- a/mysql-test/suite/maria/create.result +++ b/mysql-test/suite/maria/create.result @@ -1,4 +1,4 @@ -CREATE OR REPLACE TABLE t1 ( +CREATE OR REPLACE TABLE t1 ( f1 DECIMAL(43,0) NOT NULL, f2 TIME(4) NULL, f3 BINARY(101) NULL, @@ -24,3 +24,10 @@ INSERT IGNORE INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12) VALUES Warnings: Note 1265 Data truncated for column 'f1' at row 1 DROP TABLE t1; +CREATE OR REPLACE TABLE t1 (a INT(45)); +INSERT IGNORE INTO t1 VALUES (1),(2); +CREATE OR REPLACE TABLE t2 ENGINE=Aria AS SELECT SUM(a) AS f1, IFNULL( 'qux', ExtractValue( 'foo', 'bar' ) ) AS f2 FROM t1; +select * from t2; +f1 f2 +3 qux +DROP TABLE t1, t2; diff --git a/mysql-test/suite/maria/create.test b/mysql-test/suite/maria/create.test index 2e61a95d743..8f2ffd7492f 100644 --- a/mysql-test/suite/maria/create.test +++ b/mysql-test/suite/maria/create.test @@ -29,3 +29,14 @@ CREATE OR REPLACE TABLE t1 ( INSERT IGNORE INTO t1 (f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12) VALUES (0.8,'16:01:46',NULL,'2006-03-01 12:44:34','2029-10-10 21:27:53','a','foo','1989-12-24','bar',9,1975,b'1'); DROP TABLE t1; + +# +# MDEV-17067 Server crash in write_block_record +# + +CREATE OR REPLACE TABLE t1 (a INT(45)); +INSERT IGNORE INTO t1 VALUES (1),(2); + +CREATE OR REPLACE TABLE t2 ENGINE=Aria AS SELECT SUM(a) AS f1, IFNULL( 'qux', ExtractValue( 'foo', 'bar' ) ) AS f2 FROM t1; +select * from t2; +DROP TABLE t1, t2; |