id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 14139,Feature Request: distinct() should support field names,mjs7231,,"I have a table REPORTS containing the columns {id, user, date}. I was attempting to get the row with the largest date for each user. Using Django's ORM I can pretty much get what I want using the queryset definition below. However the resulting query adds parens around the extra() clause: {{{ queryset = Report.objects.extra(select={'lastid':""DISTINCT ON (user_id) id""}) queryset = queryset.order_by('user', '-date') queryset = queryset.values('lastid') }}} According to bug #1413, this is the wrong approach. A better solution is that distinct() should support field names: ''The ""select"" keyword in extra() should be used to select extra columns which can't be expressed in ORM (like complex expressions, using stored procedures, stuff like that) not to inject arbitrary SQL into a query. A better solution would be to support field names in distinct(), but that's a diffrent thing. After all, there is no reason why the ORM wouldn't put extra select columns on the end, which would also break your code.'' ",,closed,"Database layer (models, ORM)",1.2,,duplicate,,,Design decision needed,0,0,0,0,0,0