[Mono-bugs] [Bug 572540] New: Linq query ignores more than two orderby keys

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Jan 21 00:21:47 EST 2010



           Summary: Linq query ignores more than two orderby keys
    Classification: Mono
           Product: Mono: Compilers
           Version: 2.6.x
          Platform: All
        OS/Version: Ubuntu
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: C#
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: sgroot at tkl.iis.u-tokyo.ac.jp
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

Created an attachment (id=337859)
 --> (http://bugzilla.novell.com/attachment.cgi?id=337859)
Example program source demonstrating the bug

User-Agent:       Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64;
Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;
Media Center PC 6.0; InfoPath.3)

If a linq query uses an orderby clause with more than two values, the compiler
uses only the first two and ignores the rest.

This can be seen when viewing the resulting IL; the compiler will output a call
to Enumerable.OrderBy for the first sort key, and a call to Enumerable.ThenBy
for the second sort key, but it does not emit a call to Enumerable.ThenBy for
any of the remaining sort keys.

This is strictly a compiler bug, because manually calling ThenBy the
appropriate number of times does yield the correct result.

Reproducible: Always

Steps to Reproduce:
1. Write a program with a linq expression that sorts on more than two sort keys
(an example is attached to this bug report).
2. Compile this program with gmcs.
3. Run it to observe incorrect behaviour.
Actual Results:  
The gmcs compiler emits code to sort by the first two keys, but not by the
remaining keys.

Expected Results:  
The compiler should emit code to use all the specified sort keys.

Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.

More information about the mono-bugs mailing list