=== modified file 'client/mysqlcheck.c'
--- client/mysqlcheck.c	2013-10-03 15:00:44 +0000
+++ client/mysqlcheck.c	2013-11-08 19:08:26 +0000
@@ -18,7 +18,7 @@
 
 /* By Jani Tolonen, 2001-04-20, MySQL Development Team */
 
-#define CHECK_VERSION "2.7.1"
+#define CHECK_VERSION "2.7.2"
 
 #include "client_priv.h"
 #include <m_ctype.h>
@@ -681,6 +681,8 @@ static int rebuild_table(char *name)
     fprintf(stderr, "Error: %s\n", mysql_error(sock));
     rc= 1;
   }
+  if (verbose)
+    printf("%-50s %s\n", name, rc ? "FAILED" : "FIXED");
   my_free(query);
   DBUG_RETURN(rc);
 }

=== modified file 'include/m_ctype.h'
--- include/m_ctype.h	2013-10-31 10:24:24 +0000
+++ include/m_ctype.h	2013-11-08 19:08:26 +0000
@@ -240,6 +240,32 @@ extern MY_UNI_CTYPE my_uni_ctype[256];
 #define MY_STRXFRM_REVERSE_LEVEL6  0x00200000 /* if reverse order for level6 */
 #define MY_STRXFRM_REVERSE_SHIFT   16
 
+/*
+   Collation IDs for MariaDB that should not conflict with MySQL.
+   We reserve 256..511, because MySQL will most likely use this range
+   when the range 0..255 is full.
+
+   We use the next 256 IDs starting from 512 and divide
+   them into 8 chunks, 32 collations each, as follows:
+
+   512 + (0..31)    for single byte collations (e.g. latin9)
+   512 + (32..63)   reserved (e.g. for utf32le, or more single byte collations)
+   512 + (64..95)   for utf8
+   512 + (96..127)  for utf8mb4
+   512 + (128..159) for ucs2
+   512 + (160..192) for utf16
+   512 + (192..223) for utf16le
+   512 + (224..255) for utf32
+*/
+#define MY_PAGE2_COLLATION_ID_8BIT     0x200
+#define MY_PAGE2_COLLATION_ID_RESERVED 0x220
+#define MY_PAGE2_COLLATION_ID_UTF8     0x240
+#define MY_PAGE2_COLLATION_ID_UTF8MB4  0x260
+#define MY_PAGE2_COLLATION_ID_UCS2     0x280
+#define MY_PAGE2_COLLATION_ID_UTF16    0x2A0
+#define MY_PAGE2_COLLATION_ID_UTF16LE  0x2C0
+#define MY_PAGE2_COLLATION_ID_UTF32    0x2E0
+
 struct my_uni_idx_st
 {
   uint16 from;

=== modified file 'include/my_base.h'
--- include/my_base.h	2013-07-21 14:39:19 +0000
+++ include/my_base.h	2013-11-08 19:08:26 +0000
@@ -48,6 +48,11 @@
 #define HA_OPEN_INTERNAL_TABLE          512
 #define HA_OPEN_NO_PSI_CALL             1024    /* Don't call/connect PSI */
 #define HA_OPEN_MERGE_TABLE		2048
+/*
+  Allow opening even if table is incompatible as this is for ALTER TABLE which
+  will fix the table structure.
+*/
+#define HA_OPEN_FOR_ALTER		4096
 
 /* The following is parameter to ha_rkey() how to use key */
 

=== modified file 'mysql-test/r/ctype_ldml.result'
--- mysql-test/r/ctype_ldml.result	2013-10-31 10:24:24 +0000
+++ mysql-test/r/ctype_ldml.result	2013-11-08 19:08:26 +0000
@@ -407,7 +407,7 @@ select "foo" = "foo " collate latin1_tes
 "foo" = "foo " collate latin1_test
 1
 The following tests check that two-byte collation IDs work
-select * from information_schema.collations where id>256 order by id;
+select * from information_schema.collations where id>256 and is_compiled<>'Yes' order by id;
 COLLATION_NAME	CHARACTER_SET_NAME	ID	IS_DEFAULT	IS_COMPILED	SORTLEN
 utf8mb4_test_ci	utf8mb4	326			8
 utf16_test_ci	utf16	327			8

=== modified file 'mysql-test/r/ctype_uca.result'
--- mysql-test/r/ctype_uca.result	2013-10-28 08:17:46 +0000
+++ mysql-test/r/ctype_uca.result	2013-11-08 19:08:26 +0000
@@ -2168,6 +2168,116 @@ Z,z,Ź,ź,Ż,ż,Ž,ž
 ǁ
 ǂ
 ǃ
+select group_concat(c1 order by c1) from t1 group by c1 collate utf8_croatian_mysql561_ci;
+group_concat(c1 order by c1)
+÷
+×
+A,a,À,Á,Â,Ã,Ä,Å,à,á,â,ã,ä,å,Ā,ā,Ă,ă,Ą,ą,Ǎ,ǎ,Ǟ,ǟ,Ǡ,ǡ,Ǻ,ǻ,Ạ,ạ,Ả,ả,Ấ,ấ,Ầ,ầ,Ẩ,ẩ,Ẫ,ẫ,Ậ,ậ,Ắ,ắ,Ằ,ằ,Ẳ,ẳ,Ẵ,ẵ,Ặ,ặ
+AA,Aa,aA,aa
+AE,Ae,aE,ae
+Æ,æ,Ǣ,ǣ,Ǽ,ǽ
+B,b
+ƀ
+Ɓ
+Ƃ,ƃ
+C,c,Ç,ç,Ĉ,ĉ,Ċ,ċ
+CH,Ch,cH,ch
+Č,č
+Ć,ć
+Ƈ,ƈ
+D,d,Ď,ď
+DZ,Dz,dZ,dz,Ǳ,ǲ,ǳ
+DŽ,Dž,dŽ,dž,Ǆ,ǅ,ǆ
+Đ,đ
+Ɖ
+Ɗ
+Ƌ,ƌ
+Ð,ð
+E,e,È,É,Ê,Ë,è,é,ê,ë,Ē,ē,Ĕ,ĕ,Ė,ė,Ę,ę,Ě,ě,Ẹ,ẹ,Ẻ,ẻ,Ẽ,ẽ,Ế,ế,Ề,ề,Ể,ể,Ễ,ễ,Ệ,ệ
+Ǝ,ǝ
+Ə
+Ɛ
+F,f
+Ƒ,ƒ
+G,g,Ĝ,ĝ,Ğ,ğ,Ġ,ġ,Ģ,ģ,Ǧ,ǧ,Ǵ,ǵ
+Ǥ,ǥ
+Ɠ
+Ɣ
+Ƣ,ƣ
+H,h,Ĥ,ĥ
+ƕ,Ƕ
+Ħ,ħ
+I,i,Ì,Í,Î,Ï,ì,í,î,ï,Ĩ,ĩ,Ī,ī,Ĭ,ĭ,Į,į,İ,Ǐ,ǐ,Ỉ,ỉ,Ị,ị
+IJ,Ij,iJ,ij,Ĳ,ĳ
+ı
+Ɨ
+Ɩ
+J,j,Ĵ,ĵ,ǰ
+K,k,Ķ,ķ,Ǩ,ǩ
+Ƙ,ƙ
+L,l,Ĺ,ĺ,Ļ,ļ,Ľ,ľ
+Ŀ,ŀ
+LL,Ll,lL,ll
+LJ,Lj,lJ,lj,Ǉ,ǈ,ǉ
+Ł,ł
+ƚ
+ƛ
+M,m
+N,n,Ñ,ñ,Ń,ń,Ņ,ņ,Ň,ň,Ǹ,ǹ
+NJ,Nj,nJ,nj,Ǌ,ǋ,ǌ
+Ɲ
+ƞ
+Ŋ,ŋ
+O,o,Ò,Ó,Ô,Õ,Ö,ò,ó,ô,õ,ö,Ō,ō,Ŏ,ŏ,Ő,ő,Ơ,ơ,Ǒ,ǒ,Ǫ,ǫ,Ǭ,ǭ,Ọ,ọ,Ỏ,ỏ,Ố,ố,Ồ,ồ,Ổ,ổ,Ỗ,ỗ,Ộ,ộ,Ớ,ớ,Ờ,ờ,Ở,ở,Ỡ,ỡ,Ợ,ợ
+OE,Oe,oE,oe,Œ,œ
+Ø,ø,Ǿ,ǿ
+Ɔ
+Ɵ
+P,p
+Ƥ,ƥ
+Q,q
+ĸ
+R,r,Ŕ,ŕ,Ŗ,ŗ,Ř,ř
+RR,Rr,rR,rr
+Ʀ
+S,s,Ś,ś,Ŝ,ŝ,Ş,ş,ſ
+SS,Ss,sS,ss,ß
+Š,š
+Ʃ
+ƪ
+T,t,Ţ,ţ,Ť,ť
+ƾ
+Ŧ,ŧ
+ƫ
+Ƭ,ƭ
+Ʈ
+U,u,Ù,Ú,Û,Ü,ù,ú,û,ü,Ũ,ũ,Ū,ū,Ŭ,ŭ,Ů,ů,Ű,ű,Ų,ų,Ư,ư,Ǔ,ǔ,Ǖ,ǖ,Ǘ,ǘ,Ǚ,ǚ,Ǜ,ǜ,Ụ,ụ,Ủ,ủ,Ứ,ứ,Ừ,ừ,Ử,ử,Ữ,ữ,Ự,ự
+Ɯ
+Ʊ
+V,v
+Ʋ
+W,w,Ŵ,ŵ
+X,x
+Y,y,Ý,ý,ÿ,Ŷ,ŷ,Ÿ
+Ƴ,ƴ
+Z,z,Ź,ź,Ż,ż
+ƍ
+Ž,ž
+Ƶ,ƶ
+Ʒ,Ǯ,ǯ
+Ƹ,ƹ
+ƺ
+Þ,þ
+ƿ,Ƿ
+ƻ
+Ƨ,ƨ
+Ƽ,ƽ
+Ƅ,ƅ
+ŉ
+ǀ
+ǁ
+ǂ
+ǃ
 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_croatian_ci;
 group_concat(c1 order by c1)
 ÷
@@ -4367,6 +4477,116 @@ Z,z,Ź,ź,Ż,ż,Ž,ž
 ǁ
 ǂ
 ǃ
+SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_croatian_mysql561_ci;
+GROUP_CONCAT(c1 ORDER BY c1)
+÷
+×
+A,a,À,Á,Â,Ã,Ä,Å,à,á,â,ã,ä,å,Ā,ā,Ă,ă,Ą,ą,Ǎ,ǎ,Ǟ,ǟ,Ǡ,ǡ,Ǻ,ǻ,Ạ,ạ,Ả,ả,Ấ,ấ,Ầ,ầ,Ẩ,ẩ,Ẫ,ẫ,Ậ,ậ,Ắ,ắ,Ằ,ằ,Ẳ,ẳ,Ẵ,ẵ,Ặ,ặ
+AA,Aa,aA,aa
+AE,Ae,aE,ae
+Æ,æ,Ǣ,ǣ,Ǽ,ǽ
+B,b
+ƀ
+Ɓ
+Ƃ,ƃ
+C,c,Ç,ç,Ĉ,ĉ,Ċ,ċ
+CH,Ch,cH,ch
+Č,č
+Ć,ć
+Ƈ,ƈ
+D,d,Ď,ď
+DZ,Dz,dZ,dz,Ǳ,ǲ,ǳ
+DŽ,Dž,dŽ,dž,Ǆ,ǅ,ǆ
+Đ,đ
+Ɖ
+Ɗ
+Ƌ,ƌ
+Ð,ð
+E,e,È,É,Ê,Ë,è,é,ê,ë,Ē,ē,Ĕ,ĕ,Ė,ė,Ę,ę,Ě,ě,Ẹ,ẹ,Ẻ,ẻ,Ẽ,ẽ,Ế,ế,Ề,ề,Ể,ể,Ễ,ễ,Ệ,ệ
+Ǝ,ǝ
+Ə
+Ɛ
+F,f
+Ƒ,ƒ
+G,g,Ĝ,ĝ,Ğ,ğ,Ġ,ġ,Ģ,ģ,Ǧ,ǧ,Ǵ,ǵ
+Ǥ,ǥ
+Ɠ
+Ɣ
+Ƣ,ƣ
+H,h,Ĥ,ĥ
+ƕ,Ƕ
+Ħ,ħ
+I,i,Ì,Í,Î,Ï,ì,í,î,ï,Ĩ,ĩ,Ī,ī,Ĭ,ĭ,Į,į,İ,Ǐ,ǐ,Ỉ,ỉ,Ị,ị
+IJ,Ij,iJ,ij,Ĳ,ĳ
+ı
+Ɨ
+Ɩ
+J,j,Ĵ,ĵ,ǰ
+K,k,Ķ,ķ,Ǩ,ǩ
+Ƙ,ƙ
+L,l,Ĺ,ĺ,Ļ,ļ,Ľ,ľ
+Ŀ,ŀ
+LL,Ll,lL,ll
+LJ,Lj,lJ,lj,Ǉ,ǈ,ǉ
+Ł,ł
+ƚ
+ƛ
+M,m
+N,n,Ñ,ñ,Ń,ń,Ņ,ņ,Ň,ň,Ǹ,ǹ
+NJ,Nj,nJ,nj,Ǌ,ǋ,ǌ
+Ɲ
+ƞ
+Ŋ,ŋ
+O,o,Ò,Ó,Ô,Õ,Ö,ò,ó,ô,õ,ö,Ō,ō,Ŏ,ŏ,Ő,ő,Ơ,ơ,Ǒ,ǒ,Ǫ,ǫ,Ǭ,ǭ,Ọ,ọ,Ỏ,ỏ,Ố,ố,Ồ,ồ,Ổ,ổ,Ỗ,ỗ,Ộ,ộ,Ớ,ớ,Ờ,ờ,Ở,ở,Ỡ,ỡ,Ợ,ợ
+OE,Oe,oE,oe,Œ,œ
+Ø,ø,Ǿ,ǿ
+Ɔ
+Ɵ
+P,p
+Ƥ,ƥ
+Q,q
+ĸ
+R,r,Ŕ,ŕ,Ŗ,ŗ,Ř,ř
+RR,Rr,rR,rr
+Ʀ
+S,s,Ś,ś,Ŝ,ŝ,Ş,ş,ſ
+SS,Ss,sS,ss,ß
+Š,š
+Ʃ
+ƪ
+T,t,Ţ,ţ,Ť,ť
+ƾ
+Ŧ,ŧ
+ƫ
+Ƭ,ƭ
+Ʈ
+U,u,Ù,Ú,Û,Ü,ù,ú,û,ü,Ũ,ũ,Ū,ū,Ŭ,ŭ,Ů,ů,Ű,ű,Ų,ų,Ư,ư,Ǔ,ǔ,Ǖ,ǖ,Ǘ,ǘ,Ǚ,ǚ,Ǜ,ǜ,Ụ,ụ,Ủ,ủ,Ứ,ứ,Ừ,ừ,Ử,ử,Ữ,ữ,Ự,ự
+Ɯ
+Ʊ
+V,v
+Ʋ
+W,w,Ŵ,ŵ
+X,x
+Y,y,Ý,ý,ÿ,Ŷ,ŷ,Ÿ
+Ƴ,ƴ
+Z,z,Ź,ź,Ż,ż
+ƍ
+Ž,ž
+Ƶ,ƶ
+Ʒ,Ǯ,ǯ
+Ƹ,ƹ
+ƺ
+Þ,þ
+ƿ,Ƿ
+ƻ
+Ƨ,ƨ
+Ƽ,ƽ
+Ƅ,ƅ
+ŉ
+ǀ
+ǁ
+ǂ
+ǃ
 SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_croatian_ci;
 GROUP_CONCAT(c1 ORDER BY c1)
 ÷
@@ -5661,7 +5881,7 @@ HEX(s1)
 0061000000000000000000000009
 0061
 DROP TABLE t1;
-create table t1 (a int, c1 varchar(200) collate utf8_croatian_ci, key (c1));
+create table t1 (a int, c1 varchar(200) collate utf8_croatian_mysql561_ci, key (c1));
 insert into t1 values (1,'=> DZ'),(2,'=> Dz'),(3,'=> dz'),(4,'=> dZ');
 insert into t1 values (5,'=> DŽ'),(6,'=> Dž'),(7,'=> dž'),(8,'=> dŽ');
 insert into t1 values (9,'=> ǆ'),(10,'=> Ǆ');
@@ -5671,10 +5891,10 @@ c1
 => Dz
 => dz
 => dZ
-=> dŽ
 => DŽ
 => Dž
 => dž
+=> dŽ
 => ǆ
 => Ǆ
 select concat(c1) from t1 order by c1;
@@ -5683,10 +5903,10 @@ concat(c1)
 => Dz
 => dz
 => dZ
-=> dŽ
 => DŽ
 => Dž
 => dž
+=> dŽ
 => ǆ
 => Ǆ
 select * from t1 where c1 like '=> d%';
@@ -5738,6 +5958,7 @@ a	c1
 5	=> DŽ
 6	=> Dž
 7	=> dž
+8	=> dŽ
 9	=> ǆ
 10	=> Ǆ
 select * from t1 where concat(c1) = '=> dž';
@@ -5745,6 +5966,7 @@ a	c1
 5	=> DŽ
 6	=> Dž
 7	=> dž
+8	=> dŽ
 9	=> ǆ
 10	=> Ǆ
 drop table t1;

=== modified file 'mysql-test/r/ctype_utf16_uca.result'
--- mysql-test/r/ctype_utf16_uca.result	2013-10-28 08:17:46 +0000
+++ mysql-test/r/ctype_utf16_uca.result	2013-11-08 19:08:26 +0000
@@ -2177,6 +2177,116 @@ ZzŹźŻżŽž
 ǁ
 ǂ
 ǃ
+select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_croatian_mysql561_ci;
+group_concat(c1 order by binary c1 separator '')
+÷
+×
+AaÀÁÂÃÄÅàáâãäåĀāĂăĄąǍǎǞǟǠǡǺǻẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặ
+AAAaaAaa
+AEAeaEae
+ÆæǢǣǼǽ
+Bb
+ƀ
+Ɓ
+Ƃƃ
+CcÇçĈĉĊċ
+CHChcHch
+Čč
+Ćć
+Ƈƈ
+DdĎď
+DZDzdZdzǱǲǳ
+DŽDždŽdžǄǅǆ
+Đđ
+Ɖ
+Ɗ
+Ƌƌ
+Ðð
+EeÈÉÊËèéêëĒēĔĕĖėĘęĚěẸẹẺẻẼẽẾếỀềỂểỄễỆệ
+Ǝǝ
+Ə
+Ɛ
+Ff
+Ƒƒ
+GgĜĝĞğĠġĢģǦǧǴǵ
+Ǥǥ
+Ɠ
+Ɣ
+Ƣƣ
+HhĤĥ
+ƕǶ
+Ħħ
+IiÌÍÎÏìíîïĨĩĪīĬĭĮįİǏǐỈỉỊị
+IJIjiJijĲĳ
+ı
+Ɨ
+Ɩ
+JjĴĵǰ
+KkĶķǨǩ
+Ƙƙ
+LlĹĺĻļĽľ
+Ŀŀ
+LLLllLll
+LJLjlJljǇǈǉ
+Łł
+ƚ
+ƛ
+Mm
+NnÑñŃńŅņŇňǸǹ
+NJNjnJnjǊǋǌ
+Ɲ
+ƞ
+Ŋŋ
+OoÒÓÔÕÖòóôõöŌōŎŏŐőƠơǑǒǪǫǬǭỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợ
+OEOeoEoeŒœ
+ØøǾǿ
+Ɔ
+Ɵ
+Pp
+Ƥƥ
+Qq
+ĸ
+RrŔŕŖŗŘř
+RRRrrRrr
+Ʀ
+SsŚśŜŝŞşſ
+SSSssSssß
+Šš
+Ʃ
+ƪ
+TtŢţŤť
+ƾ
+Ŧŧ
+ƫ
+Ƭƭ
+Ʈ
+UuÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜỤụỦủỨứỪừỬửỮữỰự
+Ɯ
+Ʊ
+Vv
+Ʋ
+WwŴŵ
+Xx
+YyÝýÿŶŷŸ
+Ƴƴ
+ZzŹźŻż
+ƍ
+Žž
+Ƶƶ
+ƷǮǯ
+Ƹƹ
+ƺ
+Þþ
+ƿǷ
+ƻ
+Ƨƨ
+Ƽƽ
+Ƅƅ
+ŉ
+ǀ
+ǁ
+ǂ
+ǃ
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_croatian_ci;
 group_concat(c1 order by binary c1 separator '')
 ÷

=== modified file 'mysql-test/r/ctype_utf32_uca.result'
--- mysql-test/r/ctype_utf32_uca.result	2013-10-28 08:17:46 +0000
+++ mysql-test/r/ctype_utf32_uca.result	2013-11-08 19:08:26 +0000
@@ -2177,6 +2177,116 @@ ZzŹźŻżŽž
 ǁ
 ǂ
 ǃ
+select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_croatian_mysql561_ci;
+group_concat(c1 order by binary c1 separator '')
+÷
+×
+AaÀÁÂÃÄÅàáâãäåĀāĂăĄąǍǎǞǟǠǡǺǻẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặ
+AAAaaAaa
+AEAeaEae
+ÆæǢǣǼǽ
+Bb
+ƀ
+Ɓ
+Ƃƃ
+CcÇçĈĉĊċ
+CHChcHch
+Čč
+Ćć
+Ƈƈ
+DdĎď
+DZDzdZdzǱǲǳ
+DŽDždŽdžǄǅǆ
+Đđ
+Ɖ
+Ɗ
+Ƌƌ
+Ðð
+EeÈÉÊËèéêëĒēĔĕĖėĘęĚěẸẹẺẻẼẽẾếỀềỂểỄễỆệ
+Ǝǝ
+Ə
+Ɛ
+Ff
+Ƒƒ
+GgĜĝĞğĠġĢģǦǧǴǵ
+Ǥǥ
+Ɠ
+Ɣ
+Ƣƣ
+HhĤĥ
+ƕǶ
+Ħħ
+IiÌÍÎÏìíîïĨĩĪīĬĭĮįİǏǐỈỉỊị
+IJIjiJijĲĳ
+ı
+Ɨ
+Ɩ
+JjĴĵǰ
+KkĶķǨǩ
+Ƙƙ
+LlĹĺĻļĽľ
+Ŀŀ
+LLLllLll
+LJLjlJljǇǈǉ
+Łł
+ƚ
+ƛ
+Mm
+NnÑñŃńŅņŇňǸǹ
+NJNjnJnjǊǋǌ
+Ɲ
+ƞ
+Ŋŋ
+OoÒÓÔÕÖòóôõöŌōŎŏŐőƠơǑǒǪǫǬǭỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợ
+OEOeoEoeŒœ
+ØøǾǿ
+Ɔ
+Ɵ
+Pp
+Ƥƥ
+Qq
+ĸ
+RrŔŕŖŗŘř
+RRRrrRrr
+Ʀ
+SsŚśŜŝŞşſ
+SSSssSssß
+Šš
+Ʃ
+ƪ
+TtŢţŤť
+ƾ
+Ŧŧ
+ƫ
+Ƭƭ
+Ʈ
+UuÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜỤụỦủỨứỪừỬửỮữỰự
+Ɯ
+Ʊ
+Vv
+Ʋ
+WwŴŵ
+Xx
+YyÝýÿŶŷŸ
+Ƴƴ
+ZzŹźŻż
+ƍ
+Žž
+Ƶƶ
+ƷǮǯ
+Ƹƹ
+ƺ
+Þþ
+ƿǷ
+ƻ
+Ƨƨ
+Ƽƽ
+Ƅƅ
+ŉ
+ǀ
+ǁ
+ǂ
+ǃ
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_croatian_ci;
 group_concat(c1 order by binary c1 separator '')
 ÷

=== modified file 'mysql-test/r/ctype_utf8mb4_uca.result'
--- mysql-test/r/ctype_utf8mb4_uca.result	2013-10-25 16:13:54 +0000
+++ mysql-test/r/ctype_utf8mb4_uca.result	2013-11-08 19:08:26 +0000
@@ -2138,6 +2138,116 @@ ZzŹźŻżŽž
 ǁ
 ǂ
 ǃ
+SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_croatian_mysql561_ci;
+GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '')
+÷
+×
+AaÀÁÂÃÄÅàáâãäåĀāĂăĄąǍǎǞǟǠǡǺǻẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặ
+AAAaaAaa
+AEAeaEae
+ÆæǢǣǼǽ
+Bb
+ƀ
+Ɓ
+Ƃƃ
+CcÇçĈĉĊċ
+CHChcHch
+Čč
+Ćć
+Ƈƈ
+DdĎď
+DZDzdZdzǱǲǳ
+DŽDždŽdžǄǅǆ
+Đđ
+Ɖ
+Ɗ
+Ƌƌ
+Ðð
+EeÈÉÊËèéêëĒēĔĕĖėĘęĚěẸẹẺẻẼẽẾếỀềỂểỄễỆệ
+Ǝǝ
+Ə
+Ɛ
+Ff
+Ƒƒ
+GgĜĝĞğĠġĢģǦǧǴǵ
+Ǥǥ
+Ɠ
+Ɣ
+Ƣƣ
+HhĤĥ
+ƕǶ
+Ħħ
+IiÌÍÎÏìíîïĨĩĪīĬĭĮįİǏǐỈỉỊị
+IJIjiJijĲĳ
+ı
+Ɨ
+Ɩ
+JjĴĵǰ
+KkĶķǨǩ
+Ƙƙ
+LlĹĺĻļĽľ
+Ŀŀ
+LLLllLll
+LJLjlJljǇǈǉ
+Łł
+ƚ
+ƛ
+Mm
+NnÑñŃńŅņŇňǸǹ
+NJNjnJnjǊǋǌ
+Ɲ
+ƞ
+Ŋŋ
+OoÒÓÔÕÖòóôõöŌōŎŏŐőƠơǑǒǪǫǬǭỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợ
+OEOeoEoeŒœ
+ØøǾǿ
+Ɔ
+Ɵ
+Pp
+Ƥƥ
+Qq
+ĸ
+RrŔŕŖŗŘř
+RRRrrRrr
+Ʀ
+SsŚśŜŝŞşſ
+SSSssSssß
+Šš
+Ʃ
+ƪ
+TtŢţŤť
+ƾ
+Ŧŧ
+ƫ
+Ƭƭ
+Ʈ
+UuÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜỤụỦủỨứỪừỬửỮữỰự
+Ɯ
+Ʊ
+Vv
+Ʋ
+WwŴŵ
+Xx
+YyÝýÿŶŷŸ
+Ƴƴ
+ZzŹźŻż
+ƍ
+Žž
+Ƶƶ
+ƷǮǯ
+Ƹƹ
+ƺ
+Þþ
+ƿǷ
+ƻ
+Ƨƨ
+Ƽƽ
+Ƅƅ
+ŉ
+ǀ
+ǁ
+ǂ
+ǃ
 SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_croatian_ci;
 GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '')
 ÷

=== modified file 'mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result'
--- mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result	2013-11-06 13:55:22 +0000
+++ mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result	2013-11-08 19:08:26 +0000
@@ -78,8 +78,9 @@ utf8_esperanto_ci	utf8	209		#	#
 utf8_hungarian_ci	utf8	210		#	#
 utf8_sinhala_ci	utf8	211		#	#
 utf8_german2_ci	utf8	212		#	#
-utf8_croatian_ci	utf8	213		#	#
+utf8_croatian_mysql561_ci	utf8	213		#	#
 utf8_general_mysql500_ci	utf8	223		#	#
+utf8_croatian_ci	utf8	576		#	#
 ucs2_general_ci	ucs2	35	Yes	#	#
 ucs2_bin	ucs2	90		#	#
 ucs2_unicode_ci	ucs2	128		#	#
@@ -103,8 +104,9 @@ ucs2_esperanto_ci	ucs2	145		#	#
 ucs2_hungarian_ci	ucs2	146		#	#
 ucs2_sinhala_ci	ucs2	147		#	#
 ucs2_german2_ci	ucs2	148		#	#
-ucs2_croatian_ci	ucs2	149		#	#
+ucs2_croatian_mysql561_ci	ucs2	149		#	#
 ucs2_general_mysql500_ci	ucs2	159		#	#
+ucs2_croatian_ci	ucs2	640		#	#
 cp866_general_ci	cp866	36	Yes	#	#
 cp866_bin	cp866	68		#	#
 keybcs2_general_ci	keybcs2	37	Yes	#	#
@@ -142,7 +144,8 @@ utf8mb4_esperanto_ci	utf8mb4	241		#	#
 utf8mb4_hungarian_ci	utf8mb4	242		#	#
 utf8mb4_sinhala_ci	utf8mb4	243		#	#
 utf8mb4_german2_ci	utf8mb4	244		#	#
-utf8mb4_croatian_ci	utf8mb4	245		#	#
+utf8mb4_croatian_mysql561_ci	utf8mb4	245		#	#
+utf8mb4_croatian_ci	utf8mb4	608		#	#
 cp1251_bulgarian_ci	cp1251	14		#	#
 cp1251_ukrainian_ci	cp1251	23		#	#
 cp1251_bin	cp1251	50		#	#
@@ -171,7 +174,8 @@ utf16_esperanto_ci	utf16	118		#	#
 utf16_hungarian_ci	utf16	119		#	#
 utf16_sinhala_ci	utf16	120		#	#
 utf16_german2_ci	utf16	121		#	#
-utf16_croatian_ci	utf16	215		#	#
+utf16_croatian_mysql561_ci	utf16	122		#	#
+utf16_croatian_ci	utf16	672		#	#
 utf16le_general_ci	utf16le	56	Yes	#	#
 utf16le_bin	utf16le	62		#	#
 cp1256_general_ci	cp1256	57	Yes	#	#
@@ -202,7 +206,8 @@ utf32_esperanto_ci	utf32	177		#	#
 utf32_hungarian_ci	utf32	178		#	#
 utf32_sinhala_ci	utf32	179		#	#
 utf32_german2_ci	utf32	180		#	#
-utf32_croatian_ci	utf32	214		#	#
+utf32_croatian_mysql561_ci	utf32	181		#	#
+utf32_croatian_ci	utf32	736		#	#
 binary	binary	63	Yes	#	#
 geostd8_general_ci	geostd8	92	Yes	#	#
 geostd8_bin	geostd8	93		#	#

=== modified file 'mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result'
--- mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result	2013-11-06 13:55:22 +0000
+++ mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result	2013-11-08 19:08:26 +0000
@@ -78,8 +78,9 @@ utf8_esperanto_ci	utf8	209		#	#
 utf8_hungarian_ci	utf8	210		#	#
 utf8_sinhala_ci	utf8	211		#	#
 utf8_german2_ci	utf8	212		#	#
-utf8_croatian_ci	utf8	213		#	#
+utf8_croatian_mysql561_ci	utf8	213		#	#
 utf8_general_mysql500_ci	utf8	223		#	#
+utf8_croatian_ci	utf8	576		#	#
 ucs2_general_ci	ucs2	35	Yes	#	#
 ucs2_bin	ucs2	90		#	#
 ucs2_unicode_ci	ucs2	128		#	#
@@ -103,8 +104,9 @@ ucs2_esperanto_ci	ucs2	145		#	#
 ucs2_hungarian_ci	ucs2	146		#	#
 ucs2_sinhala_ci	ucs2	147		#	#
 ucs2_german2_ci	ucs2	148		#	#
-ucs2_croatian_ci	ucs2	149		#	#
+ucs2_croatian_mysql561_ci	ucs2	149		#	#
 ucs2_general_mysql500_ci	ucs2	159		#	#
+ucs2_croatian_ci	ucs2	640		#	#
 cp866_general_ci	cp866	36	Yes	#	#
 cp866_bin	cp866	68		#	#
 keybcs2_general_ci	keybcs2	37	Yes	#	#
@@ -142,7 +144,8 @@ utf8mb4_esperanto_ci	utf8mb4	241		#	#
 utf8mb4_hungarian_ci	utf8mb4	242		#	#
 utf8mb4_sinhala_ci	utf8mb4	243		#	#
 utf8mb4_german2_ci	utf8mb4	244		#	#
-utf8mb4_croatian_ci	utf8mb4	245		#	#
+utf8mb4_croatian_mysql561_ci	utf8mb4	245		#	#
+utf8mb4_croatian_ci	utf8mb4	608		#	#
 cp1251_bulgarian_ci	cp1251	14		#	#
 cp1251_ukrainian_ci	cp1251	23		#	#
 cp1251_bin	cp1251	50		#	#
@@ -171,7 +174,8 @@ utf16_esperanto_ci	utf16	118		#	#
 utf16_hungarian_ci	utf16	119		#	#
 utf16_sinhala_ci	utf16	120		#	#
 utf16_german2_ci	utf16	121		#	#
-utf16_croatian_ci	utf16	215		#	#
+utf16_croatian_mysql561_ci	utf16	122		#	#
+utf16_croatian_ci	utf16	672		#	#
 utf16le_general_ci	utf16le	56	Yes	#	#
 utf16le_bin	utf16le	62		#	#
 cp1256_general_ci	cp1256	57	Yes	#	#
@@ -202,7 +206,8 @@ utf32_esperanto_ci	utf32	177		#	#
 utf32_hungarian_ci	utf32	178		#	#
 utf32_sinhala_ci	utf32	179		#	#
 utf32_german2_ci	utf32	180		#	#
-utf32_croatian_ci	utf32	214		#	#
+utf32_croatian_mysql561_ci	utf32	181		#	#
+utf32_croatian_ci	utf32	736		#	#
 binary	binary	63	Yes	#	#
 geostd8_general_ci	geostd8	92	Yes	#	#
 geostd8_bin	geostd8	93		#	#

=== modified file 'mysql-test/suite/innodb/r/innodb_ctype_ldml.result'
--- mysql-test/suite/innodb/r/innodb_ctype_ldml.result	2013-11-03 23:45:27 +0000
+++ mysql-test/suite/innodb/r/innodb_ctype_ldml.result	2013-11-08 19:08:26 +0000
@@ -388,7 +388,7 @@ select "foo" = "foo " collate latin1_tes
 "foo" = "foo " collate latin1_test
 1
 The following tests check that two-byte collation IDs work
-select * from information_schema.collations where id>256 order by id;
+select * from information_schema.collations where id>256 and is_compiled<>'Yes' order by id;
 COLLATION_NAME	CHARACTER_SET_NAME	ID	IS_DEFAULT	IS_COMPILED	SORTLEN
 utf8mb4_test_ci	utf8mb4	326			8
 utf16_test_ci	utf16	327			8

=== modified file 'mysql-test/suite/innodb/t/innodb_ctype_ldml.test'
--- mysql-test/suite/innodb/t/innodb_ctype_ldml.test	2013-10-23 16:25:52 +0000
+++ mysql-test/suite/innodb/t/innodb_ctype_ldml.test	2013-11-08 19:08:26 +0000
@@ -170,7 +170,7 @@ select "foo" = "foo " collate latin1_tes
 # The file ../std-data/Index.xml has a number of collations with high IDs.
 
 # Test that the "ID" column in I_S and SHOW queries can handle two bytes
-select * from information_schema.collations where id>256 order by id;
+select * from information_schema.collations where id>256 and is_compiled<>'Yes' order by id;
 show collation like '%test%';
 
 # Test that two-byte collation ID is correctly transfered to the client side.

=== modified file 'mysql-test/t/ctype_ldml.test'
--- mysql-test/t/ctype_ldml.test	2013-10-31 10:24:24 +0000
+++ mysql-test/t/ctype_ldml.test	2013-11-08 19:08:26 +0000
@@ -152,7 +152,7 @@ select "foo" = "foo " collate latin1_tes
 # The file ../std-data/Index.xml has a number of collations with high IDs.
 
 # Test that the "ID" column in I_S and SHOW queries can handle two bytes
-select * from information_schema.collations where id>256 order by id;
+select * from information_schema.collations where id>256 and is_compiled<>'Yes' order by id;
 show collation like '%test%';
 
 # Test that two-byte collation ID is correctly transfered to the client side.

=== modified file 'mysql-test/t/ctype_uca.test'
--- mysql-test/t/ctype_uca.test	2013-10-28 08:17:46 +0000
+++ mysql-test/t/ctype_uca.test	2013-11-08 19:08:26 +0000
@@ -65,6 +65,7 @@ select group_concat(c1 order by c1) from
 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_roman_ci;
 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_esperanto_ci;
 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_hungarian_ci;
+select group_concat(c1 order by c1) from t1 group by c1 collate utf8_croatian_mysql561_ci;
 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_croatian_ci;
 select group_concat(c1 order by c1) from t1 group by c1 collate utf8_german2_ci;
 
@@ -87,6 +88,7 @@ SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM
 SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_roman_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_esperanto_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_hungarian_ci;
+SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_croatian_mysql561_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_croatian_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1) FROM t1 GROUP BY c1 COLLATE ucs2_german2_ci;
 
@@ -485,7 +487,7 @@ SET collation_connection=ucs2_czech_ci;
 --source include/ctype_czech.inc
 --source include/ctype_like_ignorable.inc
 
-create table t1 (a int, c1 varchar(200) collate utf8_croatian_ci, key (c1));
+create table t1 (a int, c1 varchar(200) collate utf8_croatian_mysql561_ci, key (c1));
 insert into t1 values (1,'=> DZ'),(2,'=> Dz'),(3,'=> dz'),(4,'=> dZ');
 insert into t1 values (5,'=> DŽ'),(6,'=> Dž'),(7,'=> dž'),(8,'=> dŽ');
 insert into t1 values (9,'=> ǆ'),(10,'=> Ǆ');

=== modified file 'mysql-test/t/ctype_utf16_uca.test'
--- mysql-test/t/ctype_utf16_uca.test	2013-10-28 08:17:46 +0000
+++ mysql-test/t/ctype_utf16_uca.test	2013-11-08 19:08:26 +0000
@@ -52,6 +52,7 @@ select group_concat(c1 order by binary c
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_roman_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_esperanto_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_hungarian_ci;
+select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_croatian_mysql561_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_croatian_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf16_german2_ci;
 

=== modified file 'mysql-test/t/ctype_utf32_uca.test'
--- mysql-test/t/ctype_utf32_uca.test	2013-10-28 08:17:46 +0000
+++ mysql-test/t/ctype_utf32_uca.test	2013-11-08 19:08:26 +0000
@@ -53,6 +53,7 @@ select group_concat(c1 order by binary c
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_roman_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_esperanto_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_hungarian_ci;
+select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_croatian_mysql561_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_croatian_ci;
 select group_concat(c1 order by binary c1 separator '') from t1 group by c1 collate utf32_german2_ci;
 

=== modified file 'mysql-test/t/ctype_utf8mb4_uca.test'
--- mysql-test/t/ctype_utf8mb4_uca.test	2013-10-25 16:13:54 +0000
+++ mysql-test/t/ctype_utf8mb4_uca.test	2013-11-08 19:08:26 +0000
@@ -32,6 +32,7 @@ SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPAR
 SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_roman_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_esperanto_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_hungarian_ci;
+SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_croatian_mysql561_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_croatian_ci;
 SELECT GROUP_CONCAT(c1 ORDER BY c1 SEPARATOR '') FROM t1 GROUP BY c1 COLLATE utf8mb4_german2_ci;
 

=== modified file 'mysys/charset-def.c'
--- mysys/charset-def.c	2013-10-02 11:04:07 +0000
+++ mysys/charset-def.c	2013-11-08 19:08:26 +0000
@@ -43,6 +43,7 @@ extern struct charset_info_st my_charset
 extern struct charset_info_st my_charset_ucs2_persian_uca_ci;
 extern struct charset_info_st my_charset_ucs2_esperanto_uca_ci;
 extern struct charset_info_st my_charset_ucs2_hungarian_uca_ci;
+extern struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci;
 extern struct charset_info_st my_charset_ucs2_sinhala_uca_ci;
 extern struct charset_info_st my_charset_ucs2_croatian_uca_ci;
 #endif
@@ -68,6 +69,7 @@ extern struct charset_info_st my_charset
 extern struct charset_info_st my_charset_utf32_persian_uca_ci;
 extern struct charset_info_st my_charset_utf32_esperanto_uca_ci;
 extern struct charset_info_st my_charset_utf32_hungarian_uca_ci;
+extern struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci;
 extern struct charset_info_st my_charset_utf32_sinhala_uca_ci;
 extern struct charset_info_st my_charset_utf32_croatian_uca_ci;
 #endif /* HAVE_CHARSET_utf32 */
@@ -93,6 +95,7 @@ extern struct charset_info_st my_charset
 extern struct charset_info_st my_charset_utf16_persian_uca_ci;
 extern struct charset_info_st my_charset_utf16_esperanto_uca_ci;
 extern struct charset_info_st my_charset_utf16_hungarian_uca_ci;
+extern struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci;
 extern struct charset_info_st my_charset_utf16_sinhala_uca_ci;
 extern struct charset_info_st my_charset_utf16_croatian_uca_ci;
 #endif  /* HAVE_CHARSET_utf16 */
@@ -118,6 +121,7 @@ extern struct charset_info_st my_charset
 extern struct charset_info_st my_charset_utf8_persian_uca_ci;
 extern struct charset_info_st my_charset_utf8_esperanto_uca_ci;
 extern struct charset_info_st my_charset_utf8_hungarian_uca_ci;
+extern struct charset_info_st my_charset_utf8_croatian_mysql561_uca_ci;
 extern struct charset_info_st my_charset_utf8_sinhala_uca_ci;
 extern struct charset_info_st my_charset_utf8_croatian_uca_ci;
 #ifdef HAVE_UTF8_GENERAL_CS
@@ -145,6 +149,7 @@ extern struct charset_info_st my_charset
 extern struct charset_info_st my_charset_utf8mb4_persian_uca_ci;
 extern struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci;
 extern struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci;
+extern struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci;
 extern struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci;
 extern struct charset_info_st my_charset_utf8mb4_croatian_uca_ci;
 #endif /* HAVE_CHARSET_utf8mb4 */
@@ -235,6 +240,7 @@ my_bool init_compiled_charsets(myf flags
   add_compiled_collation(&my_charset_ucs2_persian_uca_ci);
   add_compiled_collation(&my_charset_ucs2_esperanto_uca_ci);
   add_compiled_collation(&my_charset_ucs2_hungarian_uca_ci);
+  add_compiled_collation(&my_charset_ucs2_croatian_mysql561_uca_ci);
   add_compiled_collation(&my_charset_ucs2_sinhala_uca_ci);
   add_compiled_collation(&my_charset_ucs2_croatian_uca_ci);
 #endif
@@ -273,6 +279,7 @@ my_bool init_compiled_charsets(myf flags
   add_compiled_collation(&my_charset_utf8_persian_uca_ci);
   add_compiled_collation(&my_charset_utf8_esperanto_uca_ci);
   add_compiled_collation(&my_charset_utf8_hungarian_uca_ci);
+  add_compiled_collation(&my_charset_utf8_croatian_mysql561_uca_ci);
   add_compiled_collation(&my_charset_utf8_sinhala_uca_ci);
   add_compiled_collation(&my_charset_utf8_croatian_uca_ci);
 #endif
@@ -303,6 +310,7 @@ my_bool init_compiled_charsets(myf flags
   add_compiled_collation(&my_charset_utf8mb4_persian_uca_ci);
   add_compiled_collation(&my_charset_utf8mb4_esperanto_uca_ci);
   add_compiled_collation(&my_charset_utf8mb4_hungarian_uca_ci);
+  add_compiled_collation(&my_charset_utf8mb4_croatian_mysql561_uca_ci);
   add_compiled_collation(&my_charset_utf8mb4_sinhala_uca_ci);
   add_compiled_collation(&my_charset_utf8mb4_croatian_uca_ci);
 #endif /* HAVE_UCA_COLLATIONS  */
@@ -335,6 +343,7 @@ my_bool init_compiled_charsets(myf flags
   add_compiled_collation(&my_charset_utf16_persian_uca_ci);
   add_compiled_collation(&my_charset_utf16_esperanto_uca_ci);
   add_compiled_collation(&my_charset_utf16_hungarian_uca_ci);
+  add_compiled_collation(&my_charset_utf16_croatian_mysql561_uca_ci);
   add_compiled_collation(&my_charset_utf16_sinhala_uca_ci);
   add_compiled_collation(&my_charset_utf16_croatian_uca_ci);
 #endif /* HAVE_UCA_COLLATIONS */
@@ -365,6 +374,7 @@ my_bool init_compiled_charsets(myf flags
   add_compiled_collation(&my_charset_utf32_persian_uca_ci);
   add_compiled_collation(&my_charset_utf32_esperanto_uca_ci);
   add_compiled_collation(&my_charset_utf32_hungarian_uca_ci);
+  add_compiled_collation(&my_charset_utf32_croatian_mysql561_uca_ci);
   add_compiled_collation(&my_charset_utf32_sinhala_uca_ci);
   add_compiled_collation(&my_charset_utf32_croatian_uca_ci);
 #endif /* HAVE_UCA_COLLATIONS */

=== modified file 'mysys/charset.c'
--- mysys/charset.c	2013-10-23 16:25:52 +0000
+++ mysys/charset.c	2013-11-08 19:08:26 +0000
@@ -648,19 +648,19 @@ get_internal_charset(MY_CHARSET_LOADER *
 
 CHARSET_INFO *get_charset(uint cs_number, myf flags)
 {
-  CHARSET_INFO *cs;
-  MY_CHARSET_LOADER loader;
+  CHARSET_INFO *cs= NULL;
 
   if (cs_number == default_charset_info->number)
     return default_charset_info;
 
   my_pthread_once(&charsets_initialized, init_available_charsets);
- 
-  if (cs_number >= array_elements(all_charsets)) 
-    return NULL;
 
-  my_charset_loader_init_mysys(&loader);
-  cs= get_internal_charset(&loader, cs_number, flags);
+  if (cs_number < array_elements(all_charsets))
+  {
+    MY_CHARSET_LOADER loader;
+    my_charset_loader_init_mysys(&loader);
+    cs= get_internal_charset(&loader, cs_number, flags);
+  }
 
   if (!cs && (flags & MY_WME))
   {

=== modified file 'sql/handler.cc'
--- sql/handler.cc	2013-11-04 20:47:54 +0000
+++ sql/handler.cc	2013-11-08 19:10:05 +0000
@@ -3534,6 +3534,39 @@ bool handler::get_error_message(int erro
   return FALSE;
 }
 
+/**
+   Check if a collation has changed number
+
+   @param mysql_version
+   @param current collation number
+
+   @retval new collation number (same as current collation number of no change)
+*/
+
+uint upgrade_collation(ulong mysql_version, uint cs_number)
+{
+  if (mysql_version >= 50300 && mysql_version <= 50399)
+  {
+    switch (cs_number) {
+    case 149: return MY_PAGE2_COLLATION_ID_UCS2;   // ucs2_crotian_ci
+    case 213: return MY_PAGE2_COLLATION_ID_UTF8;   // utf8_crotian_ci
+    }
+  }
+  if ((mysql_version >= 50500 && mysql_version <= 50599) ||
+      (mysql_version >= 100001 && mysql_version <= 100004))
+      // TODO: change 100004 to 100005 when MYSQL_VERSION_PATCH is changed to 6
+  {
+    switch (cs_number) {
+    case 149: return MY_PAGE2_COLLATION_ID_UCS2;   // ucs2_crotian_ci
+    case 213: return MY_PAGE2_COLLATION_ID_UTF8;   // utf8_crotian_ci
+    case 214: return MY_PAGE2_COLLATION_ID_UTF32;  // utf32_croatian_ci
+    case 215: return MY_PAGE2_COLLATION_ID_UTF16;  // utf16_croatian_ci
+    case 245: return MY_PAGE2_COLLATION_ID_UTF8MB4;// utf8mb4_croatian_ci
+    }
+  }
+  return cs_number;
+}
+
 
 /**
   Check for incompatible collation changes.
@@ -3575,9 +3608,29 @@ int handler::check_collation_compatibili
              (cs_number == 33 || /* utf8_general_ci - bug #27877 */
               cs_number == 35))) /* ucs2_general_ci - bug #27877 */
           return HA_ADMIN_NEEDS_UPGRADE;
-      }  
-    }  
-  }  
+      }
+    }
+  }
+
+  if (mysql_version < 100006)
+  {
+    /*
+      Check if we are using collations from that has changed numbering.
+      This happend at least between MariaDB 5.5 and MariaDB 10.0 as MySQL
+      added conflicting numbers.
+    */
+  
+    if (table->s->table_charset->number !=
+        upgrade_collation(mysql_version, table->s->table_charset->number))
+      return HA_ADMIN_NEEDS_ALTER;        
+    
+    for (Field **field= table->field; (*field); field++)
+    {
+      if ((*field)->charset()->number !=
+          upgrade_collation(mysql_version, (*field)->charset()->number))
+        return HA_ADMIN_NEEDS_ALTER;
+    }
+  }
   return 0;
 }
 
@@ -3588,6 +3641,9 @@ int handler::ha_check_for_upgrade(HA_CHE
   KEY *keyinfo, *keyend;
   KEY_PART_INFO *keypart, *keypartend;
 
+  if (table->s->incompatible_version)
+    return HA_ADMIN_NEEDS_ALTER;
+
   if (!table->s->mysql_version)
   {
     /* check for blob-in-key error */

=== modified file 'sql/handler.h'
--- sql/handler.h	2013-11-04 20:47:54 +0000
+++ sql/handler.h	2013-11-08 19:08:26 +0000
@@ -4055,4 +4055,5 @@ inline const char *table_case_name(HA_CR
 
 void print_keydup_error(TABLE *table, KEY *key, const char *msg, myf errflag);
 void print_keydup_error(TABLE *table, KEY *key, myf errflag);
+uint upgrade_collation(ulong mysql_version, uint cs_number);
 #endif

=== modified file 'sql/sql_table.cc'
--- sql/sql_table.cc	2013-11-04 20:47:54 +0000
+++ sql/sql_table.cc	2013-11-08 19:08:26 +0000
@@ -7732,8 +7732,11 @@ bool mysql_alter_table(THD *thd,char *ne
 
   DEBUG_SYNC(thd, "alter_table_before_open_tables");
   uint tables_opened;
+
+  thd->open_options|= HA_OPEN_FOR_ALTER;
   bool error= open_tables(thd, &table_list, &tables_opened, 0,
                           &alter_prelocking_strategy);
+  thd->open_options&= ~HA_OPEN_FOR_ALTER;
 
   DEBUG_SYNC(thd, "alter_opened_table");
 

=== modified file 'sql/table.cc'
--- sql/table.cc	2013-09-21 08:14:42 +0000
+++ sql/table.cc	2013-11-08 19:09:06 +0000
@@ -1009,12 +1009,18 @@ int TABLE_SHARE::init_from_binary_frm_im
   share->null_field_first= 0;
   if (!frm_image[32])				// New frm file in 3.23
   {
+    uint cs_org= (((uint) frm_image[41]) << 8) + (uint) frm_image[38];
+    uint cs_new= upgrade_collation(share->mysql_version, cs_org);
+    if (cs_org != cs_new)
+      share->incompatible_version|= HA_CREATE_USED_CHARSET;
+    
     share->avg_row_length= uint4korr(frm_image+34);
     share->transactional= (ha_choice) (frm_image[39] & 3);
     share->page_checksum= (ha_choice) ((frm_image[39] >> 2) & 3);
     share->row_type= (enum row_type) frm_image[40];
-    share->table_charset= get_charset((((uint) frm_image[41]) << 8) + 
-                                        (uint) frm_image[38], MYF(0));
+
+    if (!(share->table_charset= get_charset(cs_new, MYF(MY_WME))))
+      goto err;
     share->null_field_first= 1;
     share->stats_sample_pages= uint2korr(frm_image+42);
     share->stats_auto_recalc= (enum_stats_auto_recalc)(frm_image[44]);
@@ -1032,6 +1038,7 @@ int TABLE_SHARE::init_from_binary_frm_im
     }
     share->table_charset= default_charset_info;
   }
+
   share->db_record_offset= 1;
   share->max_rows= uint4korr(frm_image+18);
   share->min_rows= uint4korr(frm_image+22);
@@ -1418,16 +1425,19 @@ int TABLE_SHARE::init_from_binary_frm_im
       }
       else
       {
-        uint csid= strpos[14] + (((uint) strpos[11]) << 8);
-        if (!csid)
+        uint cs_org= strpos[14] + (((uint) strpos[11]) << 8);
+        uint cs_new= upgrade_collation(share->mysql_version, cs_org);
+        if (cs_org != cs_new)
+          share->incompatible_version|= HA_CREATE_USED_CHARSET;
+        if (!cs_new)
           charset= &my_charset_bin;
-        else if (!(charset= get_charset(csid, MYF(0))))
+        else if (!(charset= get_charset(cs_new, MYF(0))))
         {
-          const char *csname= get_charset_name((uint) csid);
+          const char *csname= get_charset_name((uint) cs_new);
           char tmp[10];
           if (!csname || csname[0] =='?')
           {
-            my_snprintf(tmp, sizeof(tmp), "#%d", csid);
+            my_snprintf(tmp, sizeof(tmp), "#%d", cs_new);
             csname= tmp;
           }
           my_printf_error(ER_UNKNOWN_COLLATION,
@@ -2489,6 +2499,13 @@ enum open_frm_error open_table_from_shar
   outparam->db_stat= db_stat;
   outparam->write_row_record= NULL;
 
+  if (share->incompatible_version &&
+      !(ha_open_flags & (HA_OPEN_FOR_ALTER | HA_OPEN_FOR_REPAIR)))
+  {
+    /* one needs to run mysql_upgrade on the table */
+    error= OPEN_FRM_NEEDS_REBUILD;
+    goto err;
+  }
   init_sql_alloc(&outparam->mem_root, TABLE_ALLOC_BLOCK_SIZE, 0, MYF(0));
 
   if (outparam->alias.copy(alias, strlen(alias), table_alias_charset))
@@ -3012,6 +3029,11 @@ void open_table_error(TABLE_SHARE *share
     strxmov(buff, share->normalized_path.str, reg_ext, NullS);
     my_error(ER_ERROR_ON_READ, errortype, buff, db_errno);
     break;
+  case OPEN_FRM_NEEDS_REBUILD:
+    strxnmov(buff, sizeof(buff)-1,
+             share->db.str, ".", share->table_name.str, NullS);
+    my_error(ER_TABLE_NEEDS_REBUILD, errortype, buff);
+    break;
   }
   DBUG_VOID_RETURN;
 } /* open_table_error */

=== modified file 'sql/table.h'
--- sql/table.h	2013-10-29 14:08:44 +0000
+++ sql/table.h	2013-11-08 19:09:06 +0000
@@ -560,7 +560,8 @@ enum open_frm_error {
   OPEN_FRM_DISCOVER,
   OPEN_FRM_ERROR_ALREADY_ISSUED,
   OPEN_FRM_NOT_A_VIEW,
-  OPEN_FRM_NOT_A_TABLE
+  OPEN_FRM_NOT_A_TABLE,
+  OPEN_FRM_NEEDS_REBUILD
 };
 
 /**
@@ -734,6 +735,13 @@ struct TABLE_SHARE
   ulong table_map_id;                   /* for row-based replication */
 
   /*
+    Things that are incompatible between the stored version and the
+    current version. This is a set of HA_CREATE... bits that can be used
+    to modify create_info->used_fields for ALTER TABLE.
+  */
+  ulong incompatible_version;
+
+  /*
     Cache for row-based replication table share checks that does not
     need to be repeated. Possible values are: -1 when cache value is
     not calculated yet, 0 when table *shall not* be replicated, 1 when

=== modified file 'storage/connect/ha_connect.cc'
--- storage/connect/ha_connect.cc	2013-10-27 13:32:54 +0000
+++ storage/connect/ha_connect.cc	2013-11-08 19:09:18 +0000
@@ -3765,7 +3765,8 @@ static int connect_assisted_discovery(ha
 #if defined(WIN32)
   char       *nsp= NULL, *cls= NULL;
 #endif   // WIN32
-  int         port= 0, hdr= 0, mxr= 0, rc= 0, cop= 0;
+  int         port= 0, hdr= 0, mxr= 0, rc= 0;
+  int         cop __attribute__((unused)) = 0;
   uint        tm, fnc= FNC_NO, supfnc= (FNC_NO | FNC_COL);
   bool        bif, ok= false, dbf= false;
   TABTYPE     ttp= TAB_UNDEF;

=== modified file 'strings/ctype-uca.c'
--- strings/ctype-uca.c	2013-10-31 10:24:24 +0000
+++ strings/ctype-uca.c	2013-11-08 19:08:26 +0000
@@ -6775,6 +6775,17 @@ static const char hungarian[]=
     "&O < \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150"
     "&U < \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170";
 
+
+static const char croatian_mysql561[]=
+    "&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106"
+    "&D < d\\u017E = \\u01C6 <<< d\\u017D <<< D\\u017E = \\u01C5 <<< D\\u017D = \\u01C4"
+    "   < \\u0111 <<< \\u0110"
+    "&L < lj = \\u01C9  <<< lJ <<< Lj = \\u01C8 <<< LJ = \\u01C7"
+    "&N < nj = \\u01CC  <<< nJ <<< Nj = \\u01CB <<< NJ = \\u01CA"
+    "&S < \\u0161 <<< \\u0160"
+    "&Z < \\u017E <<< \\u017D";
+
+
 /*
   SCCII Part 1 : Collation Sequence (SLS1134)
   2006/11/24
@@ -6804,7 +6815,22 @@ static const char sinhala[]=
 #endif
 
 
-static const char croatian[]=
+/*
+  Croatian that was added into MariaDB-5.3 uses
+  slightly different rules comparing to the MySQL-5.6 version.
+  The difference is in the following combinations of 
+  a small letter followed by a capital letter:
+  - U+0064 U+017D (LATIN SMALL LETTER D + LATIN CAPITAL LETTER Z WITH CARON)
+  - U+006C U+004A (LATIN SMALL LETTER L + LATIN CAPITAL LETTER J)
+  - U+006E U+004A (LATIN SMALL LETTER N + LATIN CAPITAL LETTER J)
+  MySQL consider these pairs as contractions and sorts near their
+  "CAPITAL + SMALL" and "SMALL + SMALL" counterparts.
+  MariaDB consider these pairs as individual characters.
+  Note, the MariaDB version is closer to CLDR:
+  http://unicode.org/cldr/trac/browser/trunk/common/collation/hr.xml?rev=9244
+  (the latest hr.xml revision as of 2013-11-06).
+*/
+static const char croatian_mariadb[]=
 "&C <  \\u010D <<< \\u010C < \\u0107 <<< \\u0106 "
 "&D <  d\\u017E <<< \\u01C6 <<< D\\u017E <<< \\u01C5 <<< D\\u017D <<< \\u01C4 "
 "   <  \\u0111 <<< \\u0110 "
@@ -10273,14 +10299,47 @@ struct charset_info_st my_charset_ucs2_g
     &my_collation_ucs2_uca_handler
 };
 
-struct charset_info_st my_charset_ucs2_croatian_uca_ci=
+struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci=
 {
     149,0,0,             /* number       */
     MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
     "ucs2",              /* cs name    */
-    "ucs2_croatian_ci",  /* name         */
+    "ucs2_croatian_mysql561_ci", /* name  */
     "",                  /* comment      */
-    croatian,            /* tailoring    */
+    croatian_mysql561,   /* tailoring    */
+    NULL,                /* ctype        */
+    NULL,                /* to_lower     */
+    NULL,                /* to_upper     */
+    NULL,                /* sort_order   */
+    NULL,                /* uca          */
+    NULL,                /* tab_to_uni   */
+    NULL,                /* tab_from_uni */
+    &my_unicase_default, /* caseinfo     */
+    NULL,                /* state_map    */
+    NULL,                /* ident_map    */
+    8,                   /* strxfrm_multiply */
+    1,                   /* caseup_multiply  */
+    1,                   /* casedn_multiply  */
+    2,                   /* mbminlen     */
+    2,                   /* mbmaxlen     */
+    9,                   /* min_sort_char */
+    0xFFFF,              /* max_sort_char */
+    ' ',                 /* pad char      */
+    0,                   /* escape_with_backslash_is_dangerous */
+    1,                   /* levels_for_order   */
+    &my_charset_ucs2_handler,
+    &my_collation_ucs2_uca_handler
+};
+
+
+struct charset_info_st my_charset_ucs2_croatian_uca_ci=
+{
+    MY_PAGE2_COLLATION_ID_UCS2,0,0, /* number */
+    MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+    "ucs2",              /* cs name    */
+    "ucs2_croatian_ci",  /* name  */
+    "",                  /* comment      */
+    croatian_mariadb,    /* tailoring    */
     NULL,                /* ctype        */
     NULL,                /* to_lower     */
     NULL,                /* to_upper     */
@@ -11030,14 +11089,47 @@ struct charset_info_st my_charset_utf8_g
     &my_collation_any_uca_handler
 };
 
-struct charset_info_st my_charset_utf8_croatian_uca_ci=
+struct charset_info_st my_charset_utf8_croatian_mysql561_uca_ci=
 {
     213,0,0,             /* number       */
     MY_CS_UTF8MB3_UCA_FLAGS,/* flags    */
     MY_UTF8MB3,          /* cs name      */
+    MY_UTF8MB3 "_croatian_mysql561_ci",/* name */
+    "",                  /* comment      */
+    croatian_mysql561,   /* tailoring    */
+    ctype_utf8,          /* ctype        */
+    NULL,                /* to_lower     */
+    NULL,                /* to_upper     */
+    NULL,                /* sort_order   */
+    NULL,                /* uca          */
+    NULL,                /* tab_to_uni   */
+    NULL,                /* tab_from_uni */
+    &my_unicase_default, /* caseinfo     */
+    NULL,                /* state_map    */
+    NULL,                /* ident_map    */
+    8,                   /* strxfrm_multiply */
+    1,                   /* caseup_multiply  */
+    1,                   /* casedn_multiply  */
+    1,                   /* mbminlen     */
+    3,                   /* mbmaxlen     */
+    9,                   /* min_sort_char */
+    0xFFFF,              /* max_sort_char */
+    ' ',                 /* pad char      */
+    0,                   /* escape_with_backslash_is_dangerous */
+    1,                   /* levels_for_order   */
+    &my_charset_utf8_handler,
+    &my_collation_any_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf8_croatian_uca_ci=
+{
+    MY_PAGE2_COLLATION_ID_UTF8,0,0, /* number */
+    MY_CS_UTF8MB3_UCA_FLAGS,/* flags    */
+    MY_UTF8MB3,          /* cs name      */
     MY_UTF8MB3 "_croatian_ci",/* name    */
     "",                  /* comment      */
-    croatian,            /* tailoring    */
+    croatian_mariadb,    /* tailoring    */
     ctype_utf8,          /* ctype        */
     NULL,                /* to_lower     */
     NULL,                /* to_upper     */
@@ -11746,14 +11838,46 @@ struct charset_info_st my_charset_utf8mb
     &my_collation_any_uca_handler
 };
 
-struct charset_info_st my_charset_utf8mb4_croatian_uca_ci=
+struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci=
 {
     245,0,0,            /* number       */
     MY_CS_UTF8MB4_UCA_FLAGS,/* state    */
     MY_UTF8MB4,         /* csname      */
-    MY_UTF8MB4 "_croatian_ci",/* name  */
+    MY_UTF8MB4 "_croatian_mysql561_ci",/* name */
+    "",                 /* comment      */
+    croatian_mysql561,  /* tailoring    */
+    ctype_utf8,         /* ctype        */
+    NULL,               /* to_lower     */
+    NULL,               /* to_upper     */
+    NULL,               /* sort_order   */
+    NULL,               /* uca          */
+    NULL,               /* tab_to_uni   */
+    NULL,               /* tab_from_uni */
+    &my_unicase_default,/* caseinfo     */
+    NULL,               /* state_map    */
+    NULL,               /* ident_map    */
+    8,                  /* strxfrm_multiply */
+    1,                  /* caseup_multiply  */
+    1,                  /* casedn_multiply  */
+    1,                  /* mbminlen     */
+    4,                  /* mbmaxlen     */
+    9,                  /* min_sort_char */
+    0xFFFF,             /* max_sort_char */
+    ' ',                /* pad char      */
+    0,                  /* escape_with_backslash_is_dangerous */
+    1,                  /* levels_for_order   */
+    &my_charset_utf8mb4_handler,
+    &my_collation_any_uca_handler
+};
+
+struct charset_info_st my_charset_utf8mb4_croatian_uca_ci=
+{
+    MY_PAGE2_COLLATION_ID_UTF8MB4,0,0, /* number */
+    MY_CS_UTF8MB4_UCA_FLAGS,/* state    */
+    MY_UTF8MB4,         /* csname      */
+    MY_UTF8MB4 "_croatian_ci",/* name   */
     "",                 /* comment      */
-    croatian,           /* tailoring    */
+    croatian_mariadb,   /* tailoring    */
     ctype_utf8,         /* ctype        */
     NULL,               /* to_lower     */
     NULL,               /* to_upper     */
@@ -12476,14 +12600,46 @@ struct charset_info_st my_charset_utf32_
     &my_collation_utf32_uca_handler
 };
 
+struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci=
+{
+    181,0,0,            /* number       */
+    MY_CS_UTF32_UCA_FLAGS,/* state      */
+    "utf32",            /* csname      */
+    "utf32_croatian_mysql561_ci", /* name */
+    "",                 /* comment      */
+    croatian_mysql561,  /* tailoring    */
+    NULL,               /* ctype        */
+    NULL,               /* to_lower     */
+    NULL,               /* to_upper     */
+    NULL,               /* sort_order   */
+    NULL,               /* uca          */
+    NULL,               /* tab_to_uni   */
+    NULL,               /* tab_from_uni */
+    &my_unicase_default,/* caseinfo     */
+    NULL,               /* state_map    */
+    NULL,               /* ident_map    */
+    8,                  /* strxfrm_multiply */
+    1,                  /* caseup_multiply  */
+    1,                  /* casedn_multiply  */
+    4,                  /* mbminlen     */
+    4,                  /* mbmaxlen     */
+    9,                  /* min_sort_char */
+    0xFFFF,             /* max_sort_char */
+    ' ',                /* pad char      */
+    0,                  /* escape_with_backslash_is_dangerous */
+    1,                  /* levels_for_order   */
+    &my_charset_utf32_handler,
+    &my_collation_utf32_uca_handler
+};
+
 struct charset_info_st my_charset_utf32_croatian_uca_ci=
 {
-    214,0,0,            /* number       */
+    MY_PAGE2_COLLATION_ID_UTF32,0,0, /* number */
     MY_CS_UTF32_UCA_FLAGS,/* state      */
     "utf32",            /* csname      */
     "utf32_croatian_ci", /* name        */
     "",                 /* comment      */
-    croatian,           /* tailoring    */
+    croatian_mariadb,   /* tailoring    */
     NULL,               /* ctype        */
     NULL,               /* to_lower     */
     NULL,               /* to_upper     */
@@ -13208,14 +13364,47 @@ struct charset_info_st my_charset_utf16_
 };
 
 
+struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci=
+{
+    122,0,0,           /* number       */
+    MY_CS_UTF16_UCA_FLAGS,/* state     */
+    "utf16",           /* cs name    */
+    "utf16_croatian_mysql561_ci",/* name */
+    "",                /* comment      */
+    croatian_mysql561,  /* tailoring    */
+    NULL,              /* ctype        */
+    NULL,              /* to_lower     */
+    NULL,              /* to_upper     */
+    NULL,              /* sort_order   */
+    NULL,              /* uca          */
+    NULL,              /* tab_to_uni   */
+    NULL,              /* tab_from_uni */
+    &my_unicase_default,/* caseinfo    */
+    NULL,              /* state_map    */
+    NULL,              /* ident_map    */
+    8,                 /* strxfrm_multiply */
+    1,                 /* caseup_multiply  */
+    1,                 /* casedn_multiply  */
+    2,                 /* mbminlen     */
+    4,                 /* mbmaxlen     */
+    9,                 /* min_sort_char */
+    0xFFFF,            /* max_sort_char */
+    ' ',               /* pad char      */
+    0,                 /* escape_with_backslash_is_dangerous */
+    1,                 /* levels_for_order   */
+    &my_charset_utf16_handler,
+    &my_collation_utf16_uca_handler
+};
+
+
 struct charset_info_st my_charset_utf16_croatian_uca_ci=
 {
-    215,0,0,           /* number       */
+    MY_PAGE2_COLLATION_ID_UTF16,0,0, /* number */
     MY_CS_UTF16_UCA_FLAGS,/* state     */
     "utf16",           /* cs name    */
-    "utf16_croatian_ci",/* name         */
+    "utf16_croatian_ci",/* name        */
     "",                /* comment      */
-    croatian,           /* tailoring    */
+    croatian_mariadb,  /* tailoring    */
     NULL,              /* ctype        */
     NULL,              /* to_lower     */
     NULL,              /* to_upper     */

