diff options
Diffstat (limited to 'mysql-test/main/func_hybrid_type.test')
-rw-r--r-- | mysql-test/main/func_hybrid_type.test | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/mysql-test/main/func_hybrid_type.test b/mysql-test/main/func_hybrid_type.test index 31a096c3305..cf41d92b01f 100644 --- a/mysql-test/main/func_hybrid_type.test +++ b/mysql-test/main/func_hybrid_type.test @@ -825,3 +825,256 @@ SELECT 0 + LEAST(TIME'-10:00:00',TIME'10:00:00') AS c; --echo # --echo # End of 10.4 tests --echo # + + +--echo # +--echo # Start of 10.5 tests +--echo # + +--echo # +--echo # MDEV-20332 Wrong UNSIGNED metadata flag returned for COALESCE(unsigned_field,timestamp_field) +--echo # + +CREATE TABLE t1 (a INT UNSIGNED, b TIMESTAMP); +--disable_ps_protocol +--enable_metadata +SELECT COALESCE(a,b) FROM t1; +--disable_metadata +--enable_ps_protocol +DROP TABLE t1; + +--echo # +--echo # MDEV-20353 Add separate type handlers for unsigned integer data types +--echo # + +--echo # Constant + +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT 1=ROW(1,1); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT -1=ROW(1,1); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT 9223372036854775807=ROW(1,1); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT 9223372036854775808=ROW(1,1); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT 18446744073709551615=ROW(1,1); + + +--echo # COALESCE + +CREATE TABLE t1 (a TINYINT UNSIGNED, b TINYINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a,a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(b,b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a SMALLINT UNSIGNED, b SMALLINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a,a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(b,b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a MEDIUMINT UNSIGNED, b MEDIUMINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a,a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(b,b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a INT UNSIGNED, b INT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a,a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(b,b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a BIGINT UNSIGNED, b BIGINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a,a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(b,b)=ROW(1,1) FROM t1; +DROP TABLE t1; + + +--echo # COALESCE for different types integer types, with the UNSIGNED flag + +CREATE TABLE t1 (a1 TINYINT UNSIGNED, a2 SMALLINT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 SMALLINT UNSIGNED, a2 MEDIUMINT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 MEDIUMINT UNSIGNED, a2 INT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 INT UNSIGNED, a2 BIGINT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + + +--echo # COALESCE for different types integer types, without the UNSIGNED flag + +CREATE TABLE t1 (a1 TINYINT, a2 SMALLINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 SMALLINT, a2 MEDIUMINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 MEDIUMINT, a2 INT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 INT, a2 BIGINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT COALESCE(a1,a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + + +--echo # Operator + + +CREATE TABLE t1 (a TINYINT UNSIGNED, b TINYINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a+a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (b+b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a SMALLINT UNSIGNED, b SMALLINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a+a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (b+b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a MEDIUMINT UNSIGNED, b MEDIUMINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a+a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (b+b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a INT UNSIGNED, b INT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a+a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (b+b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a BIGINT UNSIGNED, b BIGINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a+a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (b+b)=ROW(1,1) FROM t1; +DROP TABLE t1; + + +--echo # Opetator + for different types integer types, with the UNSIGNED flag + +CREATE TABLE t1 (a1 TINYINT UNSIGNED, a2 SMALLINT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 SMALLINT UNSIGNED, a2 MEDIUMINT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 MEDIUMINT UNSIGNED, a2 INT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 INT UNSIGNED, a2 BIGINT UNSIGNED); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + + +--echo # Operator + for different types integer types, without the UNSIGNED flag + +CREATE TABLE t1 (a1 TINYINT, a2 SMALLINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 SMALLINT, a2 MEDIUMINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 MEDIUMINT, a2 INT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a1 INT, a2 BIGINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT (a1+a2)=ROW(1,1) FROM t1; +DROP TABLE t1; + +--echo # SUM + +CREATE TABLE t1 (a TINYINT UNSIGNED, b TINYINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a SMALLINT UNSIGNED, b SMALLINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a MEDIUMINT UNSIGNED, b MEDIUMINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a INT UNSIGNED, b INT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a BIGINT UNSIGNED, b BIGINT); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(a)=ROW(1,1) FROM t1; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT MAX(b)=ROW(1,1) FROM t1; +DROP TABLE t1; + +--echo # HEX hybrid + +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT 0x20+ROW(1,1); + +--echo # System variables + +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT @@max_allowed_packet=ROW(1,1); + +--echo # +--echo # End of 10.5 tests +--echo # |