Bug #82085 FORMAT(..., bg_BG) generates zero bytes
Submitted: 2 Jul 2016 0:28 Modified: 2 Jul 2016 20:33
Reporter: Rick James Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: DML Severity:S3 (Non-critical)
Version:5.6.12, 5.5.50, 5.6.31,5.7.13 OS:Windows
Assigned to: CPU Architecture:Any
Tags: bulgarian, format

[2 Jul 2016 0:28] Rick James
Description:
SELECT HEX(FORMAT(1234567891234567.8, 1, 'bg_BG'))

3100323334003536370038393100323334003536372c38

I don't think '00' should show up in any situation like this.

How to repeat:
SELECT FORMAT(1234567.8, 1, 'bg_BG') = '1234567.8';
-- should yield 1.

Suggested fix:
unknown.  Perhaps a bug in the "thousands separator" for that one locale?

Possibly a bug in the C library:  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34733
[2 Jul 2016 5:12] MySQL Verification Team
Hello Rick James,

Thank you for the report and test case.

Thanks,
Umesh
[2 Jul 2016 12:41] Peter Laursen
Now see this.

mysql> SELECT FORMAT(1234567891234567.8, 1, 'bg_BG'), FORMAT(1234567891234567.8, 1, 'de_DE'), FORMAT(1234567891234567.8, 1, 'en_US');
+----------------------------------------+----------------------------------------+----------------------------------------+
| FORMAT(1234567891234567.8, 1, 'bg_BG') | FORMAT(1234567891234567.8, 1, 'de_DE') | FORMAT(1234567891234567.8, 1, 'en_US') |
+----------------------------------------+----------------------------------------+----------------------------------------+
| 1 234 567 891 234 567,8                | 1.234.567.891.234.567,8                | 1,234,567,891,234,567.8                |
+----------------------------------------+----------------------------------------+----------------------------------------+
1 row in set (0.00 sec)

mysql>

.. there is no decimal sign printed for 1st row of the result. Instead there is a SPACE. This is with 'mysql' CLI and server on Win10.  Various GUI tools fail in different ways due to this as well.

-- Peter
-- not a MySQL/Oracle person
[2 Jul 2016 13:31] Peter Laursen
OK -got it

When I wrotee "there is no decimal sign printed for 1st row of the result", I really meant that "there is no thousands' seperator printed for 1st row of the result".

But I just checked that SPACE really is thousands' seperator in Bulgarian locale. So no issue with display in CLI. Sorry!
[2 Jul 2016 20:33] Rick James
Peter, I used HEX() to avoid any issues of CLI, OS, etc, issues.  I'm getting zero bytes in my copy of 5.6.12