Bug #49591 Conditional definition of Column list partitions has the wrong version
| Submitted: | 10 Dec 2009 16:03 | Modified: | 3 Jan 2010 17:40 |
|---|---|---|---|
| Reporter: | Giuseppe Maxia (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Partitions | Severity: | S2 (Serious) |
| Version: | 5.5 | OS: | Any |
| Assigned to: | Mikael Ronström | CPU Architecture: | Any |
| Tags: | column list, conditional, partition, partitioning | ||
[10 Dec 2009 16:09]
MySQL Verification Team
Thank you for the bug report. Verified as described:
miguel@quetzal2:~$ dbs/5.6/bin/mysql -uroot test
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 1
Server version: 5.6.0-beta-debug Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> CREATE TABLE t1 (dt date) PARTITION BY RANGE COLUMNS (dt) (PARTITION p0 VALUES LESS
-> THAN ('2009-01-01'), partition p1 values less than (MAXVALUE));
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql> show create table t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`dt` date DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
/*!50100 PARTITION BY RANGE COLUMNS(dt)
(PARTITION p0 VALUES LESS THAN ('2009-01-01') ENGINE = MyISAM,
PARTITION p1 VALUES LESS THAN (MAXVALUE) ENGINE = MyISAM) */
1 row in set (0.00 sec)
mysql>
[16 Dec 2009 18: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/94554
[17 Dec 2009 10:16]
Mattias Jonsson
This should also be considered for backporting to 5.1 due to bug#42849, which adds UNIX_TIMESTAMP as a partitioning function, to keep the timestamp data type to still be allowed to use in the partitioning expression.
[17 Dec 2009 17:30]
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/94813 2926 Mikael Ronstrom 2009-12-17 BUG#49591, review fixes
[17 Dec 2009 17:37]
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/94815 2927 Mikael Ronstrom 2009-12-17 [merge] Merge to mysql-trunk-bugfixing BUG#49591
[17 Dec 2009 17:41]
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/94816
[17 Dec 2009 17:47]
Mikael Ronström
I fixed the column list partitioning to use at least 5.5. However one should also ensure that new functions introduced also set the proper version number, in particular I fixed this for the new function TO_SECONDS which was introduced in 5.5.
[21 Dec 2009 15:39]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091221153807-80nxoli1tw1z9bxn) (version source revid:vvaintroub@mysql.com-20091218212246-frpxcpzra8lalib0) (merge vers: 6.0.14-alpha) (pib:15)
[21 Dec 2009 15:40]
Bugs System
Pushed into 5.5.1-m2 (revid:alik@sun.com-20091221153538-ifi3mxf3y10ozxin) (version source revid:mikael@mysql.com-20091217173910-ecubxjy07if7gc05) (merge vers: 5.5.0-beta) (pib:15)
[21 Dec 2009 15:41]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20091221153659-d7bt0fh6mhhclxuf) (version source revid:vvaintroub@mysql.com-20091218211356-mvp3vmiia9yogqe1) (pib:15)
[3 Jan 2010 17:40]
Jon Stephens
Documented in the 5.5.1 changelog as follows:
When SHOW CREATE TABLE was invoked for a table that had been
created using the COLUMNS keyword or the TO_SECONDS() function,
the output contained the wrong MySQL version number in
conditional comments.
Documented in the 6.0.14 changelog as follows:
When SHOW CREATE TABLE was invoked for a table that had been
created using the TO_SECONDS() function, the output contained
the wrong MySQL version number in conditional comments.
(Due to lack of support for COLUMNS partitioning in 6.0 tree.)
Closed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.047 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.
Description: when defining a range partition with the COLUMNS() clause and then asking for the CREATE TABLE statement, the server produces a conditional portion with 5.1 as minimum version to execute the SQL statement. But the minimum version in this case is 5.5, not 5.1 Example: CREATE TABLE t1 (dt date) PARTITION BY RANGE COLUMNS (dt) (PARTITION p0 VALUES LESS THAN ('2009-01-01'), partition p1 values less than (MAXVALUE)); show create table t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `dt` date DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE COLUMNS(dt) (PARTITION p0 VALUES LESS THAN ('2009-01-01') ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (MAXVALUE) ENGINE = MyISAM) */ It should be /*!50500 PARTITION BY RANGE COLUMNS(dt) ... /* How to repeat: DROP TABLE IF EXISTS t1; CREATE TABLE t1 (dt date) PARTITION BY RANGE COLUMNS (dt) (PARTITION p0 VALUES LESS THAN ('2009-01-01'), partition p1 values less than (MAXVALUE)); show create table t1\G Suggested fix: change the minimum version value