Bug #31559 | "group by" changed the implicit ordering | ||
---|---|---|---|
Submitted: | 12 Oct 2007 9:23 | Modified: | 12 Oct 2007 17:57 |
Reporter: | Joerg Bruehe | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Tests | Severity: | S7 (Test Cases) |
Version: | 5.0.50 | OS: | Any |
Assigned to: | Matthias Leich | CPU Architecture: | Any |
[12 Oct 2007 9:23]
Joerg Bruehe
[12 Oct 2007 11:42]
Martin Hansson
As far as the order of the result is concerned, this is correct. And as far as I can see, the ordering is all that differs from what you had. It is a bit confusing that the columns are not presented in the order they were grouped, but not incorrect. This is most likely because they appear in this order in an index. This is the exact wrong behavior observed in Bug #30596. It is completely safe to re-record this test case. I'm not familiar with the nist test suite so I pass this on.
[12 Oct 2007 15:33]
Matthias Leich
1. The original NIST test itself says only that a result set of 12 rows is expected. There is no printed result set included ! 2. The MySQL manual says in http://dev.mysql.com/doc/refman/5.1/en/select.html If you use GROUP BY, output rows are sorted according to the GROUP BY columns as if you had an ORDER BY for the same columns. Therefore I checked the old expected results and the current results again. Old expected results: SELECT * FROM WORKS GROUP BY PNUM,EMPNUM,HOURS; EMPNUM PNUM HOURS E1 P1 40 E1 P2 20 E1 P3 80 E1 P4 20 E1 P5 12 E1 P6 12 E2 P1 40 <-- (*) E2 P2 80 E3 P2 20 E4 P2 20 E4 P4 40 E4 P5 80 (*) Here start an ordering which violates the statement made within the manual It looks like the result set is ordered by EMPNUM, PNUM, HOURS but not by the order of columns after GROUP BY. That means - Martin Hansson is right - the old file with expected results is wrong. I will fix this.
[12 Oct 2007 17:51]
Matthias Leich
Fix pushed to mysql-test-extra-5.0 and mysql-test-extra-5.1
[12 Oct 2007 17:57]
Matthias Leich
Setting status from "Patch queued" to "Closed", because fixes pushed to mysql-test-extra-nnn do neither cause automatic pushbuild runs nor do they need to be merged in any main tree.