Commit 991d5dce authored by Maheedhar PV's avatar Maheedhar PV Committed by Sergei Golubchik

Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY FOR ES_MX AND ES_ES LOCALES

Changed the grouping and decimal separator for spanish locales as per
ICU.

Change-Id: I5d80fa59d3e66372d904e17c22c532d4dd2c565b
parent 4504e6d1
...@@ -4845,5 +4845,58 @@ SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux'); ...@@ -4845,5 +4845,58 @@ SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux');
NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux') NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux')
NULL NULL
# #
# Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY
# FOR ES_MX AND ES_ES LOCALES
#
CREATE PROCEDURE load_locale_format_table()
BEGIN
DECLARE locale_list VARCHAR(1000) DEFAULT '
es_AR,es_BO,es_CL,es_CO,es_CR,es_DO,es_EC,es_ES,es_GT,es_HN,
es_MX,es_NI,es_PA,es_PE,es_PR,es_PY,es_SV,es_US,es_UY,es_VE';
SET @fmt_stmt = 'INSERT INTO locale_format VALUES
(?, FORMAT(12131254123412541,2,?));';
PREPARE stmt FROM @fmt_stmt;
WHILE locale_list != '' DO
/* get the first locale from the list */
SET @locale =
TRIM(REPLACE((SUBSTRING_INDEX(locale_list, ',', 1)), '\n',''));
EXECUTE stmt USING @locale, @locale;
/* remove the first locale from the list */
IF LOCATE(',', locale_list) > 0 THEN
SET locale_list =
SUBSTRING(locale_list, LOCATE(',', locale_list) + 1);
ELSE
SET locale_list = '';
END IF;
END WHILE;
DEALLOCATE PREPARE stmt;
END|
CREATE TABLE locale_format(locale VARCHAR(10), formatted_string VARCHAR(100));
CALL load_locale_format_table();
SELECT * FROM locale_format;
locale formatted_string
es_AR 12.131.254.123.412.541,00
es_BO 12.131.254.123.412.541,00
es_CL 12.131.254.123.412.541,00
es_CO 12.131.254.123.412.541,00
es_CR 12 131 254 123 412 541,00
es_DO 12,131,254,123,412,541.00
es_EC 12.131.254.123.412.541,00
es_ES 12.131.254.123.412.541,00
es_GT 12,131,254,123,412,541.00
es_HN 12,131,254,123,412,541.00
es_MX 12,131,254,123,412,541.00
es_NI 12,131,254,123,412,541.00
es_PA 12,131,254,123,412,541.00
es_PE 12,131,254,123,412,541.00
es_PR 12,131,254,123,412,541.00
es_PY 12.131.254.123.412.541,00
es_SV 12,131,254,123,412,541.00
es_US 12,131,254,123,412,541.00
es_UY 12.131.254.123.412.541,00
es_VE 12.131.254.123.412.541,00
DROP PROCEDURE load_locale_format_table;
DROP TABLE locale_format;
#
# End of 10.2 tests # End of 10.2 tests
# #
...@@ -17,7 +17,7 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU ...@@ -17,7 +17,7 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU
14 cs_CZ Czech - Czech Republic 8 7 , czech 14 cs_CZ Czech - Czech Republic 8 7 , czech
15 da_DK Danish - Denmark 9 7 , . danish 15 da_DK Danish - Denmark 9 7 , . danish
16 de_AT German - Austria 9 10 , german 16 de_AT German - Austria 9 10 , german
17 es_ES Spanish - Spain 10 9 , spanish 17 es_ES Spanish - Spain 10 9 , . spanish
18 et_EE Estonian - Estonia 9 9 , estonian 18 et_EE Estonian - Estonia 9 9 , estonian
19 eu_ES Basque - Basque 9 10 , english 19 eu_ES Basque - Basque 9 10 , english
20 fi_FI Finnish - Finland 9 11 , english 20 fi_FI Finnish - Finland 9 11 , english
...@@ -82,24 +82,24 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU ...@@ -82,24 +82,24 @@ ID NAME DESCRIPTION MAX_MONTH_NAME_LENGTH MAX_DAY_NAME_LENGTH DECIMAL_POINT THOU
79 en_ZA English - South Africa 9 9 . , english 79 en_ZA English - South Africa 9 9 . , english
80 en_ZW English - Zimbabwe 9 9 . , english 80 en_ZW English - Zimbabwe 9 9 . , english
81 es_AR Spanish - Argentina 10 9 , . spanish 81 es_AR Spanish - Argentina 10 9 , . spanish
82 es_BO Spanish - Bolivia 10 9 , spanish 82 es_BO Spanish - Bolivia 10 9 , . spanish
83 es_CL Spanish - Chile 10 9 , spanish 83 es_CL Spanish - Chile 10 9 , . spanish
84 es_CO Spanish - Columbia 10 9 , spanish 84 es_CO Spanish - Columbia 10 9 , . spanish
85 es_CR Spanish - Costa Rica 10 9 . spanish 85 es_CR Spanish - Costa Rica 10 9 , spanish
86 es_DO Spanish - Dominican Republic 10 9 . spanish 86 es_DO Spanish - Dominican Republic 10 9 . , spanish
87 es_EC Spanish - Ecuador 10 9 , spanish 87 es_EC Spanish - Ecuador 10 9 , . spanish
88 es_GT Spanish - Guatemala 10 9 . spanish 88 es_GT Spanish - Guatemala 10 9 . , spanish
89 es_HN Spanish - Honduras 10 9 . spanish 89 es_HN Spanish - Honduras 10 9 . , spanish
90 es_MX Spanish - Mexico 10 9 . spanish 90 es_MX Spanish - Mexico 10 9 . , spanish
91 es_NI Spanish - Nicaragua 10 9 . spanish 91 es_NI Spanish - Nicaragua 10 9 . , spanish
92 es_PA Spanish - Panama 10 9 . spanish 92 es_PA Spanish - Panama 10 9 . , spanish
93 es_PE Spanish - Peru 10 9 . spanish 93 es_PE Spanish - Peru 10 9 . , spanish
94 es_PR Spanish - Puerto Rico 10 9 . spanish 94 es_PR Spanish - Puerto Rico 10 9 . , spanish
95 es_PY Spanish - Paraguay 10 9 , spanish 95 es_PY Spanish - Paraguay 10 9 , . spanish
96 es_SV Spanish - El Salvador 10 9 . spanish 96 es_SV Spanish - El Salvador 10 9 . , spanish
97 es_US Spanish - United States 10 9 . , spanish 97 es_US Spanish - United States 10 9 . , spanish
98 es_UY Spanish - Uruguay 10 9 , spanish 98 es_UY Spanish - Uruguay 10 9 , . spanish
99 es_VE Spanish - Venezuela 10 9 , spanish 99 es_VE Spanish - Venezuela 10 9 , . spanish
100 fr_BE French - Belgium 9 8 , . french 100 fr_BE French - Belgium 9 8 , . french
101 fr_CA French - Canada 9 8 , french 101 fr_CA French - Canada 9 8 , french
102 fr_CH French - Switzerland 9 8 , french 102 fr_CH French - Switzerland 9 8 , french
......
...@@ -1944,6 +1944,42 @@ DROP TABLE t1; ...@@ -1944,6 +1944,42 @@ DROP TABLE t1;
SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux'); SELECT NULL IN (RIGHT(AES_ENCRYPT('foo','bar'), LAST_INSERT_ID()), 'qux');
--echo #
--echo # Bug#31374305 - FORMAT() NOT DISPLAYING WHOLE NUMBER SIDE CORRECTLY
--echo # FOR ES_MX AND ES_ES LOCALES
--echo #
DELIMITER |;
CREATE PROCEDURE load_locale_format_table()
BEGIN
DECLARE locale_list VARCHAR(1000) DEFAULT '
es_AR,es_BO,es_CL,es_CO,es_CR,es_DO,es_EC,es_ES,es_GT,es_HN,
es_MX,es_NI,es_PA,es_PE,es_PR,es_PY,es_SV,es_US,es_UY,es_VE';
SET @fmt_stmt = 'INSERT INTO locale_format VALUES
(?, FORMAT(12131254123412541,2,?));';
PREPARE stmt FROM @fmt_stmt;
WHILE locale_list != '' DO
/* get the first locale from the list */
SET @locale =
TRIM(REPLACE((SUBSTRING_INDEX(locale_list, ',', 1)), '\n',''));
EXECUTE stmt USING @locale, @locale;
/* remove the first locale from the list */
IF LOCATE(',', locale_list) > 0 THEN
SET locale_list =
SUBSTRING(locale_list, LOCATE(',', locale_list) + 1);
ELSE
SET locale_list = '';
END IF;
END WHILE;
DEALLOCATE PREPARE stmt;
END|
DELIMITER ;|
CREATE TABLE locale_format(locale VARCHAR(10), formatted_string VARCHAR(100));
CALL load_locale_format_table();
SELECT * FROM locale_format;
DROP PROCEDURE load_locale_format_table;
DROP TABLE locale_format;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
......
...@@ -564,8 +564,8 @@ MY_LOCALE my_locale_es_ES ...@@ -564,8 +564,8 @@ MY_LOCALE my_locale_es_ES
10, 10,
9, 9,
',', /* decimal point es_ES */ ',', /* decimal point es_ES */
'\0', /* thousands_sep es_ES */ '.', /* thousands_sep es_ES */
"\x80\x80", /* grouping es_ES */ "\x03\x03", /* grouping es_ES */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_ES *****/ /***** LOCALE END es_ES *****/
...@@ -2650,8 +2650,8 @@ MY_LOCALE my_locale_es_BO ...@@ -2650,8 +2650,8 @@ MY_LOCALE my_locale_es_BO
10, 10,
9, 9,
',', /* decimal point es_BO */ ',', /* decimal point es_BO */
'\0', /* thousands_sep es_BO */ '.', /* thousands_sep es_BO */
"\x80\x80", /* grouping es_BO */ "\x03\x03", /* grouping es_BO */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_BO *****/ /***** LOCALE END es_BO *****/
...@@ -2670,8 +2670,8 @@ MY_LOCALE my_locale_es_CL ...@@ -2670,8 +2670,8 @@ MY_LOCALE my_locale_es_CL
10, 10,
9, 9,
',', /* decimal point es_CL */ ',', /* decimal point es_CL */
'\0', /* thousands_sep es_CL */ '.', /* thousands_sep es_CL */
"\x80\x80", /* grouping es_CL */ "\x03\x03", /* grouping es_CL */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_CL *****/ /***** LOCALE END es_CL *****/
...@@ -2690,8 +2690,8 @@ MY_LOCALE my_locale_es_CO ...@@ -2690,8 +2690,8 @@ MY_LOCALE my_locale_es_CO
10, 10,
9, 9,
',', /* decimal point es_CO */ ',', /* decimal point es_CO */
'\0', /* thousands_sep es_CO */ '.', /* thousands_sep es_CO */
"\x80\x80", /* grouping es_CO */ "\x03\x03", /* grouping es_CO */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_CO *****/ /***** LOCALE END es_CO *****/
...@@ -2709,9 +2709,9 @@ MY_LOCALE my_locale_es_CR ...@@ -2709,9 +2709,9 @@ MY_LOCALE my_locale_es_CR
&my_locale_typelib_ab_day_names_es_ES, &my_locale_typelib_ab_day_names_es_ES,
10, 10,
9, 9,
'.', /* decimal point es_CR */ ',', /* decimal point es_CR */
'\0', /* thousands_sep es_CR */ ' ', /* thousands_sep es_CR */
"\x80\x80", /* grouping es_CR */ "\x03\x03", /* grouping es_CR */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_CR *****/ /***** LOCALE END es_CR *****/
...@@ -2730,8 +2730,8 @@ MY_LOCALE my_locale_es_DO ...@@ -2730,8 +2730,8 @@ MY_LOCALE my_locale_es_DO
10, 10,
9, 9,
'.', /* decimal point es_DO */ '.', /* decimal point es_DO */
'\0', /* thousands_sep es_DO */ ',', /* thousands_sep es_DO */
"\x80\x80", /* grouping es_DO */ "\x03\x03", /* grouping es_DO */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_DO *****/ /***** LOCALE END es_DO *****/
...@@ -2750,8 +2750,8 @@ MY_LOCALE my_locale_es_EC ...@@ -2750,8 +2750,8 @@ MY_LOCALE my_locale_es_EC
10, 10,
9, 9,
',', /* decimal point es_EC */ ',', /* decimal point es_EC */
'\0', /* thousands_sep es_EC */ '.', /* thousands_sep es_EC */
"\x80\x80", /* grouping es_EC */ "\x03\x03", /* grouping es_EC */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_EC *****/ /***** LOCALE END es_EC *****/
...@@ -2770,8 +2770,8 @@ MY_LOCALE my_locale_es_GT ...@@ -2770,8 +2770,8 @@ MY_LOCALE my_locale_es_GT
10, 10,
9, 9,
'.', /* decimal point es_GT */ '.', /* decimal point es_GT */
'\0', /* thousands_sep es_GT */ ',', /* thousands_sep es_GT */
"\x80\x80", /* grouping es_GT */ "\x03\x03", /* grouping es_GT */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_GT *****/ /***** LOCALE END es_GT *****/
...@@ -2790,8 +2790,8 @@ MY_LOCALE my_locale_es_HN ...@@ -2790,8 +2790,8 @@ MY_LOCALE my_locale_es_HN
10, 10,
9, 9,
'.', /* decimal point es_HN */ '.', /* decimal point es_HN */
'\0', /* thousands_sep es_HN */ ',', /* thousands_sep es_HN */
"\x80\x80", /* grouping es_HN */ "\x03\x03", /* grouping es_HN */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_HN *****/ /***** LOCALE END es_HN *****/
...@@ -2810,8 +2810,8 @@ MY_LOCALE my_locale_es_MX ...@@ -2810,8 +2810,8 @@ MY_LOCALE my_locale_es_MX
10, 10,
9, 9,
'.', /* decimal point es_MX */ '.', /* decimal point es_MX */
'\0', /* thousands_sep es_MX */ ',', /* thousands_sep es_MX */
"\x80\x80", /* grouping es_MX */ "\x03\x03", /* grouping es_MX */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_MX *****/ /***** LOCALE END es_MX *****/
...@@ -2830,8 +2830,8 @@ MY_LOCALE my_locale_es_NI ...@@ -2830,8 +2830,8 @@ MY_LOCALE my_locale_es_NI
10, 10,
9, 9,
'.', /* decimal point es_NI */ '.', /* decimal point es_NI */
'\0', /* thousands_sep es_NI */ ',', /* thousands_sep es_NI */
"\x80\x80", /* grouping es_NI */ "\x03\x03", /* grouping es_NI */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_NI *****/ /***** LOCALE END es_NI *****/
...@@ -2850,8 +2850,8 @@ MY_LOCALE my_locale_es_PA ...@@ -2850,8 +2850,8 @@ MY_LOCALE my_locale_es_PA
10, 10,
9, 9,
'.', /* decimal point es_PA */ '.', /* decimal point es_PA */
'\0', /* thousands_sep es_PA */ ',', /* thousands_sep es_PA */
"\x80\x80", /* grouping es_PA */ "\x03\x03", /* grouping es_PA */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_PA *****/ /***** LOCALE END es_PA *****/
...@@ -2870,8 +2870,8 @@ MY_LOCALE my_locale_es_PE ...@@ -2870,8 +2870,8 @@ MY_LOCALE my_locale_es_PE
10, 10,
9, 9,
'.', /* decimal point es_PE */ '.', /* decimal point es_PE */
'\0', /* thousands_sep es_PE */ ',', /* thousands_sep es_PE */
"\x80\x80", /* grouping es_PE */ "\x03\x03", /* grouping es_PE */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_PE *****/ /***** LOCALE END es_PE *****/
...@@ -2890,8 +2890,8 @@ MY_LOCALE my_locale_es_PR ...@@ -2890,8 +2890,8 @@ MY_LOCALE my_locale_es_PR
10, 10,
9, 9,
'.', /* decimal point es_PR */ '.', /* decimal point es_PR */
'\0', /* thousands_sep es_PR */ ',', /* thousands_sep es_PR */
"\x80\x80", /* grouping es_PR */ "\x03\x03", /* grouping es_PR */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_PR *****/ /***** LOCALE END es_PR *****/
...@@ -2910,8 +2910,8 @@ MY_LOCALE my_locale_es_PY ...@@ -2910,8 +2910,8 @@ MY_LOCALE my_locale_es_PY
10, 10,
9, 9,
',', /* decimal point es_PY */ ',', /* decimal point es_PY */
'\0', /* thousands_sep es_PY */ '.', /* thousands_sep es_PY */
"\x80\x80", /* grouping es_PY */ "\x03\x03", /* grouping es_PY */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_PY *****/ /***** LOCALE END es_PY *****/
...@@ -2930,8 +2930,8 @@ MY_LOCALE my_locale_es_SV ...@@ -2930,8 +2930,8 @@ MY_LOCALE my_locale_es_SV
10, 10,
9, 9,
'.', /* decimal point es_SV */ '.', /* decimal point es_SV */
'\0', /* thousands_sep es_SV */ ',', /* thousands_sep es_SV */
"\x80\x80", /* grouping es_SV */ "\x03\x03", /* grouping es_SV */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_SV *****/ /***** LOCALE END es_SV *****/
...@@ -2970,8 +2970,8 @@ MY_LOCALE my_locale_es_UY ...@@ -2970,8 +2970,8 @@ MY_LOCALE my_locale_es_UY
10, 10,
9, 9,
',', /* decimal point es_UY */ ',', /* decimal point es_UY */
'\0', /* thousands_sep es_UY */ '.', /* thousands_sep es_UY */
"\x80\x80", /* grouping es_UY */ "\x03\x03", /* grouping es_UY */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_UY *****/ /***** LOCALE END es_UY *****/
...@@ -2990,8 +2990,8 @@ MY_LOCALE my_locale_es_VE ...@@ -2990,8 +2990,8 @@ MY_LOCALE my_locale_es_VE
10, 10,
9, 9,
',', /* decimal point es_VE */ ',', /* decimal point es_VE */
'\0', /* thousands_sep es_VE */ '.', /* thousands_sep es_VE */
"\x80\x80", /* grouping es_VE */ "\x03\x03", /* grouping es_VE */
&global_errmsgs[es_ES] &global_errmsgs[es_ES]
); );
/***** LOCALE END es_VE *****/ /***** LOCALE END es_VE *****/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment