| Bug #61765 | Wrong query results on subpartitions based on USIGNED BIGINT | ||
|---|---|---|---|
| Submitted: | 6 Jul 2011 1:46 | Modified: | 18 Dec 2011 23:16 |
| Reporter: | Aidar Aslyamov | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Partitions | Severity: | S1 (Critical) |
| Version: | 5.5.8, 5.5.11, 5.5.13 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[6 Jul 2011 1:46]
Aidar Aslyamov
[6 Jul 2011 2:21]
MySQL Verification Team
Thank you for the bug report.
C:\DBS>c:\dbs\5.5\bin\mysql -uroot --port=3540 --prompt="mysql 5.5 >"
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.15-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql 5.5 >use test
Database changed
mysql 5.5 >CREATE TABLE t1 (
-> `a` int(11) NOT NULL,
-> `b` bigint(20) unsigned NOT NULL
-> ) ENGINE InnoDB
-> PARTITION BY RANGE ( a)
-> SUBPARTITION BY hash (b)
-> SUBPARTITIONS 10
-> (PARTITION p1 VALUES LESS THAN (1308614400),
-> PARTITION p2 VALUES LESS THAN (1308700800),
-> PARTITION p3 VALUES LESS THAN (1308787200),
-> PARTITION p4 VALUES LESS THAN (1308873600),
-> PARTITION p5 VALUES LESS THAN (1308960000)
-> );
Query OK, 0 rows affected (2.23 sec)
mysql 5.5 >
mysql 5.5 >insert into t1 values
-> (1308614400,18446744073709551615),
-> (1308700800,0xFFFFFFFFFFFFFFFE),
-> (1308787200,18446744073709551613),
-> (1308873600,18446744073709551612),
-> (1308873600, 12531568256096620965),
-> (1308873600, 12531568256096),
-> (1308873600, 9223372036854775808);
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0
mysql 5.5 >select * from t1 where b = 9223372036854775808;
Empty set (0.28 sec)
mysql 5.5 >select * from t1 where b = 18446744073709551612;
Empty set (0.00 sec)
mysql 5.5 >select * from t1 where b = 18446744073709551615;
Empty set (0.00 sec)
mysql 5.5 >drop table t1;
Query OK, 0 rows affected (1.87 sec)
mysql 5.5 >CREATE TABLE t1 (
-> `a` int(11) NOT NULL,
-> `b` bigint(20) unsigned NOT NULL
-> ) ENGINE InnoDB;
Query OK, 0 rows affected (0.11 sec)
mysql 5.5 >insert into t1 values
-> (1308614400,18446744073709551615),
-> (1308700800,0xFFFFFFFFFFFFFFFE),
-> (1308787200,18446744073709551613),
-> (1308873600,18446744073709551612),
-> (1308873600, 12531568256096620965),
-> (1308873600, 12531568256096),
-> (1308873600, 9223372036854775808);
Query OK, 7 rows affected (0.00 sec)
Records: 7 Duplicates: 0 Warnings: 0
mysql 5.5 >select * from t1 where b = 9223372036854775808;
+------------+---------------------+
| a | b |
+------------+---------------------+
| 1308873600 | 9223372036854775808 |
+------------+---------------------+
1 row in set (0.00 sec)
mysql 5.5 >select * from t1 where b = 18446744073709551612;
+------------+----------------------+
| a | b |
+------------+----------------------+
| 1308873600 | 18446744073709551612 |
+------------+----------------------+
1 row in set (0.00 sec)
mysql 5.5 >select * from t1 where b = 18446744073709551615;
+------------+----------------------+
| a | b |
+------------+----------------------+
| 1308614400 | 18446744073709551615 |
+------------+----------------------+
1 row in set (0.00 sec)
mysql 5.5 >
[11 Jul 2011 22:27]
Aidar Aslyamov
Hi MySQL Team, Do you have any update on this issue?
[10 Oct 2011 17:04]
Mattias Jonsson
Related to bug#20257, but for subpartitions.
[18 Dec 2011 23:16]
Jon Stephens
Documented bugfix in the 5.6.5 changelog, as follows:
A function internal to the code for finding matching subpartitions
represented an unsigned number as signed, with the result that matching
subpartitions were sometimes missed in results of queries.
Closed.
