Bug #25026 `information_schema.KEY_COLUMN_USAGE`.`REFERENCED_TABLE_NAME` returns garbage

Submitted: 13 Dec 2006 5:22 Modified: 23 Jan 2007 20:44
Reporter: Jared S (Silver Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Information schema Severity:S1 (Critical)
Version:5.1.14 BETA OS:Windows (WinXP/Linux)
Assigned to: Sergei Glukhov CPU Architecture:Any
Tags: foreign keys, info schema, MYSQL SERVER, Q1, REFERENCED_TABLE_NAME

[13 Dec 2006 5:22] Jared S
Description:
Hi.  My software is now totally broken cause of MySQL 5.1.14 BETA.  Where I expect query to return table name it instead returns garbage.

This bug is caused by the '-' unicode character in the table name.  

How to repeat:
--
-- 1. Laod my attached sample DB
--

--
-- 2. Run this script to see wierd values like 'table@002d2'
--

SELECT REFERENCED_TABLE_NAME  FROM KEY_COLUMN_USAGE where constraint_schema = 'db1'

Suggested fix:
It needs to store accurate name of the referenced table.
[13 Dec 2006 5:22] Jared S
Sample DB

Attachment: Unicode Bug.sql (text/plain), 2.06 KiB.

[13 Dec 2006 9:26] MySQL Verification Team
Thank you for the bug report.

miguel@hegel:~/dbs/5.1> bin/mysql -uroot db1
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.15-beta-debug Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| table-1       | 
| table-2       | 
+---------------+
2 rows in set (0.00 sec)

mysql> use information_schema
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT REFERENCED_TABLE_NAME  FROM KEY_COLUMN_USAGE where constraint_schema =
    -> 'db1';
+-----------------------+
| REFERENCED_TABLE_NAME |
+-----------------------+
| NULL                  | 
| table@002d2           | 
| NULL                  | 
+-----------------------+
3 rows in set (0.13 sec)

mysql> 
---------------------------------------------------------------------------------
Database changed
mysql> SELECT REFERENCED_TABLE_NAME  FROM KEY_COLUMN_USAGE where constraint_schema =
    -> 'db1';
+-----------------------+
| REFERENCED_TABLE_NAME |
+-----------------------+
| NULL                  | 
| table-2               | 
| NULL                  | 
+-----------------------+
3 rows in set (0.09 sec)

mysql> select version();
+--------------+
| version()    |
+--------------+
| 5.0.32-debug | 
+--------------+
1 row in set (0.00 sec)

mysql>
[14 Dec 2006 12:25] 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/16944

ChangeSet@1.2359, 2006-12-14 17:35:28+04:00, gluh@mysql.com +3 -0
  Fix for bug#25026 `information_schema.KEY_COLUMN_USAGE`.`REFERENCED_TABLE_NAME` returns garbage
  unencode referenced table name
[19 Dec 2006 13:45] 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/17162

ChangeSet@1.2361, 2006-12-19 17:43:57+04:00, gluh@mysql.com +3 -0
  Fix for bug#25026 `information_schema.KEY_COLUMN_USAGE`.`REFERENCED_TABLE_NAME` returns garbage
  Unencode internal db & table name
[22 Dec 2006 7:56] Alexander Barkov
The patch is ok to push.
[9 Jan 2007 14:16] 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/17782

ChangeSet@1.2382, 2007-01-09 18:14:04+04:00, gluh@mysql.com +3 -0
  Fix for bug#25026 `information_schema.KEY_COLUMN_USAGE`.`REFERENCED_TABLE_NAME` returns garbage
  Unencode internal db & table name
[15 Jan 2007 8:23] Sergei Glukhov
Fixed in 5.1.15-beta
[23 Jan 2007 20:44] Paul DuBois
Noted in 5.1.15 changelog.

In the INFORMATION_SCHEMA.KEY_COLUMN_USAGE table, the value displayed
for the REFERENCED_TABLE_NAME column was the table name as encoded
for disk storage, not the actual table name.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.042 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.