| Bug #35558 | Wrong server metadata blows up the client | ||
|---|---|---|---|
| Submitted: | 25 Mar 2008 19:06 | Modified: | 21 Jan 2009 16:15 | 
| Reporter: | Andrey Hristov | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Data Types | Severity: | S2 (Serious) | 
| Version: | 5.0.67, 5.1.28 | OS: | Any | 
| Assigned to: | Sergei Glukhov | CPU Architecture: | Any | 
   [25 Mar 2008 19:06]
   Andrey Hristov        
  
 
   [25 Mar 2008 21:17]
   Valeriy Kravchuk        
  Thank you for a problem report. I need some more details (character sets used etc), as I can not repeat this on 5.1.23 on Windows: C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -proot -P3310 -T test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.23-rc-community-debug MySQL Community Server - Debug (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table format_test(a float); Query OK, 0 rows affected (0.17 sec) mysql> insert into format_test values (1.33); Query OK, 1 row affected (0.03 sec) mysql> select format(a, 2) from format_test; Field 1: `format(a, 2)` Catalog: `def` Database: `` Table: `` Org_table: `` Type: VAR_STRING Collation: utf8_general_ci (33) Length: 15 Max_length: 4 Decimals: 31 Flags: +--------------+ | format(a, 2) | +--------------+ | 1.33 | +--------------+ 1 row in set (0.06 sec) So, it can be a recent regression.
   [25 Apr 2008 23:00]
   Bugs System        
  No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
   [10 Oct 2008 16:25]
   John Heinig        
  I have the exact same issues with MySQL Server 5.0.67 and 5.0.45 on Windows. The character set is latin1. DB Engine is InnoDB. If there are any other details you need I can provide them. C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql --user=root --password --debu g-info Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 16 Server version: 5.0.67-community-nt MySQL Community Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use test Database changed mysql> create table format_test(a float); Query OK, 0 rows affected (0.14 sec) mysql> insert into format_test values (1.33); Query OK, 1 row affected (0.08 sec) mysql> select format(a, 2) from format_test; Field 1: `format(a, 2)` Catalog: `def` Database: `` Table: `` Org_table: `` Type: VAR_STRING Collation: latin1_swedish_ci (8) Length: 1431655771 Max_length: 4 Decimals: 2 Flags: +--------------+ | format(a, 2) | +--------------+ | 1.33 | +--------------+ 1 row in set (0.00 sec) mysql>
   [10 Oct 2008 16:46]
   Valeriy Kravchuk        
  Verified just as described with 5.0.66a and 5.1.28 on Windows:
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot -proot -P3308 -T test
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.0.66a-enterprise-gpl-nt MySQL Enterprise Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> set names latin1;
Query OK, 0 rows affected (0.03 sec)
mysql> create table format_test(a float);
Query OK, 0 rows affected (0.14 sec)
mysql>  insert into format_test values (1.33);
Query OK, 1 row affected (0.05 sec)
mysql> select format(a, 2) from format_test;
Field   1:  `format(a, 2)`
Catalog:    `def`
Database:   ``
Table:      ``
Org_table:  ``
Type:       VAR_STRING
Collation:  latin1_swedish_ci (8)
Length:     1431655771
Max_length: 4
Decimals:   2
Flags:
+--------------+
| format(a, 2) |
+--------------+
| 1.33         |
+--------------+
1 row in set (0.00 sec)
mysql> show variables like 'char%';
Field   1:  `Variable_name`
Catalog:    `def`
Database:   ``
Table:      `VARIABLES`
Org_table:  ``
Type:       VAR_STRING
Collation:  latin1_swedish_ci (8)
Length:     80
Max_length: 24
Decimals:   0
Flags:      NOT_NULL
Field   2:  `Value`
Catalog:    `def`
Database:   ``
Table:      `VARIABLES`
Org_table:  ``
Type:       VAR_STRING
Collation:  latin1_swedish_ci (8)
Length:     512
Max_length: 55
Decimals:   0
Flags:      NOT_NULL
+--------------------------+----------------------------------------------------
-----+
| Variable_name            | Value
     |
+--------------------------+----------------------------------------------------
-----+
| character_set_client     | latin1
     |
| character_set_connection | latin1
     |
| character_set_database   | utf8
     |
| character_set_filesystem | binary
     |
| character_set_results    | latin1
     |
| character_set_server     | utf8
     |
| character_set_system     | utf8
     |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\chars
ets\ |
+--------------------------+----------------------------------------------------
-----+
8 rows in set (0.00 sec)
So, it depends on latin1, really.
 
   [5 Dec 2008 12:33]
   Bugs System        
  A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/60731 2732 Sergey Glukhov 2008-12-05 bug#35558 Wrong server metadata blows up the client the problem: FORMAT func max_length value was calculated incorrectly the fix: correct calculation of max_length
   [8 Dec 2008 14:09]
   Alexander Barkov        
  http://lists.mysql.com/commits/60731 is ok to push.
   [9 Dec 2008 10:01]
   Bugs System        
  A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/61021 2738 Sergey Glukhov 2008-12-09 bug#35558 Wrong server metadata blows up the client the problem: FORMAT func max_length value was calculated incorrectly the fix: correct calculation of max_length
   [6 Jan 2009 13:57]
   Bugs System        
  Pushed into 5.0.76 (revid:joro@sun.com-20090105160414-8q9j4bi1klkfwiup) (version source revid:azundris@mysql.com-20081230114734-nmsc37ak330zlygn) (merge vers: 5.0.76) (pib:6)
   [8 Jan 2009 21:27]
   Paul DuBois        
  Noted in 5.0.76 changelog. The max_length metadata value was calculated incorrectly for the FORMAT() function, which could cause incorrect result set metadata to be sent to clients. Setting report to NDI pending push into 5.1.x/6.0.x.
   [15 Jan 2009 6:39]
   Bugs System        
  Pushed into 5.1.31 (revid:joro@sun.com-20090115053147-tx1oapthnzgvs1ro) (version source revid:azundris@mysql.com-20081230114838-cn52tu180wcrvh0h) (merge vers: 5.1.31) (pib:6)
   [15 Jan 2009 16:22]
   Paul DuBois        
  Noted in 5.1.31 changelog. Setting report to NDI pending push into 6.0.x.
   [19 Jan 2009 11:25]
   Bugs System        
  Pushed into 5.1.31-ndb-6.2.17 (revid:tomas.ulin@sun.com-20090119095303-uwwvxiibtr38djii) (version source revid:tomas.ulin@sun.com-20090115073240-1wanl85vlvw2she1) (merge vers: 5.1.31-ndb-6.2.17) (pib:6)
   [19 Jan 2009 13:03]
   Bugs System        
  Pushed into 5.1.31-ndb-6.3.21 (revid:tomas.ulin@sun.com-20090119104956-guxz190n2kh31fxl) (version source revid:tomas.ulin@sun.com-20090119104956-guxz190n2kh31fxl) (merge vers: 5.1.31-ndb-6.3.21) (pib:6)
   [19 Jan 2009 15:43]
   Jon Stephens        
  Setting status back to NDI pending merge to 6.0 tree.
   [19 Jan 2009 16:09]
   Bugs System        
  Pushed into 5.1.31-ndb-6.4.1 (revid:tomas.ulin@sun.com-20090119144033-4aylstx5czzz88i5) (version source revid:tomas.ulin@sun.com-20090119144033-4aylstx5czzz88i5) (merge vers: 5.1.31-ndb-6.4.1) (pib:6)
   [20 Jan 2009 18:56]
   Bugs System        
  Pushed into 6.0.10-alpha (revid:joro@sun.com-20090119171328-2hemf2ndc1dxl0et) (version source revid:azundris@mysql.com-20081230114916-c290n83z25wkt6e4) (merge vers: 6.0.9-alpha) (pib:6)
   [21 Jan 2009 16:15]
   Paul DuBois        
  Noted in 6.0.10 changelog.

