From: Roy Lyseng Date: December 10 2010 9:17am Subject: Re: bzr commit into mysql-trunk-bugfixing branch (bar:3409) WL#4616 List-Archive: http://lists.mysql.com/commits/126510 Message-Id: <4D01F01C.2020404@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Alexander! Nice work, approved! Thanks, Roy On 03.12.10 11.28, Alexander Barkov wrote: > #At file:///home/bar/mysql-bzr/mysql-trunk-bugfixing.w4616v2/ based on revid:bar@stripped > > 3409 Alexander Barkov 2010-12-03 > WL#4616 UTF16-LE > > added: > > @ mysql-test/include/ctype_heap.inc > @ mysql-test/r/ctype_utf16le.result > @ mysql-test/t/ctype_utf16le.test > Adding rests > > modified: > @ cmake/character_sets.cmake > Adding utf16le into the list of the possible default character sets > and into the list of complex character sets. > > @ include/m_ctype.h > Adding prototype for global variables > > @ mysql-test/r/ctype_utf16.result > Conversion from binary to utf16 did not work well. > Recording new results > > @ mysys/charset-def.c > Adding initialization for utf16le collations > > @ sql/item_func.cc > Error message about bad truncated number in CAST(string AS SIGNED) > did not work well (a missing part of "WL#751 Error message construction"). > > @ sql/sql_string.cc > Conversion from binary to utf16 and utf16le did not work well. > 0x61 was incorrectly extended to 0x00000061 instead of 0x0061. > > @ sql/sys_vars.cc > "SET collation_connection=utf16_general_ci" followed by > "SET NAMES 'latin1'" did not work well, > because get_charset_by_csname('latin1') was called with utf16 representation > of 'latin1' string. Fixing val_str() to val_str_ascii() to always call > get_charset_by_csname() with 8-bit representation. > Fixing the similar problem for get_charset_by_name(). > > @ strings/ctype-ucs2.c > - Changing my_strtoll10_mb2 from accessing memory directly using > s[0] and s[1] to mb_wc() method, to reuse the same code for utf16le. > - Adding useful macro for surrogate high/low first/last values. > - Adding macros MY_UTF16_WC2 and MY_UTF16_WC4, to make some utf16 > routines more readable. > - Fixing my_caseup_utf16, my_hash_sort_utf16, my_ismbchar_utf16, > my_strnncoll_utf16_bin, my_hash_sort_utf16_bin to use cs->cset->mb_wc > instead of dirrect call to my_utf16_uni, to reuse the code. > - Fixing my_hash_sort_utf16 and my_hash_sort_utf16_bin to use lengthsp() > instead of direct memory access to reuse the code for utf16le. > - Adding low level utf16le functions my_utf16le_uni, my_uni_utf16le, > my_lengthsp_utf16le. These are the only three new functions. > All other functions reuse utf16/ucs2 code. > - Adding utf16le structures. > > added: > mysql-test/include/ctype_heap.inc > mysql-test/r/ctype_utf16le.result > mysql-test/t/ctype_utf16le.test > modified: > cmake/character_sets.cmake > include/m_ctype.h > mysql-test/r/ctype_utf16.result > mysys/charset-def.c > sql/item_func.cc > sql/sql_string.cc > sql/sys_vars.cc > strings/ctype-ucs2.c