diff options
author | Alexander Barkov <bar@mariadb.com> | 2018-04-23 18:34:06 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.com> | 2018-04-23 18:34:06 +0400 |
commit | 461de7edeaef80693e38969a4d7d3f5ae9bb5e63 (patch) | |
tree | 802b222e7082d8cabfb9ec66f0934be67f4d6414 /mysql-test/main | |
parent | 8fce4065e542ad64438d45f60421241dd383815f (diff) | |
download | mariadb-git-461de7edeaef80693e38969a4d7d3f5ae9bb5e63.tar.gz |
MDEV-15946 MEDIUMINT(N<8) creates a wrong data type on conversion to string
Diffstat (limited to 'mysql-test/main')
-rw-r--r-- | mysql-test/main/sp-row.result | 32 | ||||
-rw-r--r-- | mysql-test/main/type_int.result | 117 | ||||
-rw-r--r-- | mysql-test/main/type_int.test | 74 |
3 files changed, 207 insertions, 16 deletions
diff --git a/mysql-test/main/sp-row.result b/mysql-test/main/sp-row.result index 295a881f9e4..ac09f7572c3 100644 --- a/mysql-test/main/sp-row.result +++ b/mysql-test/main/sp-row.result @@ -1286,8 +1286,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1296,8 +1296,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1306,8 +1306,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1316,8 +1316,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1326,8 +1326,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1336,8 +1336,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1346,8 +1346,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; @@ -1356,8 +1356,8 @@ CALL p1(); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( - `var` mediumint(9) DEFAULT NULL, - `rec.var` mediumint(9) DEFAULT NULL + `var` mediumint(8) DEFAULT NULL, + `rec.var` mediumint(8) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; DROP PROCEDURE p1; diff --git a/mysql-test/main/type_int.result b/mysql-test/main/type_int.result index bd24641fd65..47c859d3ffb 100644 --- a/mysql-test/main/type_int.result +++ b/mysql-test/main/type_int.result @@ -106,5 +106,122 @@ a 7 b 8 DROP TABLE t1; # +# MDEV-15946 MEDIUMINT(N<8) creates a wrong data type on conversion to string +# +CREATE TABLE t1 ( +uint8 TINYINT(2) UNSIGNED, sint8 TINYINT(2), +uint16 SMALLINT(2) UNSIGNED, sint16 SMALLINT(2), +uint24 MEDIUMINT(2) UNSIGNED, sint24 MEDIUMINT(2), +uint32 INT(2) UNSIGNED, sint32 INT(2), +uint64 BIGINT(2) UNSIGNED, sint64 BIGINT(2) +); +CREATE TABLE t2 AS SELECT +CONCAT(uint8),CONCAT(sint8), +CONCAT(uint16),CONCAT(sint16), +CONCAT(uint24),CONCAT(sint24), +CONCAT(uint32),CONCAT(sint32), +CONCAT(uint64),CONCAT(sint64) +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `CONCAT(uint8)` varchar(3) DEFAULT NULL, + `CONCAT(sint8)` varchar(4) DEFAULT NULL, + `CONCAT(uint16)` varchar(5) DEFAULT NULL, + `CONCAT(sint16)` varchar(6) DEFAULT NULL, + `CONCAT(uint24)` varchar(8) DEFAULT NULL, + `CONCAT(sint24)` varchar(8) DEFAULT NULL, + `CONCAT(uint32)` varchar(10) DEFAULT NULL, + `CONCAT(sint32)` varchar(11) DEFAULT NULL, + `CONCAT(uint64)` varchar(20) DEFAULT NULL, + `CONCAT(sint64)` varchar(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t2; +CREATE TABLE t2 AS SELECT +CONCAT(COALESCE(uint8)),CONCAT(COALESCE(sint8)), +CONCAT(COALESCE(uint16)),CONCAT(COALESCE(sint16)), +CONCAT(COALESCE(uint24)),CONCAT(COALESCE(sint24)), +CONCAT(COALESCE(uint32)),CONCAT(COALESCE(sint32)), +CONCAT(COALESCE(uint64)),CONCAT(COALESCE(sint64)) +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `CONCAT(COALESCE(uint8))` varchar(3) DEFAULT NULL, + `CONCAT(COALESCE(sint8))` varchar(4) DEFAULT NULL, + `CONCAT(COALESCE(uint16))` varchar(5) DEFAULT NULL, + `CONCAT(COALESCE(sint16))` varchar(6) DEFAULT NULL, + `CONCAT(COALESCE(uint24))` varchar(8) DEFAULT NULL, + `CONCAT(COALESCE(sint24))` varchar(8) DEFAULT NULL, + `CONCAT(COALESCE(uint32))` varchar(10) DEFAULT NULL, + `CONCAT(COALESCE(sint32))` varchar(11) DEFAULT NULL, + `CONCAT(COALESCE(uint64))` varchar(20) DEFAULT NULL, + `CONCAT(COALESCE(sint64))` varchar(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t2; +DROP TABLE t1; +CREATE FUNCTION uint8() RETURNS TINYINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint8() RETURNS TINYINT(2) RETURN 1; +CREATE FUNCTION uint16() RETURNS SMALLINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint16() RETURNS SMALLINT(2) RETURN 1; +CREATE FUNCTION uint24() RETURNS MEDIUMINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint24() RETURNS MEDIUMINT(2) RETURN 1; +CREATE FUNCTION uint32() RETURNS INT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint32() RETURNS INT(2) RETURN 1; +CREATE FUNCTION uint64() RETURNS BIGINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint64() RETURNS BIGINT(2) RETURN 1; +CREATE TABLE t1 AS SELECT +CONCAT(uint8()), CONCAT(sint8()), +CONCAT(uint16()),CONCAT(sint16()), +CONCAT(uint24()),CONCAT(sint24()), +CONCAT(uint32()),CONCAT(sint32()), +CONCAT(uint64()),CONCAT(sint64()); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `CONCAT(uint8())` varchar(3) DEFAULT NULL, + `CONCAT(sint8())` varchar(4) DEFAULT NULL, + `CONCAT(uint16())` varchar(5) DEFAULT NULL, + `CONCAT(sint16())` varchar(6) DEFAULT NULL, + `CONCAT(uint24())` varchar(8) DEFAULT NULL, + `CONCAT(sint24())` varchar(8) DEFAULT NULL, + `CONCAT(uint32())` varchar(10) DEFAULT NULL, + `CONCAT(sint32())` varchar(11) DEFAULT NULL, + `CONCAT(uint64())` varchar(20) DEFAULT NULL, + `CONCAT(sint64())` varchar(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 AS SELECT +CONCAT(COALESCE(uint8())),CONCAT(COALESCE(sint8())), +CONCAT(COALESCE(uint16())),CONCAT(COALESCE(sint16())), +CONCAT(COALESCE(uint24())),CONCAT(COALESCE(sint24())), +CONCAT(COALESCE(uint32())),CONCAT(COALESCE(sint32())), +CONCAT(COALESCE(uint64())),CONCAT(COALESCE(sint64())); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `CONCAT(COALESCE(uint8()))` varchar(3) DEFAULT NULL, + `CONCAT(COALESCE(sint8()))` varchar(4) DEFAULT NULL, + `CONCAT(COALESCE(uint16()))` varchar(5) DEFAULT NULL, + `CONCAT(COALESCE(sint16()))` varchar(6) DEFAULT NULL, + `CONCAT(COALESCE(uint24()))` varchar(8) DEFAULT NULL, + `CONCAT(COALESCE(sint24()))` varchar(8) DEFAULT NULL, + `CONCAT(COALESCE(uint32()))` varchar(10) DEFAULT NULL, + `CONCAT(COALESCE(sint32()))` varchar(11) DEFAULT NULL, + `CONCAT(COALESCE(uint64()))` varchar(20) DEFAULT NULL, + `CONCAT(COALESCE(sint64()))` varchar(20) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +DROP FUNCTION uint8; +DROP FUNCTION sint8; +DROP FUNCTION uint16; +DROP FUNCTION sint16; +DROP FUNCTION uint24; +DROP FUNCTION sint24; +DROP FUNCTION uint32; +DROP FUNCTION sint32; +DROP FUNCTION uint64; +DROP FUNCTION sint64; +# # End of 10.3 tests # diff --git a/mysql-test/main/type_int.test b/mysql-test/main/type_int.test index f0df08ffa2c..bcab2b20dc4 100644 --- a/mysql-test/main/type_int.test +++ b/mysql-test/main/type_int.test @@ -91,5 +91,79 @@ DROP TABLE t1; --echo # +--echo # MDEV-15946 MEDIUMINT(N<8) creates a wrong data type on conversion to string +--echo # + +CREATE TABLE t1 ( + uint8 TINYINT(2) UNSIGNED, sint8 TINYINT(2), + uint16 SMALLINT(2) UNSIGNED, sint16 SMALLINT(2), + uint24 MEDIUMINT(2) UNSIGNED, sint24 MEDIUMINT(2), + uint32 INT(2) UNSIGNED, sint32 INT(2), + uint64 BIGINT(2) UNSIGNED, sint64 BIGINT(2) +); + +CREATE TABLE t2 AS SELECT + CONCAT(uint8),CONCAT(sint8), + CONCAT(uint16),CONCAT(sint16), + CONCAT(uint24),CONCAT(sint24), + CONCAT(uint32),CONCAT(sint32), + CONCAT(uint64),CONCAT(sint64) +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT + CONCAT(COALESCE(uint8)),CONCAT(COALESCE(sint8)), + CONCAT(COALESCE(uint16)),CONCAT(COALESCE(sint16)), + CONCAT(COALESCE(uint24)),CONCAT(COALESCE(sint24)), + CONCAT(COALESCE(uint32)),CONCAT(COALESCE(sint32)), + CONCAT(COALESCE(uint64)),CONCAT(COALESCE(sint64)) +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +DROP TABLE t1; + +CREATE FUNCTION uint8() RETURNS TINYINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint8() RETURNS TINYINT(2) RETURN 1; +CREATE FUNCTION uint16() RETURNS SMALLINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint16() RETURNS SMALLINT(2) RETURN 1; +CREATE FUNCTION uint24() RETURNS MEDIUMINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint24() RETURNS MEDIUMINT(2) RETURN 1; +CREATE FUNCTION uint32() RETURNS INT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint32() RETURNS INT(2) RETURN 1; +CREATE FUNCTION uint64() RETURNS BIGINT(2) UNSIGNED RETURN 1; +CREATE FUNCTION sint64() RETURNS BIGINT(2) RETURN 1; + +CREATE TABLE t1 AS SELECT + CONCAT(uint8()), CONCAT(sint8()), + CONCAT(uint16()),CONCAT(sint16()), + CONCAT(uint24()),CONCAT(sint24()), + CONCAT(uint32()),CONCAT(sint32()), + CONCAT(uint64()),CONCAT(sint64()); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT + CONCAT(COALESCE(uint8())),CONCAT(COALESCE(sint8())), + CONCAT(COALESCE(uint16())),CONCAT(COALESCE(sint16())), + CONCAT(COALESCE(uint24())),CONCAT(COALESCE(sint24())), + CONCAT(COALESCE(uint32())),CONCAT(COALESCE(sint32())), + CONCAT(COALESCE(uint64())),CONCAT(COALESCE(sint64())); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +DROP FUNCTION uint8; +DROP FUNCTION sint8; +DROP FUNCTION uint16; +DROP FUNCTION sint16; +DROP FUNCTION uint24; +DROP FUNCTION sint24; +DROP FUNCTION uint32; +DROP FUNCTION sint32; +DROP FUNCTION uint64; +DROP FUNCTION sint64; + +--echo # --echo # End of 10.3 tests --echo # |