diff options
-rwxr-xr-x | BUILD/compile-pentium-debug-max | 2 | ||||
-rw-r--r-- | client/mysql.cc | 3 | ||||
-rw-r--r-- | config/ac-macros/character_sets.m4 | 13 | ||||
-rw-r--r-- | mysql-test/r/client_xml.result | 12 | ||||
-rw-r--r-- | strings/ctype-utf8.c | 7 |
5 files changed, 28 insertions, 9 deletions
diff --git a/BUILD/compile-pentium-debug-max b/BUILD/compile-pentium-debug-max index 7a11ad24c44..a69513ac6bb 100755 --- a/BUILD/compile-pentium-debug-max +++ b/BUILD/compile-pentium-debug-max @@ -6,6 +6,6 @@ path=`dirname $0` extra_flags="$pentium_cflags $debug_cflags $max_cflags" c_warnings="$c_warnings $debug_extra_warnings" cxx_warnings="$cxx_warnings $debug_extra_warnings" -extra_configs="$pentium_configs $debug_configs $max_configs" +extra_configs="$pentium_configs $debug_configs $max_configs --with-experimental-collations" . "$path/FINISH.sh" diff --git a/client/mysql.cc b/client/mysql.cc index 2faa2f31a50..510420fdf3d 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -2529,7 +2529,8 @@ print_table_data_xml(MYSQL_RES *result) tee_fputs("<?xml version=\"1.0\"?>\n\n<resultset statement=\"", PAGER); xmlencode_print(glob_buffer.ptr(), (int)strlen(glob_buffer.ptr())); - tee_fputs("\">", PAGER); + tee_fputs("\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">", + PAGER); fields = mysql_fetch_fields(result); while ((cur = mysql_fetch_row(result))) diff --git a/config/ac-macros/character_sets.m4 b/config/ac-macros/character_sets.m4 index 1ab6e7dd780..8c3e8ca73b7 100644 --- a/config/ac-macros/character_sets.m4 +++ b/config/ac-macros/character_sets.m4 @@ -429,3 +429,16 @@ then else AC_MSG_RESULT(no) fi + + +# Shall we build experimental collations +AC_ARG_WITH(experimental-collations, + [], + [with_exp_coll=$withval], + [with_exp_coll=no] +) + +if test "$with_exp_coll" = "yes" +then + AC_DEFINE([HAVE_UTF8_GENERAL_CS], [1], [certain Japanese customer]) +fi diff --git a/mysql-test/r/client_xml.result b/mysql-test/r/client_xml.result index 7395b2433e8..6a148954fcd 100644 --- a/mysql-test/r/client_xml.result +++ b/mysql-test/r/client_xml.result @@ -7,7 +7,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b'); <?xml version="1.0"?> <resultset statement="select * from t1 -"> +" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="a&b">1</field> <field name="a<b">2</field> @@ -34,7 +34,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b'); <?xml version="1.0"?> <resultset statement="select count(*) from t1 -"> +" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="count(*)">1</field> </row> @@ -42,7 +42,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b'); <?xml version="1.0"?> <resultset statement="select 1 < 2 from dual -"> +" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="1 < 2">1</field> </row> @@ -50,7 +50,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b'); <?xml version="1.0"?> <resultset statement="select 1 > 2 from dual -"> +" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="1 > 2">0</field> </row> @@ -58,7 +58,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b'); <?xml version="1.0"?> <resultset statement="select 1 & 3 from dual -"> +" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="1 & 3">1</field> </row> @@ -66,7 +66,7 @@ insert into t1 values (1, 2, 'a&b a<b a>b'); <?xml version="1.0"?> <resultset statement="select null from dual -"> +" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <row> <field name="NULL" xsi:nil="true" /> </row> diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c index 0e28ff7e342..387ce16a43d 100644 --- a/strings/ctype-utf8.c +++ b/strings/ctype-utf8.c @@ -2764,6 +2764,7 @@ static int my_strnncoll_utf8_cs(CHARSET_INFO *cs, const uchar *te=t+tlen; int save_diff = 0; int diff; + MY_UNICASE_INFO **uni_plane= cs->caseinfo; while ( s < se && t < te ) { @@ -2800,13 +2801,16 @@ static int my_strnncoll_utf8_cs(CHARSET_INFO *cs, static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs, const uchar *s, uint slen, - const uchar *t, uint tlen) + const uchar *t, uint tlen, + my_bool diff_if_only_endspace_difference + __attribute__((unused))) { int s_res,t_res; my_wc_t s_wc,t_wc; const uchar *se= s+slen; const uchar *te= t+tlen; int save_diff = 0; + MY_UNICASE_INFO **uni_plane= cs->caseinfo; while ( s < se && t < te ) { @@ -2875,6 +2879,7 @@ static MY_COLLATION_HANDLER my_collation_cs_handler = my_strnncoll_utf8_cs, my_strnncollsp_utf8_cs, my_strnxfrm_utf8, + my_strnxfrmlen_utf8, my_like_range_simple, my_wildcmp_mb, my_strcasecmp_utf8, |