diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-12-12 09:35:18 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-12-12 09:57:17 +0200 |
commit | 34841d2305b6bbe2c0b496add905b1dd478dafbe (patch) | |
tree | 85b31de5caf44a9024d73e41fbdbdadb29ff5526 /mysql-test/t | |
parent | 62eaf7b657fd25bb4457049c81fb929314d6eb1d (diff) | |
parent | a285e68018018ef3959f6381aa61347b73902997 (diff) | |
download | mariadb-git-34841d2305b6bbe2c0b496add905b1dd478dafbe.tar.gz |
Merge bb-10.2-ext into 10.3
Diffstat (limited to 'mysql-test/t')
-rw-r--r-- | mysql-test/t/ctype_latin1.test | 3 | ||||
-rw-r--r-- | mysql-test/t/ctype_like_range.test | 40 | ||||
-rw-r--r-- | mysql-test/t/ctype_ucs2_uca.test | 4 | ||||
-rw-r--r-- | mysql-test/t/ctype_utf16_uca.test | 5 | ||||
-rw-r--r-- | mysql-test/t/ctype_utf32_uca.test | 5 | ||||
-rw-r--r-- | mysql-test/t/ctype_utf8_uca.test | 3 | ||||
-rw-r--r-- | mysql-test/t/ctype_utf8mb4_uca.test | 5 | ||||
-rw-r--r-- | mysql-test/t/sp-row.test | 4 | ||||
-rw-r--r-- | mysql-test/t/sp.test | 79 | ||||
-rw-r--r-- | mysql-test/t/subselect.test | 12 |
10 files changed, 152 insertions, 8 deletions
diff --git a/mysql-test/t/ctype_latin1.test b/mysql-test/t/ctype_latin1.test index 8c51bfef2d8..31d4ff7f802 100644 --- a/mysql-test/t/ctype_latin1.test +++ b/mysql-test/t/ctype_latin1.test @@ -411,6 +411,9 @@ let $coll='latin1_nopad_bin'; let $coll_pad='latin1_bin'; --source include/ctype_pad_all_engines.inc +SET NAMES latin1; +--source include/ctype_like_range_mdev14350.inc + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/ctype_like_range.test b/mysql-test/t/ctype_like_range.test index e8784990d36..3055abe5f59 100644 --- a/mysql-test/t/ctype_like_range.test +++ b/mysql-test/t/ctype_like_range.test @@ -155,5 +155,45 @@ SELECT a, HEX(mn), HEX(mx) FROM t1; DROP TABLE t1; --echo # +--echo # MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results +--echo # + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET latin1 COLLATE latin1_swedish_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET ucs2 COLLATE ucs2_unicode_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf16 COLLATE utf16_unicode_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf32 COLLATE utf32_unicode_nopad_ci); +INSERT INTO t1 VALUES ('111%'); +SELECT a, HEX(LIKE_RANGE_MIN(a,200)) FROM t1; +DROP TABLE t1; + + +--echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/ctype_ucs2_uca.test b/mysql-test/t/ctype_ucs2_uca.test index bc6d6150ee6..0aed0956f6c 100644 --- a/mysql-test/t/ctype_ucs2_uca.test +++ b/mysql-test/t/ctype_ucs2_uca.test @@ -16,6 +16,10 @@ let $coll='ucs2_unicode_520_nopad_ci'; let $coll_pad='ucs2_unicode_520_ci'; --source include/ctype_pad_all_engines.inc +SET NAMES utf8, collation_connection=ucs2_unicode_520_nopad_ci; +--source include/ctype_like_range_mdev14350.inc +SET NAMES utf8; + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/ctype_utf16_uca.test b/mysql-test/t/ctype_utf16_uca.test index 95ce74076d0..46d572fbe81 100644 --- a/mysql-test/t/ctype_utf16_uca.test +++ b/mysql-test/t/ctype_utf16_uca.test @@ -238,6 +238,11 @@ let $coll='utf16_unicode_520_nopad_ci'; let $coll_pad='utf16_unicode_520_ci'; --source include/ctype_pad_all_engines.inc +SET NAMES utf8, collation_connection=utf16_unicode_520_nopad_ci; +--source include/ctype_like_range_mdev14350.inc +SET NAMES utf8; + + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/ctype_utf32_uca.test b/mysql-test/t/ctype_utf32_uca.test index e5eb3b6d881..334d8fd1d48 100644 --- a/mysql-test/t/ctype_utf32_uca.test +++ b/mysql-test/t/ctype_utf32_uca.test @@ -260,6 +260,11 @@ let $coll='utf32_unicode_520_nopad_ci'; let $coll_pad='utf32_unicode_520_ci'; --source include/ctype_pad_all_engines.inc +SET NAMES utf8, collation_connection=utf32_unicode_520_nopad_ci; +--source include/ctype_like_range_mdev14350.inc +SET NAMES utf8; + + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/ctype_utf8_uca.test b/mysql-test/t/ctype_utf8_uca.test index 670998a367b..0879b4d2810 100644 --- a/mysql-test/t/ctype_utf8_uca.test +++ b/mysql-test/t/ctype_utf8_uca.test @@ -14,6 +14,9 @@ let $coll='utf8_unicode_520_nopad_ci'; let $coll_pad='utf8_unicode_520_ci'; --source include/ctype_pad_all_engines.inc +SET NAMES utf8 COLLATE utf8_unicode_nopad_ci; +--source include/ctype_like_range_mdev14350.inc + --echo # --echo # End of 10.2 tests diff --git a/mysql-test/t/ctype_utf8mb4_uca.test b/mysql-test/t/ctype_utf8mb4_uca.test index fe76ed45e3f..160cb48bad6 100644 --- a/mysql-test/t/ctype_utf8mb4_uca.test +++ b/mysql-test/t/ctype_utf8mb4_uca.test @@ -100,6 +100,11 @@ let $coll='utf8mb4_unicode_520_nopad_ci'; let $coll_pad='utf8mb4_unicode_520_ci'; --source include/ctype_pad_all_engines.inc +SET NAMES utf8mb4 COLLATE utf8mb4_unicode_520_nopad_ci; +--source include/ctype_like_range_mdev14350.inc +SET NAMES utf8mb4; + + --echo # --echo # End of 10.2 tests --echo # diff --git a/mysql-test/t/sp-row.test b/mysql-test/t/sp-row.test index 5928c8cb76d..837e24c89c0 100644 --- a/mysql-test/t/sp-row.test +++ b/mysql-test/t/sp-row.test @@ -274,7 +274,7 @@ BEGIN END; $$ DELIMITER ;$$ ---error ER_OPERAND_COLUMNS +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION CALL p1(); DROP PROCEDURE p1; @@ -287,7 +287,7 @@ BEGIN END; $$ DELIMITER ;$$ ---error ER_OPERAND_COLUMNS +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION CALL p1(); DROP PROCEDURE p1; diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 576512e78a4..733e38351c3 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -9774,6 +9774,85 @@ DELIMITER ;$$ CALL p1(); DROP PROCEDURE p1; +--echo # +--echo # MDEV-14228 MariaDB crashes with function +--echo # + +CREATE TABLE t1 (c VARCHAR(16), KEY(c)); +INSERT INTO t1 VALUES ('foo'); + +DELIMITER $$; +CREATE FUNCTION f1() RETURNS VARCHAR(16) +BEGIN + DECLARE v VARCHAR(16); + FOR v IN (SELECT DISTINCT c FROM t1) + DO + IF (v = 'bar') THEN + SELECT 1 INTO @a; + END IF; + END FOR; + RETURN 'qux'; +END $$ +DELIMITER ;$$ +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT f1(); +DROP FUNCTION f1; + +DELIMITER $$; +CREATE FUNCTION f1() RETURNS VARCHAR(16) +BEGIN + DECLARE v ROW TYPE OF t1; + IF v = 'bar' THEN + RETURN 'eq'; + END IF; + RETURN 'ne'; +END $$ +DELIMITER ;$$ +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT f1(); +DROP FUNCTION f1; + +DELIMITER $$; +CREATE FUNCTION f1() RETURNS VARCHAR(16) +BEGIN + DECLARE v ROW(a INT); + IF v = 'bar' THEN + RETURN 'eq'; + END IF; + RETURN 'ne'; +END $$ +DELIMITER ;$$ +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +SELECT f1(); +DROP FUNCTION f1; + +DROP TABLE t1; + + +DELIMITER $$; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +BEGIN NOT ATOMIC + DECLARE v ROW(a INT); + SELECT v IN ('a','b'); +END $$ +DELIMITER ;$$ + +DELIMITER $$; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +BEGIN NOT ATOMIC +DECLARE v ROW(a INT); + SELECT 'a' IN (v,'b'); +END $$ +DELIMITER ;$$ + +DELIMITER $$; +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +BEGIN NOT ATOMIC + DECLARE v ROW(a INT); + SELECT 'a' IN ('b',v); +END $$ +DELIMITER ;$$ + --echo # Test affected rows from an sp create table t1 (a int); diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 5e1e1494fee..ce0b949fcac 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -188,10 +188,10 @@ INSERT INTO t8 (pseudo,email) VALUES ('joce','test'); INSERT INTO t8 (pseudo,email) VALUES ('joce1','test1'); INSERT INTO t8 (pseudo,email) VALUES ('2joce1','2test1'); EXPLAIN EXTENDED SELECT pseudo,(SELECT email FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce')) FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'); --- error ER_OPERAND_COLUMNS +-- error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo,email FROM t8 WHERE pseudo='joce'); --- error ER_OPERAND_COLUMNS +-- error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION SELECT pseudo FROM t8 WHERE pseudo=(SELECT * FROM t8 WHERE pseudo='joce'); SELECT pseudo FROM t8 WHERE pseudo=(SELECT pseudo FROM t8 WHERE pseudo='joce'); @@ -1834,13 +1834,13 @@ drop table t1, t2; # create table t1 (a int, b int); insert into t1 values (1,2); --- error ER_OPERAND_COLUMNS +-- error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION select 1 = (select * from t1); --- error ER_OPERAND_COLUMNS +-- error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION select (select * from t1) = 1; --- error ER_OPERAND_COLUMNS +-- error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION select (1,2) = (select a from t1); --- error ER_OPERAND_COLUMNS +-- error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION select (select a from t1) = (1,2); -- error ER_OPERAND_COLUMNS select (1,2,3) = (select * from t1); |