Skip site navigation (1) Skip section navigation (2)

Re: [GENERAL] Query is not using index when it should

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: (view raw, whole thread or download thread mbox)
Lists: pgsql-generalpgsql-performancepgsql-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

In response to

pgsql-performance by date

Next:From: Alvaro Nunes MeloDate: 2004-12-11 17:01:24
Subject: Very different index usage on similar tables
Previous:From: Mike RylanderDate: 2004-12-11 14:37:15
Subject: Re: LIMIT causes SEQSCAN in subselect

pgsql-sql by date

Next:From: Rod TaylorDate: 2004-12-11 16:35:01
Subject: Re: replacing mysql enum
Previous:From: Stephan SzaboDate: 2004-12-11 15:47:51
Subject: Re: replacing mysql enum

pgsql-general by date

Next:From: Michael FuhrDate: 2004-12-11 16:33:32
Subject: Re: Checking inequality
Previous:From: Ioannis TheoharisDate: 2004-12-11 15:27:02
Subject: Clustering in the presence of hierarchies (fwd)

Privacy Policy | About PostgreSQL
Copyright © 1996-2018 The PostgreSQL Global Development Group