mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
1. Item now uses my_charset_bin by default,
not default_charset_into. It fixes the problem that in some cases numbers where treated as CHAR(N), not as BINARY(N), e.g. wrong 'charsetnr' when sent to the client side. 2. IFNULL didn't aggregate argument charsets and collations, so IFNULL(1,'a') produced a CHAR(N). Now produces a BINARY(N). 3. SELECT PROCEDURE ANALIZE now returns BINARY columns, which is much better than it worked previously: CHAR with the default character set. But in the future it's worth to fix the fields 'Field_name' and 'Optimal_fieldtype' to use UTF8, and 'Min_value' and 'Max_value' to inherit their charsets from the original items. But it is not important, and BINARY(N) is OK for now. 4. Tests were fixed accordingly. No new tests were made, as the old onces cover everything. mysql-test/r/analyse.result: SELECT PROCEDURE ANALIZE now returns BINARY columns, which is much better than it worked previously: CHAR with the default character set. But in the future it's worth to fix the fields 'Field_name' and 'Optimal_fieldtype' to use UTF8, and 'Min_value' and 'Max_value' to inherit their charsets from the original items. But it is not important, and BINARY(N) is OK for now. mysql-test/r/case.result: Test fix according to the changes mysql-test/r/metadata.result: Test fix according to the changes mysql-test/r/ps_1general.result: Test fix according to the changes mysql-test/r/ps_2myisam.result: Test fix according to the changes mysql-test/r/ps_3innodb.result: Test fix according to the changes mysql-test/r/ps_4heap.result: Test fix according to the changes mysql-test/r/ps_5merge.result: Test fix according to the changes mysql-test/r/ps_6bdb.result: Test fix according to the changes mysql-test/r/ps_7ndb.result: Test fix according to the changes mysql-test/r/union.result: Test fix according to the changes sql/item.cc: Item is now BINARY by default sql/item_cmpfunc.cc: IFNULL now collects arguments collations/charsets like other functions do.
This commit is contained in:
@ -98,10 +98,10 @@ Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` char(1) character set latin1 collate latin1_danish_ci NOT NULL default '',
|
||||
`c2` char(1) character set latin1 collate latin1_danish_ci NOT NULL default '',
|
||||
`c3` char(1) NOT NULL default '',
|
||||
`c4` char(1) NOT NULL default '',
|
||||
`c5` char(3) NOT NULL default '',
|
||||
`c6` char(3) NOT NULL default '',
|
||||
`c3` binary(1) NOT NULL default '',
|
||||
`c4` binary(1) NOT NULL default '',
|
||||
`c5` binary(3) NOT NULL default '',
|
||||
`c6` binary(3) NOT NULL default '',
|
||||
`c7` double(3,1) NOT NULL default '0.0',
|
||||
`c8` double(3,1) NOT NULL default '0.0',
|
||||
`c9` double(3,1) default NULL
|
||||
@ -149,8 +149,8 @@ t1 CREATE TABLE `t1` (
|
||||
`COALESCE(1.0)` double(3,1) NOT NULL default '0.0',
|
||||
`COALESCE('a')` char(1) NOT NULL default '',
|
||||
`COALESCE(1,1.0)` double(3,1) NOT NULL default '0.0',
|
||||
`COALESCE(1,'1')` char(1) NOT NULL default '',
|
||||
`COALESCE(1.1,'1')` char(3) NOT NULL default '',
|
||||
`COALESCE(1,'1')` binary(1) NOT NULL default '',
|
||||
`COALESCE(1.1,'1')` binary(3) NOT NULL default '',
|
||||
`COALESCE('a' COLLATE latin1_bin,'b')` char(1) character set latin1 collate latin1_bin NOT NULL default ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user