mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
2fdb556e04
This patch changes the main name of 3 byte character set from utf8 to utf8mb3. New old_mode UTF8_IS_UTF8MB3 is added and set TRUE by default, so that utf8 would mean utf8mb3. If not set, utf8 would mean utf8mb4.
151 lines
5.6 KiB
Text
151 lines
5.6 KiB
Text
drop function if exists bug17615|
|
||
create table t3 (a varchar(256) unicode)|
|
||
create function bug17615() returns varchar(256) unicode
|
||
begin
|
||
declare tmp_res varchar(256) unicode;
|
||
set tmp_res= 'foo string';
|
||
return tmp_res;
|
||
end|
|
||
insert into t3 values(bug17615())|
|
||
select * from t3|
|
||
a
|
||
foo string
|
||
drop function bug17615|
|
||
drop table t3|
|
||
CREATE FUNCTION f(f1 VARCHAR(64) CHARACTER SET ucs2 COLLATE ucs2_unicode_ci)
|
||
RETURNS VARCHAR(64) CHARACTER SET ucs2 COLLATE ucs2_danish_ci
|
||
BEGIN
|
||
DECLARE f2 VARCHAR(64) CHARACTER SET ucs2 COLLATE ucs2_swedish_ci;
|
||
DECLARE f3 VARCHAR(64) CHARACTER SET ucs2 COLLATE ucs2_bin;
|
||
SET f1= concat(collation(f1), ' ', collation(f2), ' ', collation(f3));
|
||
RETURN f1;
|
||
END|
|
||
SELECT f('a')|
|
||
f('a')
|
||
ucs2_unicode_ci ucs2_swedish_ci ucs2_bin
|
||
SELECT collation(f('a'))|
|
||
collation(f('a'))
|
||
ucs2_danish_ci
|
||
DROP FUNCTION f|
|
||
CREATE FUNCTION f()
|
||
RETURNS VARCHAR(64) UNICODE BINARY
|
||
BEGIN
|
||
RETURN '';
|
||
END|
|
||
SHOW CREATE FUNCTION f|
|
||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||
f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET ucs2 COLLATE ucs2_bin
|
||
BEGIN
|
||
RETURN '';
|
||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||
DROP FUNCTION f|
|
||
CREATE FUNCTION f()
|
||
RETURNS VARCHAR(64) BINARY UNICODE
|
||
BEGIN
|
||
RETURN '';
|
||
END|
|
||
SHOW CREATE FUNCTION f|
|
||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||
f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET ucs2 COLLATE ucs2_bin
|
||
BEGIN
|
||
RETURN '';
|
||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||
DROP FUNCTION f|
|
||
CREATE FUNCTION f()
|
||
RETURNS VARCHAR(64) ASCII BINARY
|
||
BEGIN
|
||
RETURN '';
|
||
END|
|
||
SHOW CREATE FUNCTION f|
|
||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||
f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET latin1 COLLATE latin1_bin
|
||
BEGIN
|
||
RETURN '';
|
||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||
DROP FUNCTION f|
|
||
CREATE FUNCTION f()
|
||
RETURNS VARCHAR(64) BINARY ASCII
|
||
BEGIN
|
||
RETURN '';
|
||
END|
|
||
SHOW CREATE FUNCTION f|
|
||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||
f STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `f`() RETURNS varchar(64) CHARSET latin1 COLLATE latin1_bin
|
||
BEGIN
|
||
RETURN '';
|
||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||
DROP FUNCTION f|
|
||
CREATE PROCEDURE p1(IN f1 VARCHAR(64) CHARACTER SET ucs2 COLLATE ucs2_czech_ci,
|
||
OUT f2 VARCHAR(64) CHARACTER SET ucs2 COLLATE ucs2_polish_ci)
|
||
BEGIN
|
||
SET f2= f1;
|
||
SET f2= concat(collation(f1), ' ', collation(f2));
|
||
END|
|
||
CREATE FUNCTION f1()
|
||
RETURNS VARCHAR(64) CHARACTER SET ucs2
|
||
BEGIN
|
||
DECLARE f1 VARCHAR(64) CHARACTER SET ucs2;
|
||
DECLARE f2 VARCHAR(64) CHARACTER SET ucs2;
|
||
SET f1='str';
|
||
CALL p1(f1, f2);
|
||
RETURN f2;
|
||
END|
|
||
SELECT f1()|
|
||
f1()
|
||
ucs2_czech_ci ucs2_polish_ci
|
||
DROP PROCEDURE p1|
|
||
DROP FUNCTION f1|
|
||
CREATE FUNCTION f(f1 VARCHAR(64) COLLATE ucs2_unicode_ci)
|
||
RETURNS VARCHAR(64) CHARACTER SET ucs2
|
||
BEGIN
|
||
RETURN 'str';
|
||
END|
|
||
DROP FUNCTION f|
|
||
CREATE FUNCTION f(f1 VARCHAR(64) CHARACTER SET ucs2)
|
||
RETURNS VARCHAR(64) COLLATE ucs2_unicode_ci
|
||
BEGIN
|
||
RETURN 'str';
|
||
END|
|
||
DROP FUNCTION f|
|
||
CREATE FUNCTION f(f1 VARCHAR(64) CHARACTER SET ucs2)
|
||
RETURNS VARCHAR(64) CHARACTER SET ucs2
|
||
BEGIN
|
||
DECLARE f2 VARCHAR(64) COLLATE ucs2_unicode_ci;
|
||
RETURN 'str';
|
||
END|
|
||
DROP FUNCTION f|
|
||
SET NAMES utf8;
|
||
CREATE FUNCTION bug48766 ()
|
||
RETURNS ENUM( 'w' ) CHARACTER SET ucs2
|
||
RETURN 0;
|
||
SHOW CREATE FUNCTION bug48766;
|
||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||
bug48766 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('w') CHARSET ucs2
|
||
RETURN 0 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
|
||
SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES
|
||
WHERE ROUTINE_NAME='bug48766';
|
||
DTD_IDENTIFIER
|
||
enum('w')
|
||
DROP FUNCTION bug48766;
|
||
CREATE FUNCTION bug48766 ()
|
||
RETURNS ENUM('а','б','в','г') CHARACTER SET ucs2
|
||
RETURN 0;
|
||
SHOW CREATE FUNCTION bug48766;
|
||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||
bug48766 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `bug48766`() RETURNS enum('а','б','в','г') CHARSET ucs2
|
||
RETURN 0 utf8mb3 utf8mb3_general_ci latin1_swedish_ci
|
||
SELECT DTD_IDENTIFIER FROM INFORMATION_SCHEMA.ROUTINES
|
||
WHERE ROUTINE_NAME='bug48766';
|
||
DTD_IDENTIFIER
|
||
enum('а','б','в','г')
|
||
DROP FUNCTION bug48766;
|
||
call mtr.add_suppression('invalid value in column mysql.proc.');
|
||
set collation_connection=ucs2_general_ci;
|
||
insert into mysql.proc (db, name, type, specific_name, language, sql_data_access, is_deterministic, security_type, param_list, returns, body, definer, created, modified, sql_mode, comment, character_set_client, collation_connection, db_collation, body_utf8 ) values ( 'a', 'a', 'function', 'bug14233_1', 'sql', 'reads_sql_data', 'no', 'definer', '', 'int(10)', 'select * from mysql.user', 'root@localhost', now(), '0000-00-00 00:00:00', '', '', '', '', '', 'select * from mysql.user' );
|
||
select routine_name from information_schema.routines where routine_name='a';
|
||
routine_name
|
||
a
|
||
Warnings:
|
||
Warning 1601 Creation context of stored routine `a`.`a` is invalid
|
||
set collation_connection=default;
|
||
delete from mysql.proc where name='a';
|