Re: EquivalenceClasses vs volatile functions

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Gregory Stark <stark(at)enterprisedb(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: EquivalenceClasses vs volatile functions
Date: 2007-11-07 05:29:59
Message-ID: 7931.1194413399@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Gregory Stark <stark(at)enterprisedb(dot)com> writes:
> What if the equivalence class is in more than one place in the ORDER BY?

That's not a problem. ORDER BY 1,1 is not different from ORDER BY 1,
even if the referenced expression is volatile, because the secondary
sort key is useless anyway.

> And what would happen when you pull up subqueries?

I think I know how to deal with that. The worst case would be that

select * from (select random() as a from foo order by a) ss
order by ss.a

would incur two sorts instead of one because we fail to acknowledge the
subquery's sort key as being the same thing as the upper query's. It
*should* be possible to avoid that, but if it gets too complicated I'll
leave it on the table for 8.4.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Hannu Krosing 2007-11-07 09:10:19 Re: Test lab
Previous Message Tom Lane 2007-11-07 05:24:24 Re: Beta2 crash / create type + tsearch2