mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-25829 Change default Unicode collation to uca1400_ai_ci
Step#2 - Adding a new collation derivation level for CAST and CONVERT. Now character string cast functions: - CAST(string_expr AS CHAR) - CONVERT(expr USING charset_name) have a new collation derivation level between: - string literals - utf8 metadata functions, e.g. user() and database() Before the change these cast functions had collation derivation equal to table columns, which caused more illegal mix of collation conflicts. Note, binary string cast functions: - BINARY(expr) - CAST(string_expr AS BINARY) - CONVERT(expr USING binary) did not change their collation derivation, to preserve the behaviour of queries like these: SELECT database()=BINARY'test'; SELECT user()=CAST('root' AS BINARY); SELECT current_role()=CONVERT('role' USING binary); Derivation levels after the change look as follows: DERIVATION_IGNORABLE= 7, // Explicit NULL DERIVATION_NUMERIC= 6, // Numbers in string context, // Numeric user variables // CAST(numeric_expr AS CHAR) DERIVATION_COERCIBLE= 5, // Literals, string user variables DERIVATION_CAST= 4, // CAST(string_expr AS CHAR), // CONVERT(string_expr USING cs) DERIVATION_SYSCONST= 3, // utf8 metadata functions, e.g. user(), database() DERIVATION_IMPLICIT= 2, // Table columns, SP variables, BINARY(expr) DERIVATION_NONE= 1, // A mix (e.g. CONCAT) of two differrent collations DERIVATION_EXPLICIT= 0 // An explicit COLLATE clause
This commit is contained in:
@ -423,7 +423,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select hex(concat(coercibility('a')));
|
select hex(concat(coercibility('a')));
|
||||||
hex(concat(coercibility('a')))
|
hex(concat(coercibility('a')))
|
||||||
34
|
35
|
||||||
create table t1 as select concat(coercibility('a')) as c1;
|
create table t1 as select concat(coercibility('a')) as c1;
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -811,7 +811,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
||||||
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
||||||
5 2
|
6 4
|
||||||
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
||||||
charset(concat(uuid(), cast('a' as char character set latin1)))
|
charset(concat(uuid(), cast('a' as char character set latin1)))
|
||||||
latin1
|
latin1
|
||||||
|
@ -514,7 +514,7 @@ Variable_name Value
|
|||||||
character_set_client latin1
|
character_set_client latin1
|
||||||
SELECT charset('a'),collation('a'),coercibility('a'),'a'='A';
|
SELECT charset('a'),collation('a'),coercibility('a'),'a'='A';
|
||||||
charset('a') collation('a') coercibility('a') 'a'='A'
|
charset('a') collation('a') coercibility('a') 'a'='A'
|
||||||
latin1 latin1_swedish_ci 4 1
|
latin1 latin1_swedish_ci 5 1
|
||||||
explain extended SELECT charset('a'),collation('a'),coercibility('a'),'a'='A';
|
explain extended SELECT charset('a'),collation('a'),coercibility('a'),'a'='A';
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
@ -525,7 +525,7 @@ SHOW VARIABLES LIKE 'collation_client';
|
|||||||
Variable_name Value
|
Variable_name Value
|
||||||
SELECT charset('a'),collation('a'),coercibility('a'),'a'='A';
|
SELECT charset('a'),collation('a'),coercibility('a'),'a'='A';
|
||||||
charset('a') collation('a') coercibility('a') 'a'='A'
|
charset('a') collation('a') coercibility('a') 'a'='A'
|
||||||
latin1 latin1_swedish_ci 4 1
|
latin1 latin1_swedish_ci 5 1
|
||||||
SET CHARACTER SET 'DEFAULT';
|
SET CHARACTER SET 'DEFAULT';
|
||||||
ERROR 42000: Unknown character set: 'DEFAULT'
|
ERROR 42000: Unknown character set: 'DEFAULT'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
@ -683,7 +683,7 @@ RETURN "Testtext";
|
|||||||
END;//
|
END;//
|
||||||
SELECT getText(), CHARSET(getText()), COLLATION(getText()), COERCIBILITY(getText());
|
SELECT getText(), CHARSET(getText()), COLLATION(getText()), COERCIBILITY(getText());
|
||||||
getText() CHARSET(getText()) COLLATION(getText()) COERCIBILITY(getText())
|
getText() CHARSET(getText()) COLLATION(getText()) COERCIBILITY(getText())
|
||||||
Testtext latin1 latin1_swedish_ci 4
|
Testtext latin1 latin1_swedish_ci 5
|
||||||
CREATE TABLE t1 AS SELECT ' - ' AS a UNION SELECT getText();
|
CREATE TABLE t1 AS SELECT ' - ' AS a UNION SELECT getText();
|
||||||
ERROR HY000: Illegal mix of collations for operation 'UNION'
|
ERROR HY000: Illegal mix of collations for operation 'UNION'
|
||||||
DROP FUNCTION getText;
|
DROP FUNCTION getText;
|
||||||
@ -696,7 +696,7 @@ RETURN "Testtext";
|
|||||||
END;//
|
END;//
|
||||||
SELECT getText(), CHARSET(getText()), COLLATION(getText()), COERCIBILITY(getText());
|
SELECT getText(), CHARSET(getText()), COLLATION(getText()), COERCIBILITY(getText());
|
||||||
getText() CHARSET(getText()) COLLATION(getText()) COERCIBILITY(getText())
|
getText() CHARSET(getText()) COLLATION(getText()) COERCIBILITY(getText())
|
||||||
Testtext latin1 latin1_german2_ci 4
|
Testtext latin1 latin1_german2_ci 5
|
||||||
CREATE TABLE t1 AS SELECT ' - ' AS a UNION SELECT getText();
|
CREATE TABLE t1 AS SELECT ' - ' AS a UNION SELECT getText();
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -714,7 +714,7 @@ RETURN "Testtext";
|
|||||||
END;//
|
END;//
|
||||||
SELECT getText(), CHARSET(getText()), COLLATION(getText()), COERCIBILITY(getText());
|
SELECT getText(), CHARSET(getText()), COLLATION(getText()), COERCIBILITY(getText());
|
||||||
getText() CHARSET(getText()) COLLATION(getText()) COERCIBILITY(getText())
|
getText() CHARSET(getText()) COLLATION(getText()) COERCIBILITY(getText())
|
||||||
Testtext latin1 latin1_german2_ci 4
|
Testtext latin1 latin1_german2_ci 5
|
||||||
CREATE TABLE t1 AS SELECT ' - ' AS a UNION SELECT getText();
|
CREATE TABLE t1 AS SELECT ' - ' AS a UNION SELECT getText();
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
|
@ -835,7 +835,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select hex(concat(coercibility('a')));
|
select hex(concat(coercibility('a')));
|
||||||
hex(concat(coercibility('a')))
|
hex(concat(coercibility('a')))
|
||||||
34
|
35
|
||||||
create table t1 as select concat(coercibility('a')) as c1;
|
create table t1 as select concat(coercibility('a')) as c1;
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -1223,7 +1223,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
||||||
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
||||||
5 2
|
6 4
|
||||||
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
||||||
charset(concat(uuid(), cast('a' as char character set latin1)))
|
charset(concat(uuid(), cast('a' as char character set latin1)))
|
||||||
latin1
|
latin1
|
||||||
|
@ -1144,7 +1144,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select hex(concat(coercibility('a')));
|
select hex(concat(coercibility('a')));
|
||||||
hex(concat(coercibility('a')))
|
hex(concat(coercibility('a')))
|
||||||
34
|
35
|
||||||
create table t1 as select concat(coercibility('a')) as c1;
|
create table t1 as select concat(coercibility('a')) as c1;
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -1532,7 +1532,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
||||||
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
||||||
5 2
|
6 4
|
||||||
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
||||||
charset(concat(uuid(), cast('a' as char character set latin1)))
|
charset(concat(uuid(), cast('a' as char character set latin1)))
|
||||||
latin1
|
latin1
|
||||||
|
@ -585,31 +585,31 @@ CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
|||||||
latin2
|
latin2
|
||||||
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
4
|
5
|
||||||
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
binary
|
binary
|
||||||
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
5
|
6
|
||||||
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
latin2
|
latin2
|
||||||
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
latin2
|
latin2
|
||||||
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
latin2
|
latin2
|
||||||
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
323030312D30312D30312030303A30303A3030
|
323030312D30312D30312030303A30303A3030
|
||||||
@ -618,7 +618,7 @@ CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
|||||||
latin2
|
latin2
|
||||||
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
323030312D30312D30312030303A30303A3030
|
323030312D30312D30312030303A30303A3030
|
||||||
|
@ -2024,7 +2024,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select hex(concat(coercibility('a')));
|
select hex(concat(coercibility('a')));
|
||||||
hex(concat(coercibility('a')))
|
hex(concat(coercibility('a')))
|
||||||
0034
|
0035
|
||||||
create table t1 as select concat(coercibility('a')) as c1;
|
create table t1 as select concat(coercibility('a')) as c1;
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -2412,7 +2412,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
||||||
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
||||||
5 2
|
6 4
|
||||||
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
||||||
charset(concat(uuid(), cast('a' as char character set latin1)))
|
charset(concat(uuid(), cast('a' as char character set latin1)))
|
||||||
latin1
|
latin1
|
||||||
@ -5191,31 +5191,31 @@ CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
|||||||
ucs2
|
ucs2
|
||||||
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
4
|
5
|
||||||
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
binary
|
binary
|
||||||
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
5
|
6
|
||||||
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
ucs2
|
ucs2
|
||||||
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
ucs2
|
ucs2
|
||||||
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
ucs2
|
ucs2
|
||||||
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
@ -5224,7 +5224,7 @@ CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
|||||||
ucs2
|
ucs2
|
||||||
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
@ -1392,31 +1392,31 @@ CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
|||||||
utf16
|
utf16
|
||||||
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
4
|
5
|
||||||
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
binary
|
binary
|
||||||
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
5
|
6
|
||||||
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
utf16
|
utf16
|
||||||
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
utf16
|
utf16
|
||||||
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
utf16
|
utf16
|
||||||
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
@ -1425,7 +1425,7 @@ CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
|||||||
utf16
|
utf16
|
||||||
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
0032003000300031002D00300031002D00300031002000300030003A00300030003A00300030
|
||||||
|
@ -1663,31 +1663,31 @@ CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
|||||||
utf16le
|
utf16le
|
||||||
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
4
|
5
|
||||||
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
binary
|
binary
|
||||||
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
5
|
6
|
||||||
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
utf16le
|
utf16le
|
||||||
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
utf16le
|
utf16le
|
||||||
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
utf16le
|
utf16le
|
||||||
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
||||||
@ -1696,7 +1696,7 @@ CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
|||||||
utf16le
|
utf16le
|
||||||
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
32003000300031002D00300031002D00300031002000300030003A00300030003A0030003000
|
||||||
|
@ -1339,31 +1339,31 @@ CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
|||||||
utf32
|
utf32
|
||||||
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
4
|
5
|
||||||
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
binary
|
binary
|
||||||
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY);
|
||||||
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)
|
||||||
5
|
6
|
||||||
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
utf32
|
utf32
|
||||||
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
utf32
|
utf32
|
||||||
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
utf32
|
utf32
|
||||||
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
||||||
@ -1372,7 +1372,7 @@ CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
|||||||
utf32
|
utf32
|
||||||
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
4
|
5
|
||||||
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY));
|
||||||
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY))
|
||||||
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
000000320000003000000030000000310000002D00000030000000310000002D00000030000000310000002000000030000000300000003A00000030000000300000003A0000003000000030
|
||||||
|
@ -2016,7 +2016,7 @@ insert into t1 values('t1_val');
|
|||||||
create view v1 as select 'v1_val' as col1;
|
create view v1 as select 'v1_val' as col1;
|
||||||
select coercibility(col1), collation(col1) from v1;
|
select coercibility(col1), collation(col1) from v1;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
4 utf8mb3_general_ci
|
5 utf8mb3_general_ci
|
||||||
create view v2 as select col1 from v1 union select col1 from t1;
|
create view v2 as select col1 from v1 union select col1 from t1;
|
||||||
select coercibility(col1), collation(col1)from v2;
|
select coercibility(col1), collation(col1)from v2;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
@ -2896,7 +2896,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select hex(concat(coercibility('a')));
|
select hex(concat(coercibility('a')));
|
||||||
hex(concat(coercibility('a')))
|
hex(concat(coercibility('a')))
|
||||||
34
|
35
|
||||||
create table t1 as select concat(coercibility('a')) as c1;
|
create table t1 as select concat(coercibility('a')) as c1;
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -3284,7 +3284,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
select coercibility(uuid()), coercibility(cast('a' as char character set latin1));
|
||||||
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
coercibility(uuid()) coercibility(cast('a' as char character set latin1))
|
||||||
5 2
|
6 4
|
||||||
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
select charset(concat(uuid(), cast('a' as char character set latin1)));
|
||||||
charset(concat(uuid(), cast('a' as char character set latin1)))
|
charset(concat(uuid(), cast('a' as char character set latin1)))
|
||||||
latin1
|
latin1
|
||||||
|
@ -2042,7 +2042,7 @@ insert into t1 values('t1_val');
|
|||||||
create view v1 as select 'v1_val' as col1;
|
create view v1 as select 'v1_val' as col1;
|
||||||
select coercibility(col1), collation(col1) from v1;
|
select coercibility(col1), collation(col1) from v1;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
4 utf8mb4_general_ci
|
5 utf8mb4_general_ci
|
||||||
create view v2 as select col1 from v1 union select col1 from t1;
|
create view v2 as select col1 from v1 union select col1 from t1;
|
||||||
select coercibility(col1), collation(col1)from v2;
|
select coercibility(col1), collation(col1)from v2;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
|
@ -1874,7 +1874,7 @@ insert into t1 values('t1_val');
|
|||||||
create view v1 as select 'v1_val' as col1;
|
create view v1 as select 'v1_val' as col1;
|
||||||
select coercibility(col1), collation(col1) from v1;
|
select coercibility(col1), collation(col1) from v1;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
4 utf8mb4_general_ci
|
5 utf8mb4_general_ci
|
||||||
create view v2 as select col1 from v1 union select col1 from t1;
|
create view v2 as select col1 from v1 union select col1 from t1;
|
||||||
select coercibility(col1), collation(col1)from v2;
|
select coercibility(col1), collation(col1)from v2;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
|
@ -2000,7 +2000,7 @@ insert into t1 values('t1_val');
|
|||||||
create view v1 as select 'v1_val' as col1;
|
create view v1 as select 'v1_val' as col1;
|
||||||
select coercibility(col1), collation(col1) from v1;
|
select coercibility(col1), collation(col1) from v1;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
4 utf8mb4_general_ci
|
5 utf8mb4_general_ci
|
||||||
create view v2 as select col1 from v1 union select col1 from t1;
|
create view v2 as select col1 from v1 union select col1 from t1;
|
||||||
select coercibility(col1), collation(col1)from v2;
|
select coercibility(col1), collation(col1)from v2;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
|
@ -2007,7 +2007,7 @@ insert into t1 values('t1_val');
|
|||||||
create view v1 as select 'v1_val' as col1;
|
create view v1 as select 'v1_val' as col1;
|
||||||
select coercibility(col1), collation(col1) from v1;
|
select coercibility(col1), collation(col1) from v1;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
4 utf8mb4_general_ci
|
5 utf8mb4_general_ci
|
||||||
create view v2 as select col1 from v1 union select col1 from t1;
|
create view v2 as select col1 from v1 union select col1 from t1;
|
||||||
select coercibility(col1), collation(col1)from v2;
|
select coercibility(col1), collation(col1)from v2;
|
||||||
coercibility(col1) collation(col1)
|
coercibility(col1) collation(col1)
|
||||||
|
@ -2969,7 +2969,7 @@ t1 CREATE TABLE `t1` (
|
|||||||
INSERT INTO t1 (a) VALUES ('test');
|
INSERT INTO t1 (a) VALUES ('test');
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a b c
|
a b c
|
||||||
test 2 5
|
test 2 6
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# String result metadata functions
|
# String result metadata functions
|
||||||
|
@ -1477,10 +1477,10 @@ COERCIBILITY(NAME_CONST('name','test'))
|
|||||||
2
|
2
|
||||||
SELECT COERCIBILITY(NAME_CONST('name',TIME'00:00:00'));
|
SELECT COERCIBILITY(NAME_CONST('name',TIME'00:00:00'));
|
||||||
COERCIBILITY(NAME_CONST('name',TIME'00:00:00'))
|
COERCIBILITY(NAME_CONST('name',TIME'00:00:00'))
|
||||||
5
|
6
|
||||||
SELECT COERCIBILITY(NAME_CONST('name',15));
|
SELECT COERCIBILITY(NAME_CONST('name',15));
|
||||||
COERCIBILITY(NAME_CONST('name',15))
|
COERCIBILITY(NAME_CONST('name',15))
|
||||||
5
|
6
|
||||||
SELECT CONCAT(NAME_CONST('name',15),'오');
|
SELECT CONCAT(NAME_CONST('name',15),'오');
|
||||||
CONCAT(NAME_CONST('name',15),'오')
|
CONCAT(NAME_CONST('name',15),'오')
|
||||||
15오
|
15오
|
||||||
|
@ -608,103 +608,103 @@ select _latin1'B' COLLATE latin1_general_ci in (_latin1'a',_latin1'b' COLLATE la
|
|||||||
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_bin,EXPLICIT) for operation 'in'
|
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_bin,EXPLICIT) for operation 'in'
|
||||||
select collation(bin(130)), coercibility(bin(130));
|
select collation(bin(130)), coercibility(bin(130));
|
||||||
collation(bin(130)) coercibility(bin(130))
|
collation(bin(130)) coercibility(bin(130))
|
||||||
latin1_swedish_ci 4
|
latin1_swedish_ci 5
|
||||||
select collation(oct(130)), coercibility(oct(130));
|
select collation(oct(130)), coercibility(oct(130));
|
||||||
collation(oct(130)) coercibility(oct(130))
|
collation(oct(130)) coercibility(oct(130))
|
||||||
latin1_swedish_ci 4
|
latin1_swedish_ci 5
|
||||||
select collation(conv(130,16,10)), coercibility(conv(130,16,10));
|
select collation(conv(130,16,10)), coercibility(conv(130,16,10));
|
||||||
collation(conv(130,16,10)) coercibility(conv(130,16,10))
|
collation(conv(130,16,10)) coercibility(conv(130,16,10))
|
||||||
latin1_swedish_ci 4
|
latin1_swedish_ci 5
|
||||||
select collation(hex(130)), coercibility(hex(130));
|
select collation(hex(130)), coercibility(hex(130));
|
||||||
collation(hex(130)) coercibility(hex(130))
|
collation(hex(130)) coercibility(hex(130))
|
||||||
latin1_swedish_ci 4
|
latin1_swedish_ci 5
|
||||||
select collation(char(130)), coercibility(hex(130));
|
select collation(char(130)), coercibility(hex(130));
|
||||||
collation(char(130)) coercibility(hex(130))
|
collation(char(130)) coercibility(hex(130))
|
||||||
binary 4
|
binary 5
|
||||||
select collation(format(130,10)), coercibility(format(130,10));
|
select collation(format(130,10)), coercibility(format(130,10));
|
||||||
collation(format(130,10)) coercibility(format(130,10))
|
collation(format(130,10)) coercibility(format(130,10))
|
||||||
latin1_swedish_ci 4
|
latin1_swedish_ci 5
|
||||||
select collation(lcase(_latin2'a')), coercibility(lcase(_latin2'a'));
|
select collation(lcase(_latin2'a')), coercibility(lcase(_latin2'a'));
|
||||||
collation(lcase(_latin2'a')) coercibility(lcase(_latin2'a'))
|
collation(lcase(_latin2'a')) coercibility(lcase(_latin2'a'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(ucase(_latin2'a')), coercibility(ucase(_latin2'a'));
|
select collation(ucase(_latin2'a')), coercibility(ucase(_latin2'a'));
|
||||||
collation(ucase(_latin2'a')) coercibility(ucase(_latin2'a'))
|
collation(ucase(_latin2'a')) coercibility(ucase(_latin2'a'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(left(_latin2'a',1)), coercibility(left(_latin2'a',1));
|
select collation(left(_latin2'a',1)), coercibility(left(_latin2'a',1));
|
||||||
collation(left(_latin2'a',1)) coercibility(left(_latin2'a',1))
|
collation(left(_latin2'a',1)) coercibility(left(_latin2'a',1))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(right(_latin2'a',1)), coercibility(right(_latin2'a',1));
|
select collation(right(_latin2'a',1)), coercibility(right(_latin2'a',1));
|
||||||
collation(right(_latin2'a',1)) coercibility(right(_latin2'a',1))
|
collation(right(_latin2'a',1)) coercibility(right(_latin2'a',1))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(substring(_latin2'a',1,1)), coercibility(substring(_latin2'a',1,1));
|
select collation(substring(_latin2'a',1,1)), coercibility(substring(_latin2'a',1,1));
|
||||||
collation(substring(_latin2'a',1,1)) coercibility(substring(_latin2'a',1,1))
|
collation(substring(_latin2'a',1,1)) coercibility(substring(_latin2'a',1,1))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(concat(_latin2'a',_latin2'b')), coercibility(concat(_latin2'a',_latin2'b'));
|
select collation(concat(_latin2'a',_latin2'b')), coercibility(concat(_latin2'a',_latin2'b'));
|
||||||
collation(concat(_latin2'a',_latin2'b')) coercibility(concat(_latin2'a',_latin2'b'))
|
collation(concat(_latin2'a',_latin2'b')) coercibility(concat(_latin2'a',_latin2'b'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(lpad(_latin2'a',4,_latin2'b')), coercibility(lpad(_latin2'a',4,_latin2'b'));
|
select collation(lpad(_latin2'a',4,_latin2'b')), coercibility(lpad(_latin2'a',4,_latin2'b'));
|
||||||
collation(lpad(_latin2'a',4,_latin2'b')) coercibility(lpad(_latin2'a',4,_latin2'b'))
|
collation(lpad(_latin2'a',4,_latin2'b')) coercibility(lpad(_latin2'a',4,_latin2'b'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(lpad(_latin2'a',4)), coercibility(lpad(_latin2'a',4));
|
select collation(lpad(_latin2'a',4)), coercibility(lpad(_latin2'a',4));
|
||||||
collation(lpad(_latin2'a',4)) coercibility(lpad(_latin2'a',4))
|
collation(lpad(_latin2'a',4)) coercibility(lpad(_latin2'a',4))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(rpad(_latin2'a',4,_latin2'b')), coercibility(rpad(_latin2'a',4,_latin2'b'));
|
select collation(rpad(_latin2'a',4,_latin2'b')), coercibility(rpad(_latin2'a',4,_latin2'b'));
|
||||||
collation(rpad(_latin2'a',4,_latin2'b')) coercibility(rpad(_latin2'a',4,_latin2'b'))
|
collation(rpad(_latin2'a',4,_latin2'b')) coercibility(rpad(_latin2'a',4,_latin2'b'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(rpad(_latin2'a',4)), coercibility(rpad(_latin2'a',4));
|
select collation(rpad(_latin2'a',4)), coercibility(rpad(_latin2'a',4));
|
||||||
collation(rpad(_latin2'a',4)) coercibility(rpad(_latin2'a',4))
|
collation(rpad(_latin2'a',4)) coercibility(rpad(_latin2'a',4))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(concat_ws(_latin2'a',_latin2'b')), coercibility(concat_ws(_latin2'a',_latin2'b'));
|
select collation(concat_ws(_latin2'a',_latin2'b')), coercibility(concat_ws(_latin2'a',_latin2'b'));
|
||||||
collation(concat_ws(_latin2'a',_latin2'b')) coercibility(concat_ws(_latin2'a',_latin2'b'))
|
collation(concat_ws(_latin2'a',_latin2'b')) coercibility(concat_ws(_latin2'a',_latin2'b'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')), coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'));
|
select collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')), coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'));
|
||||||
collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')) coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'))
|
collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')) coercibility(make_set(255,_latin2'a',_latin2'b',_latin2'c'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')), coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '));
|
select collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')), coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '));
|
||||||
collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')) coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '))
|
collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')) coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(trim(_latin2' a ')), coercibility(trim(_latin2' a '));
|
select collation(trim(_latin2' a ')), coercibility(trim(_latin2' a '));
|
||||||
collation(trim(_latin2' a ')) coercibility(trim(_latin2' a '))
|
collation(trim(_latin2' a ')) coercibility(trim(_latin2' a '))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(ltrim(_latin2' a ')), coercibility(ltrim(_latin2' a '));
|
select collation(ltrim(_latin2' a ')), coercibility(ltrim(_latin2' a '));
|
||||||
collation(ltrim(_latin2' a ')) coercibility(ltrim(_latin2' a '))
|
collation(ltrim(_latin2' a ')) coercibility(ltrim(_latin2' a '))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(rtrim(_latin2' a ')), coercibility(rtrim(_latin2' a '));
|
select collation(rtrim(_latin2' a ')), coercibility(rtrim(_latin2' a '));
|
||||||
collation(rtrim(_latin2' a ')) coercibility(rtrim(_latin2' a '))
|
collation(rtrim(_latin2' a ')) coercibility(rtrim(_latin2' a '))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(trim(LEADING _latin2' ' FROM _latin2'a')), coercibility(trim(LEADING _latin2'a' FROM _latin2'a'));
|
select collation(trim(LEADING _latin2' ' FROM _latin2'a')), coercibility(trim(LEADING _latin2'a' FROM _latin2'a'));
|
||||||
collation(trim(LEADING _latin2' ' FROM _latin2'a')) coercibility(trim(LEADING _latin2'a' FROM _latin2'a'))
|
collation(trim(LEADING _latin2' ' FROM _latin2'a')) coercibility(trim(LEADING _latin2'a' FROM _latin2'a'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(trim(TRAILING _latin2' ' FROM _latin2'a')), coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'));
|
select collation(trim(TRAILING _latin2' ' FROM _latin2'a')), coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'));
|
||||||
collation(trim(TRAILING _latin2' ' FROM _latin2'a')) coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'))
|
collation(trim(TRAILING _latin2' ' FROM _latin2'a')) coercibility(trim(TRAILING _latin2'a' FROM _latin2'a'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(trim(BOTH _latin2' ' FROM _latin2'a')), coercibility(trim(BOTH _latin2'a' FROM _latin2'a'));
|
select collation(trim(BOTH _latin2' ' FROM _latin2'a')), coercibility(trim(BOTH _latin2'a' FROM _latin2'a'));
|
||||||
collation(trim(BOTH _latin2' ' FROM _latin2'a')) coercibility(trim(BOTH _latin2'a' FROM _latin2'a'))
|
collation(trim(BOTH _latin2' ' FROM _latin2'a')) coercibility(trim(BOTH _latin2'a' FROM _latin2'a'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(repeat(_latin2'a',10)), coercibility(repeat(_latin2'a',10));
|
select collation(repeat(_latin2'a',10)), coercibility(repeat(_latin2'a',10));
|
||||||
collation(repeat(_latin2'a',10)) coercibility(repeat(_latin2'a',10))
|
collation(repeat(_latin2'a',10)) coercibility(repeat(_latin2'a',10))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(reverse(_latin2'ab')), coercibility(reverse(_latin2'ab'));
|
select collation(reverse(_latin2'ab')), coercibility(reverse(_latin2'ab'));
|
||||||
collation(reverse(_latin2'ab')) coercibility(reverse(_latin2'ab'))
|
collation(reverse(_latin2'ab')) coercibility(reverse(_latin2'ab'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(quote(_latin2'ab')), coercibility(quote(_latin2'ab'));
|
select collation(quote(_latin2'ab')), coercibility(quote(_latin2'ab'));
|
||||||
collation(quote(_latin2'ab')) coercibility(quote(_latin2'ab'))
|
collation(quote(_latin2'ab')) coercibility(quote(_latin2'ab'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(soundex(_latin2'ab')), coercibility(soundex(_latin2'ab'));
|
select collation(soundex(_latin2'ab')), coercibility(soundex(_latin2'ab'));
|
||||||
collation(soundex(_latin2'ab')) coercibility(soundex(_latin2'ab'))
|
collation(soundex(_latin2'ab')) coercibility(soundex(_latin2'ab'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(substring(_latin2'ab',1)), coercibility(substring(_latin2'ab',1));
|
select collation(substring(_latin2'ab',1)), coercibility(substring(_latin2'ab',1));
|
||||||
collation(substring(_latin2'ab',1)) coercibility(substring(_latin2'ab',1))
|
collation(substring(_latin2'ab',1)) coercibility(substring(_latin2'ab',1))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(insert(_latin2'abcd',2,3,_latin2'ef')), coercibility(insert(_latin2'abcd',2,3,_latin2'ef'));
|
select collation(insert(_latin2'abcd',2,3,_latin2'ef')), coercibility(insert(_latin2'abcd',2,3,_latin2'ef'));
|
||||||
collation(insert(_latin2'abcd',2,3,_latin2'ef')) coercibility(insert(_latin2'abcd',2,3,_latin2'ef'))
|
collation(insert(_latin2'abcd',2,3,_latin2'ef')) coercibility(insert(_latin2'abcd',2,3,_latin2'ef'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(replace(_latin2'abcd',_latin2'b',_latin2'B')), coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'));
|
select collation(replace(_latin2'abcd',_latin2'b',_latin2'B')), coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'));
|
||||||
collation(replace(_latin2'abcd',_latin2'b',_latin2'B')) coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'))
|
collation(replace(_latin2'abcd',_latin2'b',_latin2'B')) coercibility(replace(_latin2'abcd',_latin2'b',_latin2'B'))
|
||||||
latin2_general_ci 4
|
latin2_general_ci 5
|
||||||
select collation(encode('abcd','ab')), coercibility(encode('abcd','ab'));
|
select collation(encode('abcd','ab')), coercibility(encode('abcd','ab'));
|
||||||
collation(encode('abcd','ab')) coercibility(encode('abcd','ab'))
|
collation(encode('abcd','ab')) coercibility(encode('abcd','ab'))
|
||||||
binary 4
|
binary 5
|
||||||
create table t1
|
create table t1
|
||||||
select
|
select
|
||||||
bin(130),
|
bin(130),
|
||||||
@ -787,7 +787,7 @@ latin2 latin2_general_ci 2
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
select charset(null), collation(null), coercibility(null);
|
select charset(null), collation(null), coercibility(null);
|
||||||
charset(null) collation(null) coercibility(null)
|
charset(null) collation(null) coercibility(null)
|
||||||
binary binary 6
|
binary binary 7
|
||||||
CREATE TABLE t1 (a int, b int);
|
CREATE TABLE t1 (a int, b int);
|
||||||
CREATE TABLE t2 (a int, b int);
|
CREATE TABLE t2 (a int, b int);
|
||||||
INSERT INTO t1 VALUES (1,1),(2,2);
|
INSERT INTO t1 VALUES (1,1),(2,2);
|
||||||
@ -803,7 +803,7 @@ a b a b
|
|||||||
1 1 NULL NULL
|
1 1 NULL NULL
|
||||||
2 2 2 2
|
2 2 2 2
|
||||||
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
|
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
|
||||||
where coercibility(t2.a) = 5 order by t1.a,t2.a;
|
where coercibility(t2.a) = 6 order by t1.a,t2.a;
|
||||||
a b a b
|
a b a b
|
||||||
1 1 NULL NULL
|
1 1 NULL NULL
|
||||||
2 2 2 2
|
2 2 2 2
|
||||||
@ -5663,3 +5663,32 @@ CONV(-9223372036854775808, -10, -62)
|
|||||||
#
|
#
|
||||||
# End of 11.4 tests
|
# End of 11.4 tests
|
||||||
#
|
#
|
||||||
|
#
|
||||||
|
# Start of 11.5 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-25829 Change default collation to utf8mb4_1400_ai_ci
|
||||||
|
#
|
||||||
|
SELECT
|
||||||
|
coercibility(CAST(1 AS CHAR)),
|
||||||
|
coercibility(CONVERT('a' USING latin1));
|
||||||
|
coercibility(CAST(1 AS CHAR)) 4
|
||||||
|
coercibility(CONVERT('a' USING latin1)) 4
|
||||||
|
SELECT
|
||||||
|
coercibility(CAST(1 AS BINARY)),
|
||||||
|
coercibility(CONVERT('a' USING binary)),
|
||||||
|
coercibility(binary'a');
|
||||||
|
coercibility(CAST(1 AS BINARY)) 2
|
||||||
|
coercibility(CONVERT('a' USING binary)) 2
|
||||||
|
coercibility(binary'a') 2
|
||||||
|
EXPLAIN EXTENDED SELECT
|
||||||
|
CAST(1 AS BINARY) AS c,
|
||||||
|
CONVERT('a' USING binary),
|
||||||
|
BINARY'a';
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select cast(1 as char charset binary) AS `c`,convert('a' using binary) AS `CONVERT('a' USING binary)`,cast('a' as char charset binary) AS `BINARY'a'`
|
||||||
|
#
|
||||||
|
# End of 11.5 tests
|
||||||
|
#
|
||||||
|
@ -485,7 +485,7 @@ where collation(t2.a) = _utf8'binary' order by t1.a,t2.a;
|
|||||||
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
|
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
|
||||||
where charset(t2.a) = _utf8'binary' order by t1.a,t2.a;
|
where charset(t2.a) = _utf8'binary' order by t1.a,t2.a;
|
||||||
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
|
select t1.*,t2.* from t1 left join t2 on (t1.b=t2.b)
|
||||||
where coercibility(t2.a) = 5 order by t1.a,t2.a;
|
where coercibility(t2.a) = 6 order by t1.a,t2.a;
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -2571,3 +2571,32 @@ SELECT CONV(-9223372036854775808, -10, -62);
|
|||||||
--echo #
|
--echo #
|
||||||
--echo # End of 11.4 tests
|
--echo # End of 11.4 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Start of 11.5 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25829 Change default collation to utf8mb4_1400_ai_ci
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--vertical_results
|
||||||
|
SELECT
|
||||||
|
coercibility(CAST(1 AS CHAR)),
|
||||||
|
coercibility(CONVERT('a' USING latin1));
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
coercibility(CAST(1 AS BINARY)),
|
||||||
|
coercibility(CONVERT('a' USING binary)),
|
||||||
|
coercibility(binary'a');
|
||||||
|
--horizontal_results
|
||||||
|
|
||||||
|
EXPLAIN EXTENDED SELECT
|
||||||
|
CAST(1 AS BINARY) AS c,
|
||||||
|
CONVERT('a' USING binary),
|
||||||
|
BINARY'a';
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 11.5 tests
|
||||||
|
--echo #
|
||||||
|
@ -638,7 +638,7 @@ LOWER(MONTHNAME(19700101))
|
|||||||
january
|
january
|
||||||
SELECT COERCIBILITY(MONTHNAME('1970-01-01')),COERCIBILITY(DAYNAME('1970-01-01'));
|
SELECT COERCIBILITY(MONTHNAME('1970-01-01')),COERCIBILITY(DAYNAME('1970-01-01'));
|
||||||
COERCIBILITY(MONTHNAME('1970-01-01')) COERCIBILITY(DAYNAME('1970-01-01'))
|
COERCIBILITY(MONTHNAME('1970-01-01')) COERCIBILITY(DAYNAME('1970-01-01'))
|
||||||
4 4
|
5 5
|
||||||
CREATE TABLE t1 (datetime datetime, timestamp timestamp, date date, time time);
|
CREATE TABLE t1 (datetime datetime, timestamp timestamp, date date, time time);
|
||||||
INSERT INTO t1 values ("2001-01-02 03:04:05", "2002-01-02 03:04:05", "2003-01-02", "06:07:08");
|
INSERT INTO t1 values ("2001-01-02 03:04:05", "2002-01-02 03:04:05", "2003-01-02", "06:07:08");
|
||||||
SELECT * from t1;
|
SELECT * from t1;
|
||||||
|
@ -69,7 +69,7 @@ weight_string reverse
|
|||||||
1 2
|
1 2
|
||||||
select coercibility(weight_string('test'));
|
select coercibility(weight_string('test'));
|
||||||
coercibility(weight_string('test'))
|
coercibility(weight_string('test'))
|
||||||
4
|
5
|
||||||
select coercibility(weight_string('test' collate latin1_swedish_ci));
|
select coercibility(weight_string('test' collate latin1_swedish_ci));
|
||||||
coercibility(weight_string('test' collate latin1_swedish_ci))
|
coercibility(weight_string('test' collate latin1_swedish_ci))
|
||||||
0
|
0
|
||||||
|
@ -774,10 +774,10 @@ Warning 1916 Got overflow when converting '-19999999999999999999' to INT. Value
|
|||||||
GET DIAGNOSTICS CONDITION 1 @var1 = MESSAGE_TEXT, @var2 = CLASS_ORIGIN;
|
GET DIAGNOSTICS CONDITION 1 @var1 = MESSAGE_TEXT, @var2 = CLASS_ORIGIN;
|
||||||
SELECT CHARSET(@var1), COLLATION(@var1), COERCIBILITY(@var1);
|
SELECT CHARSET(@var1), COLLATION(@var1), COERCIBILITY(@var1);
|
||||||
CHARSET(@var1) COLLATION(@var1) COERCIBILITY(@var1)
|
CHARSET(@var1) COLLATION(@var1) COERCIBILITY(@var1)
|
||||||
utf8mb3 utf8mb3_general_ci 4
|
utf8mb3 utf8mb3_general_ci 5
|
||||||
SELECT CHARSET(@var2), COLLATION(@var2), COERCIBILITY(@var2);
|
SELECT CHARSET(@var2), COLLATION(@var2), COERCIBILITY(@var2);
|
||||||
CHARSET(@var2) COLLATION(@var2) COERCIBILITY(@var2)
|
CHARSET(@var2) COLLATION(@var2) COERCIBILITY(@var2)
|
||||||
utf8mb3 utf8mb3_general_ci 4
|
utf8mb3 utf8mb3_general_ci 5
|
||||||
#
|
#
|
||||||
# Command statistics
|
# Command statistics
|
||||||
#
|
#
|
||||||
|
@ -4885,7 +4885,7 @@ UNCOMPRESSED_LENGTH(POINT(1,1))
|
|||||||
0
|
0
|
||||||
SELECT COERCIBILITY(POINT(1,1));
|
SELECT COERCIBILITY(POINT(1,1));
|
||||||
COERCIBILITY(POINT(1,1))
|
COERCIBILITY(POINT(1,1))
|
||||||
4
|
5
|
||||||
SELECT ASCII(POINT(1,1));
|
SELECT ASCII(POINT(1,1));
|
||||||
ASCII(POINT(1,1))
|
ASCII(POINT(1,1))
|
||||||
0
|
0
|
||||||
|
@ -426,7 +426,7 @@ def ORD('a') 3 7 2 N 32897 0 63
|
|||||||
def CRC32('a') 3 10 10 N 32929 0 63
|
def CRC32('a') 3 10 10 N 32929 0 63
|
||||||
def UNCOMPRESSED_LENGTH(COMPRESS('a')) 3 10 1 Y 32896 0 63
|
def UNCOMPRESSED_LENGTH(COMPRESS('a')) 3 10 1 Y 32896 0 63
|
||||||
STRCMP('a','b') OCTET_LENGTH('a') CHAR_LENGTH('a') COERCIBILITY('a') ASCII('a') ORD('a') CRC32('a') UNCOMPRESSED_LENGTH(COMPRESS('a'))
|
STRCMP('a','b') OCTET_LENGTH('a') CHAR_LENGTH('a') COERCIBILITY('a') ASCII('a') ORD('a') CRC32('a') UNCOMPRESSED_LENGTH(COMPRESS('a'))
|
||||||
-1 1 1 4 97 97 3904355907 1
|
-1 1 1 5 97 97 3904355907 1
|
||||||
SELECT
|
SELECT
|
||||||
INTERVAL(2,1,2,3),
|
INTERVAL(2,1,2,3),
|
||||||
REGEXP_INSTR('a','a'),
|
REGEXP_INSTR('a','a'),
|
||||||
|
@ -5175,19 +5175,19 @@ CHARSET(CONCAT(?,_latin1'a'))
|
|||||||
latin1
|
latin1
|
||||||
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING 5;
|
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING 5;
|
||||||
COERCIBILITY(?)
|
COERCIBILITY(?)
|
||||||
5
|
6
|
||||||
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING 5.5;
|
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING 5.5;
|
||||||
COERCIBILITY(?)
|
COERCIBILITY(?)
|
||||||
5
|
6
|
||||||
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING 5.5e0;
|
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING 5.5e0;
|
||||||
COERCIBILITY(?)
|
COERCIBILITY(?)
|
||||||
5
|
6
|
||||||
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING TIME'10:20:30';
|
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING TIME'10:20:30';
|
||||||
COERCIBILITY(?)
|
COERCIBILITY(?)
|
||||||
5
|
6
|
||||||
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING TIMESTAMP'2001-01-01 10:20:30';
|
EXECUTE IMMEDIATE "SELECT COERCIBILITY(?)" USING TIMESTAMP'2001-01-01 10:20:30';
|
||||||
COERCIBILITY(?)
|
COERCIBILITY(?)
|
||||||
5
|
6
|
||||||
#
|
#
|
||||||
# MDEV-14435 Different UNSIGNED flag of out user variable for YEAR parameter for direct vs prepared CALL
|
# MDEV-14435 Different UNSIGNED flag of out user variable for YEAR parameter for direct vs prepared CALL
|
||||||
#
|
#
|
||||||
|
@ -520,7 +520,7 @@ charset(load_file('../../std_data/words.dat')),
|
|||||||
collation(load_file('../../std_data/words.dat')),
|
collation(load_file('../../std_data/words.dat')),
|
||||||
coercibility(load_file('../../std_data/words.dat'));
|
coercibility(load_file('../../std_data/words.dat'));
|
||||||
charset(load_file('../../std_data/words.dat')) collation(load_file('../../std_data/words.dat')) coercibility(load_file('../../std_data/words.dat'))
|
charset(load_file('../../std_data/words.dat')) collation(load_file('../../std_data/words.dat')) coercibility(load_file('../../std_data/words.dat'))
|
||||||
binary binary 4
|
binary binary 5
|
||||||
explain extended select
|
explain extended select
|
||||||
charset(load_file('MYSQLTEST_VARDIR/std_data/words.dat')),
|
charset(load_file('MYSQLTEST_VARDIR/std_data/words.dat')),
|
||||||
collation(load_file('MYSQLTEST_VARDIR/std_data/words.dat')),
|
collation(load_file('MYSQLTEST_VARDIR/std_data/words.dat')),
|
||||||
|
@ -137,7 +137,7 @@ drop table t1;
|
|||||||
set @a=_latin2'test';
|
set @a=_latin2'test';
|
||||||
select charset(@a),collation(@a),coercibility(@a);
|
select charset(@a),collation(@a),coercibility(@a);
|
||||||
charset(@a) collation(@a) coercibility(@a)
|
charset(@a) collation(@a) coercibility(@a)
|
||||||
latin2 latin2_general_ci 4
|
latin2 latin2_general_ci 5
|
||||||
select @a=_latin2'TEST';
|
select @a=_latin2'TEST';
|
||||||
@a=_latin2'TEST'
|
@a=_latin2'TEST'
|
||||||
1
|
1
|
||||||
@ -147,7 +147,7 @@ select @a=_latin2'TEST' collate latin2_bin;
|
|||||||
set @a=_latin2'test' collate latin2_general_ci;
|
set @a=_latin2'test' collate latin2_general_ci;
|
||||||
select charset(@a),collation(@a),coercibility(@a);
|
select charset(@a),collation(@a),coercibility(@a);
|
||||||
charset(@a) collation(@a) coercibility(@a)
|
charset(@a) collation(@a) coercibility(@a)
|
||||||
latin2 latin2_general_ci 4
|
latin2 latin2_general_ci 5
|
||||||
select @a=_latin2'TEST';
|
select @a=_latin2'TEST';
|
||||||
@a=_latin2'TEST'
|
@a=_latin2'TEST'
|
||||||
1
|
1
|
||||||
@ -162,19 +162,19 @@ collation(@a:=_latin2'test')
|
|||||||
latin2_general_ci
|
latin2_general_ci
|
||||||
select coercibility(@a:=_latin2'test');
|
select coercibility(@a:=_latin2'test');
|
||||||
coercibility(@a:=_latin2'test')
|
coercibility(@a:=_latin2'test')
|
||||||
4
|
5
|
||||||
select collation(@a:=_latin2'test' collate latin2_bin);
|
select collation(@a:=_latin2'test' collate latin2_bin);
|
||||||
collation(@a:=_latin2'test' collate latin2_bin)
|
collation(@a:=_latin2'test' collate latin2_bin)
|
||||||
latin2_bin
|
latin2_bin
|
||||||
select coercibility(@a:=_latin2'test' collate latin2_bin);
|
select coercibility(@a:=_latin2'test' collate latin2_bin);
|
||||||
coercibility(@a:=_latin2'test' collate latin2_bin)
|
coercibility(@a:=_latin2'test' collate latin2_bin)
|
||||||
4
|
5
|
||||||
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST';
|
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST';
|
||||||
(@a:=_latin2'test' collate latin2_bin) = _latin2'TEST'
|
(@a:=_latin2'test' collate latin2_bin) = _latin2'TEST'
|
||||||
0
|
0
|
||||||
select charset(@a),collation(@a),coercibility(@a);
|
select charset(@a),collation(@a),coercibility(@a);
|
||||||
charset(@a) collation(@a) coercibility(@a)
|
charset(@a) collation(@a) coercibility(@a)
|
||||||
latin2 latin2_bin 4
|
latin2 latin2_bin 5
|
||||||
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
select (@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci;
|
||||||
(@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci
|
(@a:=_latin2'test' collate latin2_bin) = _latin2'TEST' collate latin2_general_ci
|
||||||
1
|
1
|
||||||
@ -184,11 +184,11 @@ my_column
|
|||||||
0
|
0
|
||||||
select @v, coercibility(@v);
|
select @v, coercibility(@v);
|
||||||
@v coercibility(@v)
|
@v coercibility(@v)
|
||||||
NULL 4
|
NULL 5
|
||||||
set @v1=null, @v2=1, @v3=1.1, @v4=now();
|
set @v1=null, @v2=1, @v3=1.1, @v4=now();
|
||||||
select coercibility(@v1),coercibility(@v2),coercibility(@v3),coercibility(@v4);
|
select coercibility(@v1),coercibility(@v2),coercibility(@v3),coercibility(@v4);
|
||||||
coercibility(@v1) coercibility(@v2) coercibility(@v3) coercibility(@v4)
|
coercibility(@v1) coercibility(@v2) coercibility(@v3) coercibility(@v4)
|
||||||
4 5 5 4
|
5 6 6 5
|
||||||
set session @honk=99;
|
set session @honk=99;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@honk=99' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@honk=99' at line 1
|
||||||
select @@local.max_allowed_packet;
|
select @@local.max_allowed_packet;
|
||||||
|
@ -2390,10 +2390,7 @@ left_is_superset(const DTCollation *left, const DTCollation *right)
|
|||||||
Aggregate two collations together taking
|
Aggregate two collations together taking
|
||||||
into account their coercibility (aka derivation):.
|
into account their coercibility (aka derivation):.
|
||||||
|
|
||||||
0 == DERIVATION_EXPLICIT - an explicitly written COLLATE clause @n
|
See the definition of enum Derivation for details.
|
||||||
1 == DERIVATION_NONE - a mix of two different collations @n
|
|
||||||
2 == DERIVATION_IMPLICIT - a column @n
|
|
||||||
3 == DERIVATION_COERCIBLE - a string constant.
|
|
||||||
|
|
||||||
The most important rules are:
|
The most important rules are:
|
||||||
-# If collations are the same:
|
-# If collations are the same:
|
||||||
|
@ -4017,7 +4017,9 @@ String *Item_func_conv_charset::val_str(String *str)
|
|||||||
|
|
||||||
bool Item_func_conv_charset::fix_length_and_dec(THD *thd)
|
bool Item_func_conv_charset::fix_length_and_dec(THD *thd)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(collation.derivation == DERIVATION_IMPLICIT);
|
DBUG_ASSERT(collation.derivation == DERIVATION_CAST ||
|
||||||
|
(collation.derivation == DERIVATION_IMPLICIT &&
|
||||||
|
collation.collation == &my_charset_bin));
|
||||||
fix_char_length(args[0]->max_char_length());
|
fix_char_length(args[0]->max_char_length());
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -1893,13 +1893,13 @@ public:
|
|||||||
Item_func_conv_charset(THD *thd, Item *a, CHARSET_INFO *cs):
|
Item_func_conv_charset(THD *thd, Item *a, CHARSET_INFO *cs):
|
||||||
Item_str_func(thd, a)
|
Item_str_func(thd, a)
|
||||||
{
|
{
|
||||||
collation.set(cs, DERIVATION_IMPLICIT);
|
collation= DTCollation::string_typecast(cs);
|
||||||
use_cached_value= 0; safe= 0;
|
use_cached_value= 0; safe= 0;
|
||||||
}
|
}
|
||||||
Item_func_conv_charset(THD *thd, Item *a, CHARSET_INFO *cs, bool cache_if_const):
|
Item_func_conv_charset(THD *thd, Item *a, CHARSET_INFO *cs, bool cache_if_const):
|
||||||
Item_str_func(thd, a)
|
Item_str_func(thd, a)
|
||||||
{
|
{
|
||||||
collation.set(cs, DERIVATION_IMPLICIT);
|
collation= DTCollation::string_typecast(cs);
|
||||||
if (cache_if_const && args[0]->can_eval_in_optimize())
|
if (cache_if_const && args[0]->can_eval_in_optimize())
|
||||||
{
|
{
|
||||||
uint errors= 0;
|
uint errors= 0;
|
||||||
|
@ -3376,7 +3376,7 @@ void Item_char_typecast::fix_length_and_dec_internal(CHARSET_INFO *from_cs)
|
|||||||
(!my_charset_same(from_cs, cast_cs) &&
|
(!my_charset_same(from_cs, cast_cs) &&
|
||||||
from_cs != &my_charset_bin &&
|
from_cs != &my_charset_bin &&
|
||||||
cast_cs != &my_charset_bin);
|
cast_cs != &my_charset_bin);
|
||||||
collation.set(cast_cs, DERIVATION_IMPLICIT);
|
collation= DTCollation::string_typecast(cast_cs);
|
||||||
char_length= ((cast_length != ~0U) ? cast_length :
|
char_length= ((cast_length != ~0U) ? cast_length :
|
||||||
args[0]->max_length /
|
args[0]->max_length /
|
||||||
(cast_cs == &my_charset_bin ? 1 :
|
(cast_cs == &my_charset_bin ? 1 :
|
||||||
|
@ -3019,13 +3019,46 @@ static inline my_repertoire_t &operator|=(my_repertoire_t &a,
|
|||||||
|
|
||||||
enum Derivation
|
enum Derivation
|
||||||
{
|
{
|
||||||
DERIVATION_IGNORABLE= 6,
|
DERIVATION_IGNORABLE= 7, // Explicit NULL
|
||||||
DERIVATION_NUMERIC= 5,
|
|
||||||
DERIVATION_COERCIBLE= 4,
|
/*
|
||||||
|
Explicit or implicit conversion from numeric/temporal data to string:
|
||||||
|
- Numbers/temporals in string context
|
||||||
|
- Numeric user variables
|
||||||
|
- CAST(numeric_or_temporal_expr AS CHAR)
|
||||||
|
*/
|
||||||
|
DERIVATION_NUMERIC= 6,
|
||||||
|
|
||||||
|
/*
|
||||||
|
- String literals
|
||||||
|
- String user variables
|
||||||
|
*/
|
||||||
|
DERIVATION_COERCIBLE= 5,
|
||||||
|
|
||||||
|
/*
|
||||||
|
String cast and conversion functions:
|
||||||
|
- BINARY(expr)
|
||||||
|
- CAST(string_expr AS CHAR)
|
||||||
|
- CONVERT(expr USING cs)
|
||||||
|
*/
|
||||||
|
DERIVATION_CAST= 4,
|
||||||
|
|
||||||
|
/*
|
||||||
|
utf8 metadata functions:
|
||||||
|
- DATABASE()
|
||||||
|
- CURRENT_ROLE()
|
||||||
|
- USER()
|
||||||
|
*/
|
||||||
DERIVATION_SYSCONST= 3,
|
DERIVATION_SYSCONST= 3,
|
||||||
|
|
||||||
|
/*
|
||||||
|
- Table columns
|
||||||
|
- SP variables
|
||||||
|
- BINARY(expr) and CAST(expr AS BINARY)
|
||||||
|
*/
|
||||||
DERIVATION_IMPLICIT= 2,
|
DERIVATION_IMPLICIT= 2,
|
||||||
DERIVATION_NONE= 1,
|
DERIVATION_NONE= 1, // A mix (e.g. CONCAT) of two differrent collations
|
||||||
DERIVATION_EXPLICIT= 0
|
DERIVATION_EXPLICIT= 0 // An explicit COLLATE clause
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -3079,6 +3112,12 @@ public:
|
|||||||
derivation(derivation_arg),
|
derivation(derivation_arg),
|
||||||
repertoire(repertoire_arg)
|
repertoire(repertoire_arg)
|
||||||
{ }
|
{ }
|
||||||
|
static DTCollation string_typecast(CHARSET_INFO *collation_arg)
|
||||||
|
{
|
||||||
|
return DTCollation(collation_arg,
|
||||||
|
collation_arg == &my_charset_bin ?
|
||||||
|
DERIVATION_IMPLICIT : DERIVATION_CAST);
|
||||||
|
}
|
||||||
void set(const DTCollation &dt)
|
void set(const DTCollation &dt)
|
||||||
{
|
{
|
||||||
*this= dt;
|
*this= dt;
|
||||||
@ -3114,6 +3153,7 @@ public:
|
|||||||
case DERIVATION_NUMERIC: return "NUMERIC";
|
case DERIVATION_NUMERIC: return "NUMERIC";
|
||||||
case DERIVATION_IGNORABLE: return "IGNORABLE";
|
case DERIVATION_IGNORABLE: return "IGNORABLE";
|
||||||
case DERIVATION_COERCIBLE: return "COERCIBLE";
|
case DERIVATION_COERCIBLE: return "COERCIBLE";
|
||||||
|
case DERIVATION_CAST: return "CAST";
|
||||||
case DERIVATION_IMPLICIT: return "IMPLICIT";
|
case DERIVATION_IMPLICIT: return "IMPLICIT";
|
||||||
case DERIVATION_SYSCONST: return "SYSCONST";
|
case DERIVATION_SYSCONST: return "SYSCONST";
|
||||||
case DERIVATION_EXPLICIT: return "EXPLICIT";
|
case DERIVATION_EXPLICIT: return "EXPLICIT";
|
||||||
|
Reference in New Issue
Block a user