summaryrefslogtreecommitdiff
path: root/mysql-test/suite/maria
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2018-08-24 21:03:22 +0300
committerMonty <monty@mariadb.org>2018-08-24 21:03:22 +0300
commit490e220ad2cf14321f18841a3e6c60fcb12a322e (patch)
tree2d8e730648bafdee09d48a7806ae8febeed2b5e0 /mysql-test/suite/maria
parentf195286a3eae6328a1f90948205e90201c0479c5 (diff)
downloadmariadb-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.result9
-rw-r--r--mysql-test/suite/maria/create.test11
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;