On Mon, Jul 25, 2005 at 07:06:46PM -0300, Marc G. Fournier wrote:
>
>
> On Mon, 25 Jul 2005, Jim C. Nasby wrote:
>
> >On Mon, Jul 25, 2005 at 06:11:08PM -0300, Marc G. Fournier wrote:
> >>
> >>Just curious as to whether or not a warning or something should be issued
> >>in a case like:
> >>
> >> SELECT c.*
> >> FROM company c, company_summary cs
> >> WHERE c.id = cs.id
> >> AND cs.detail = 'test'
> >>ORDER BY cs.fullname;
> >>
> >>Unless I'm missing something, the ORDER BY clause has no effect, but an
> >>EXPLAIN shows it does take extra time, obviously ...
> >
> >Uh, I'd hope it had an effect. Note that RDBMSes have been moving
> >towards allowing fields in ORDER BY that aren't in the SELECT list,
> >though in the past it was common that anything in ORDER BY had to also
> >be in SELECT.
>
> 'k, in the test case I've been working with, the query always returns 1
> row, so my test case wouldn't have shown a difference ... but, if it does
> have an affect, how? The ORDER BY is on the final result set, and if
> there is no cs.fullname in that result, what exactly is it ordering?
decibel=# select usename, usesysid from pg_user;usename | usesysid
----------+----------postgres | 1decibel | 100
(2 rows)
decibel=# select usesysid from pg_user order by usename;usesysid
---------- 100 1
(2 rows)
decibel=# explain analyze select usesysid from pg_user order by usename;
QUERYPLAN
----------------------------------------------------------------------------------------------------------Sort
(cost=1.02..1.02rows=1 width=68) (actual time=0.182..0.183 rows=2 loops=1) Sort Key: pg_shadow.usename -> Seq Scan
onpg_shadow (cost=0.00..1.01 rows=1 width=68) (actual time=0.060..0.077 rows=2 loops=1)Total runtime: 0.518 ms
(4 rows)
decibel=#
--
Jim C. Nasby, Database Consultant decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828
Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"