Bug #17729 Result corruption with ORDER BY and NDB tables
Submitted: 27 Feb 2006 1:15 Modified: 29 Mar 2006 10:02
Reporter: Simon Garner
Status: Closed
Category:Server: Cluster Severity:S2 (Serious)
Version:5.0.18 OS:Linux (linux)
Assigned to: Jonas Oreland Target Version:

[27 Feb 2006 1:15] Simon Garner
Description:
We are seeing an odd problem with selecting from a particular NDB Cluster table using a
particular index and ordering by one of the columns in the index. The data in some
columns of the result is being corrupted and showing incorrect values (some values from
other rows, and some values that are just bogus e.g. 'ë030-28-33 27:89:77' as a datetime
value).

The query can be simplified down to:

SELECT * FROM TableName USE INDEX (BrokenIndex) WHERE IndexIntCol = 1 AND (IndexDateCol
IS NULL OR IndexDateCol > NOW()) ORDER BY IndexDateCol ASC;

BrokenIndex is an index on (IndexIntCol, IndexDateCol)

The corrupted result columns are other columns in the table (not columns in the index).

I have tried recreating the index but all that happens is the bogus values change to
different ones. The same query with a different index or no USE INDEX works fine (but
slowly). (We have to use USE INDEX because NDB always selects the wrong indexes.)

How to repeat:
See private comment.
[27 Feb 2006 1:17] Simon Garner
I forgot to add that changing the ORDER BY from ASC to DESC also gives the correct values
in all the result columns.
[27 Feb 2006 11:54] Valeriy Kravchuk
Thank you for a problem report. You can upload your test case as private file, using the
Files tab.
[27 Mar 2006 16:54] Jonas Oreland
Simple testcase

Attachment: bug17729.sql (text/x-sql), 1.76 KiB.

[27 Mar 2006 16:55] Jonas Oreland
This "Simple testcase" gives incorrect result when running debug on 5.0.20 amd64
[28 Mar 2006 15:02] Jonas Oreland
http://lists.mysql.com/commits/4235
[29 Mar 2006 9:04] Jonas Oreland
pushed into 5.0.20
[29 Mar 2006 10:02] Jon Stephens
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Documented bugfix in 5.0.20 changelog. Closed.