Even if it is a kludge, it still accomplishes something that .raw() cannot
(as Dan put forth).  I think deprecating it in favor of raw doesn't make
much sense, since they are two different things.
On Mar 9, 2011 4:06 PM, "Dan Watson" <dcwat...@gmail.com> wrote:
>
>
> On Tuesday, March 8, 2011 6:16:26 PM UTC-5, Russell Keith-Magee wrote:
>>
>> On Wed, Mar 9, 2011 at 7:09 AM, Jacob Kaplan-Moss <ja...@jacobian.org>
>> wrote:
>> > On Tue, Mar 8, 2011 at 9:35 PM, bendavis78 <benda...@gmail.com> wrote:
>> >> I'd like to start a discussion on this since russelm closed the
>> >> issue. There are a few other people that believe the issue should be
>> >> left open. I've been using this patch for nearly two years, and have
>> >> found it to be useful in several different cases. I disagree that
>> >> the .raw() functionality is a sufficient alternative, as it is not
>> >> possible to modify an existing queryset using .raw(). For example,
>> >> if I have a function that accepts a queryset, I want to be able to
>> >> modify that queryset by giving it a extra info for the JOIN and SELECT
>> >> clauses.
>> >
>> > .extra() was a kludge that existed because .raw() didn't. Frankly, I'm
>> > considering deprecating and removing .extra() entirely:
>>
>> Yes. Yes Yes Yes. Yes. Oh, and Yes. +1.
>>
>> > I've rarely
>> > seen a case where using it didn't come back to cause problems in the
>> > future. I'm certainly going to be a strong -1 on adding any more
>> > "features" to .extra().
>>
>> Agreed. From an engineering perspective, extra() is the single most
>> fragile part of the ORM. Dumping extra would make me extraordinarily
>> happy.
>>
> It's also incredibly useful for certain situations. Two that come
> immediately to mind are augmenting objects returned with an extra field
via
> custom SQL (a subselect for instance), and using custom SQL (e.g.
to_tsquery
> for full-text searches in Postgres) in the WHERE clause. Both *could* be
> accomplished using .raw() if you don't mind giving up .filter(),
> .order_by(), etc. But it would be a shame to throw out everything a
queryset
> gives you just because you need hooks into the SQL it generates.
>
> If you're seriously considering deprecating .extra(), I think it would be
> beneficial to put together some use cases (such as those above) that could

> be covered in a less-fragile way.
>
> Dan
>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
"Django developers" group.
> To post to this group, send email to django-developers@googlegroups.com.
> To unsubscribe from this group, send email to
django-developers+unsubscr...@googlegroups.com.
> For more options, visit this group at
http://groups.google.com/group/django-developers?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to