Bug #38909 CREATE_OPTIONS in information_schema produces wrong results

Submitted: 20 Aug 2008 10:51 Modified: 9 Dec 2008 0:15
Reporter: nadav wexler Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Information schema Severity:S3 (Non-critical)
Version:5.1, 6.0 OS:Linux (fedora core 6)
Assigned to: Sergei Glukhov CPU Architecture:Any

[20 Aug 2008 10:51] nadav wexler
Description:
when using a select on information_schema.create_options when there are partitioned tables, the column fails to show this fact.
a select * from the same table does attribute partition to the tables.
also seen on 5.1.24-rc.

How to repeat:
mysql> use test
Database changed
mysql> create table q (s1 int key) partition by key(s1) partitions 2;
Query OK, 0 rows affected (0.01 sec)

mysql> show create table q;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                            |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| q     | CREATE TABLE `q` (
  `s1` int(11) NOT NULL,
  PRIMARY KEY (`s1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (s1) PARTITIONS 2  */ | 
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select * from information_schema.tables where table_schema="test" and table_name="q" and CREATE_OPTIONS="partitioned";
+---------------+--------------+------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------------+
| TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE | ENGINE | VERSION | ROW_FORMAT | TABLE_ROWS | AVG_ROW_LENGTH | DATA_LENGTH | MAX_DATA_LENGTH | INDEX_LENGTH | DATA_FREE | AUTO_INCREMENT | CREATE_TIME         | UPDATE_TIME         | CHECK_TIME | TABLE_COLLATION   | CHECKSUM | CREATE_OPTIONS | TABLE_COMMENT |
+---------------+--------------+------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------------+
| NULL          | test         | q          | BASE TABLE | MyISAM |      10 | Fixed      |          0 |              1 |           0 |               0 |         2048 |         0 |           NULL | 2008-08-20 13:24:11 | 2008-08-20 13:24:11 | NULL       | latin1_swedish_ci |     NULL | partitioned    |               | 
+---------------+--------------+------------+------------+--------+---------+------------+------------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------------+
1 row in set (0.00 sec)

mysql> select count(*) from information_schema.tables where table_schema="test" and table_name="q" and CREATE_OPTIONS="partitioned";
+----------+
| count(*) |
+----------+
|        0 | 
+----------+
1 row in set (0.00 sec)

mysql> select count(*) from (select * from information_schema.tables where table_schema="test" and table_name="q" and CREATE_OPTIONS="partitioned") as d;
+----------+
| count(*) |
+----------+
|        1 | 
+----------+
1 row in set (0.00 sec)

mysql> select CREATE_OPTIONS from information_schema.tables where table_schema="test";
+----------------+
| CREATE_OPTIONS |
+----------------+
|                | 
+----------------+
1 row in set (0.00 sec)

mysql> select p.CREATE_OPTIONS from information_schema.tables as p where table_schema="test";
+----------------+
| CREATE_OPTIONS |
+----------------+
|                | 
+----------------+
1 row in set (0.00 sec)

mysql> select p.CREATE_OPTIONS from information_schema.tables as p where table_schema="test" and table_name='q';
+----------------+
| CREATE_OPTIONS |
+----------------+
|                | 
+----------------+
1 row in set (0.00 sec)

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.1.26-rc | 
+-----------+
1 row in set (0.00 sec)
[20 Aug 2008 13:01] Susanne Ebrecht
Verified as described above with 5.1 bzr tree.

This is a really mad behaviour.
[20 Aug 2008 13:02] Susanne Ebrecht
Same mad behaviour in 6.0 bzr tree.
[12 Nov 2008 15:29] 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/58562

2706 Sergey Glukhov	2008-11-12
      Bug#38909 CREATE_OPTIONS in information_schema produces wrong results
      table->partition_info is unitialized when we open frm file only.
      The fix is check share->partition_info_len which is set on
      frm opening stage.
[12 Nov 2008 16:21] 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/58568

2706 Sergey Glukhov	2008-11-12
      Bug#38909 CREATE_OPTIONS in information_schema produces wrong results
      table->partition_info is unitialized when we open frm file only.
      The fix is check share->partition_info_len which is set on
      frm opening stage.
[13 Nov 2008 12:19] 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/58626

2709 Sergey Glukhov	2008-11-13
      Bug#38909 CREATE_OPTIONS in information_schema produces wrong results
      table->partition_info is unitialized when we open frm file only.
      The fix is check share->partition_info_len which is set on
      frm opening stage.
[13 Nov 2008 13: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/58628

2925 Sergey Glukhov	2008-11-13 [merge]
      5.1-bugteam->6.0-bugteam merge(bug#39955, bug#38909)
[8 Dec 2008 10:20] Bugs System
Pushed into 5.1.31  (revid:sergey.glukhov@sun.com-20081113121151-jdb9q32qjtpn7byk) (version source revid:azundris@mysql.com-20081114081134-pswy3m5go7r64m1p) (pib:5)
[8 Dec 2008 11:31] Bugs System
Pushed into 6.0.9-alpha  (revid:sergey.glukhov@sun.com-20081113125316-lt0z01zqh50w8gva) (version source revid:ingo.struewing@sun.com-20081121151447-dtf2ofz2ys0zqed1) (pib:5)
[9 Dec 2008 0:15] Paul DuBois
Noted in 5.1.31, 6.0.9 changelogs.

The value of the CREATE_COLUMNS column in INFORMATION_SCHEMA.TABLES
was not "partitioned" for partitioned tables.
[19 Jan 2009 11:22] 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-20090108105244-8opp3i85jw0uj5ib) (merge vers: 5.1.31-ndb-6.2.17) (pib:6)
[19 Jan 2009 13:00] 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 16:06] 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)

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

Page generated in 0.070 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.