| Bug #32426 | FEDERATED query returns corrupt results for ORDER BY on a TEXT or VARCHAR field | ||
|---|---|---|---|
| Submitted: | 16 Nov 2007 3:04 | Modified: | 18 Jun 2010 1:41 |
| Reporter: | Sean Pringle | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Federated storage engine | Severity: | S2 (Serious) |
| Version: | 5.0.50, 5.1.40sp1 | OS: | Any |
| Assigned to: | Ramil Kalimullin | CPU Architecture: | Any |
| Tags: | federated, order by, text | ||
[14 Dec 2007 6:51]
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/39966 ChangeSet@1.2602, 2007-12-14 10:50:56+04:00, ramil@mysql.com +4 -0 Fix for bug #32426: "FEDERATED query returns corrupt results for ORDER BY on a TEXT field" Problem: storing a reference to a row which is used in fielsort we miss BLOB/TEXT data. Fix: store a reference as current result set address and data cursor position.
[26 Mar 2008 10:38]
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/44438 ChangeSet@1.2600, 2008-03-26 14:37:47+04:00, ramil@mysql.com +4 -0 Fix for bug #32426: "FEDERATED query returns corrupt results for ORDER BY on a TEXT field" Problem: storing a reference to a row which is used in fielsort we miss BLOB/TEXT data. Fix: store a reference as current result set address and data cursor position.
[15 Aug 2008 12:18]
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/51725 2767 Ramil Kalimullin 2008-08-15 Fix for bug #32426: "FEDERATED query returns corrupt results for ORDER BY on a TEXT field" Problem: storing a reference to a row which is used in fielsort we miss BLOB/TEXT data. Fix: store a reference as current result set address and data cursor position.
[13 Sep 2008 20:21]
Bugs System
Pushed into 6.0.6-alpha (revid:ramil@mysql.com-20080815121806-r07gbqrl29hezjjh) (version source revid:sergefp@mysql.com-20080611231653-nmuqmw6dedjra79i) (pib:3)
[18 Sep 2008 6:21]
Paul DuBois
Noted in 6.0.6 chanagelog. Query results from a FEDERATED table were corrupt if the query included an ORDER BY on a TEXT column.
[5 Mar 2010 10:52]
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/102419 3369 Ramil Kalimullin 2010-03-05 Fix for bug#32426: "FEDERATED query returns corrupt results for ORDER BY on a TEXT or VARCHAR field" backported to 5.1.
[26 Mar 2010 8:22]
Bugs System
Pushed into 5.5.4-m3 (revid:alik@sun.com-20100326080914-2pz8ns984e0spu03) (version source revid:alexey.kopytov@sun.com-20100307164059-cri8typa32cypq0l) (merge vers: 5.5.3-m2) (pib:16)
[26 Mar 2010 8:26]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100326081116-m3v4l34yhr43mtsv) (version source revid:alik@sun.com-20100325072612-4sds00ix8ajo1e84) (pib:16)
[26 Mar 2010 8:30]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100326081944-qja07qklw1p2w7jb) (version source revid:alik@sun.com-20100325073410-4t4i9gu2u1pge7xb) (merge vers: 6.0.14-alpha) (pib:16)
[30 Mar 2010 10:46]
Tony Bedford
An entry has been added to the 5.5.4, 5.5.5, and 6.0.14 changelogs:
A query on a FEDERATED table in which the
data was ordered by a TEXT column returned
incorrect results. For example, a query such as the following
would result in incorrect results if column
column1 was a TEXT column:
SELECT * FROM table1 ORDER BY column1;
[31 Mar 2010 16:16]
Paul DuBois
5.5.4 changelog entry was moved to 5.5.5.
[6 Apr 2010 7:57]
Bugs System
Pushed into 5.1.46 (revid:sergey.glukhov@sun.com-20100405111026-7kz1p8qlzglqgfmu) (version source revid:azundris@mysql.com-20100305174529-3foh5420hds1bgwo) (merge vers: 5.1.45) (pib:16)
[23 Apr 2010 9:59]
Tony Bedford
The changelog entry has been updated to include version 5.1.46.
[17 Jun 2010 12:02]
Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:45]
Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:martin.skold@mysql.com-20100609211156-tsac5qhw951miwtt) (merge vers: 5.1.46-ndb-6.2.19) (pib:16)
[17 Jun 2010 13:30]
Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)

Description: A simple SELECT * from a FEDERATED table gives corrupt results when you ORDER BY a TEXT field. How to repeat: On the Server: mysql> create table t1 (c1 text); Query OK, 0 rows affected (0.01 sec) mysql> insert into t1 values ('abc'),('gh'),('f'),('ijk'),('de'); Query OK, 5 rows affected (0.00 sec) Records: 5 Duplicates: 0 Warnings: 0 mysql> select * from t1; +------+ | c1 | +------+ | abc | | gh | | f | | ijk | | de | +------+ 5 rows in set (0.00 sec) mysql> select * from t1 order by c1; +------+ | c1 | +------+ | abc | | de | | f | | gh | | ijk | +------+ 5 rows in set (0.00 sec) On the Client: mysql> create table t1 (c1 text) engine=federated connection='mysql://root@127.0.0.1:3307/test/t1'; Query OK, 0 rows affected (0.01 sec) mysql> select * from t1; +------+ | c1 | +------+ | abc | | gh | | f | | ijk | | de | +------+ 5 rows in set (0.00 sec) mysql> select * from t1 order by c1; +------+ | c1 | +------+ | dek | | de | | d | | de | | dek | +------+ 5 rows in set (0.00 sec) On the Client again: If you change the FEDERATED table definition to use CHAR instead of TEXT, everything is fine. mysql> create table t2 (c1 char(10)) engine=federated connection='mysql://root@127.0.0.1:3307/test/t1'; Query OK, 0 rows affected (0.00 sec) mysql> select * from t2; +------+ | c1 | +------+ | abc | | gh | | f | | ijk | | de | +------+ 5 rows in set (0.00 sec) mysql> select * from t2 order by c1; +------+ | c1 | +------+ | abc | | de | | f | | gh | | ijk | +------+ 5 rows in set (0.00 sec) Suggested fix: Seems to be broken Client side in the FEDERATED engine. General Query Log on the Server show only "SELECT * FROM t1" queries being issued; ie, ORDER BY happens locally.