mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
type_blob.result, func_system.result, func_str.result, ctype_collate.result:
fixing test results accordingly.
func_system.test:
New test that illegal mix of collations does not happen anymore.
item_strfunc.h:
safe_charset_converter() was added for system constants.
item_strfunc.cc:
safe_charset_converter() was added for system constants.
item_func.cc, item.h, item.cc:
Bug#8291: Illegal collation mix with USER() function.
After discussion with PeterG and Serge, a new coercibility
level for "system constants" was introduced, between
COERRIBLE and IMPLICIT. Thus:
SELECT col1 = USER() FROM t1; - is done according to col1 collation.
SELECT 'string' = USER(); - is done according to USER() collation.
At the same time, "nagg" and "strong" members were removed as unused.
item_create.cc:
Version is a system constant too.
This commit is contained in:
@@ -30,3 +30,12 @@ show create table t1;
|
||||
drop table t1;
|
||||
|
||||
select TRUE,FALSE,NULL;
|
||||
|
||||
#
|
||||
# Bug#8291 Illegal collation mix with USER() function
|
||||
#
|
||||
create table t1 (a char(10)) character set latin1;
|
||||
select * from t1 where a=version();
|
||||
select * from t1 where a=database();
|
||||
select * from t1 where a=user();
|
||||
drop table t1;
|
||||
|
||||
Reference in New Issue
Block a user