From: | Michael Fuhr <mike(at)fuhr(dot)org> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: [GENERAL] Query is not using index when it should |
Date: | 2004-12-11 16:25:39 |
Message-ID: | 20041211162539.GA66539@winnie.fuhr.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-performance pgsql-sql |
On Sat, Dec 11, 2004 at 03:32:13PM +0100, Steinar H. Gunderson wrote:
> On Sat, Dec 11, 2004 at 03:17:13PM +0100, Tomas Skäre wrote:
> > select c.* from cjm_object c
> > inner join
> > (select max(timestamp) as timestamp,objectid,field from cjm_object
> > group by objectid,field) t
> > using(timestamp,objectid,field)
> > where 1=1 and data is not null
> > order by objectid,field;
>
> Usually, SELECT max(field) FROM table is better written in PostgreSQL as
> SELECT field FROM table ORDER field DESC LIMIT 1.
>
> I don't see the point of "where 1=1", though...
I've seen that in generated queries. The generating program uses
"WHERE 1=1" to simplify the addition of other conditions: instead
of checking if it needs to add a WHERE and putting ANDs in the right
places, it simply appends subsequent conditions with " AND condition".
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Fuhr | 2004-12-11 16:33:32 | Re: Checking inequality |
Previous Message | Ioannis Theoharis | 2004-12-11 15:27:02 | Clustering in the presence of hierarchies (fwd) |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Nunes Melo | 2004-12-11 17:01:24 | Very different index usage on similar tables |
Previous Message | Mike Rylander | 2004-12-11 14:37:15 | Re: LIMIT causes SEQSCAN in subselect |
From | Date | Subject | |
---|---|---|---|
Next Message | Rod Taylor | 2004-12-11 16:35:01 | Re: replacing mysql enum |
Previous Message | Stephan Szabo | 2004-12-11 15:47:51 | Re: replacing mysql enum |