Re: [SQL] Move forward all (Was Re: How to get last 10 rows in a table on a large database?) - Mailing list pgsql-sql

From Stoyan Genov
Subject Re: [SQL] Move forward all (Was Re: How to get last 10 rows in a table on a large database?)
Date
Msg-id 199911080927.LAA03731@lorna.digsys.bg
Whole thread Raw
In response to RE: [SQL] Move forward all (Was Re: How to get last 10 rows in a table on a large database?)  ("Hiroshi Inoue" <Inoue@tpf.co.jp>)
List pgsql-sql
> > -----Original Message-----
> > From: owner-pgsql-sql@postgreSQL.org [mailto:owner-pgsql-sql@postgreSQL.
> > org]On Behalf Of Stoyan Genov
> > Sent: Sunday, November 07, 1999 7:25 PM
> > To: Tom Lane
> > Cc: pgsql-sql@postgreSQL.org
> > Subject: [SQL] Move forward all (Was Re: How to get last 10 rows in a
> > table on a large database?)
> > 
> > 
> > > > You are unable to say:
> > > >     begin transaction;
> > > >         declare tbl_cur cursor for .... .....
> > > >         move forward all in tbl_cur;
> > > >         fetch backward 10 in tbl_cur;
> > > >         ...........
> > > >     end transaction;
> > > > because when you "move forward all" the result gets lost.
> > > 
> > > Huh?  It seems to work fine for me.
> > 
> > Well, it does not seem to work for me neither on the 6.4.2 nor on the 
> > 6.5.(1|2)
> > version. I'll try 6.5.3 as well... 
> > Any ideas why this is so?
> >
> 
> Doesn't your query have any qualification(WHERE clause) about
> columns in index ?
> If there's no qualification,PostgreSQL optimizer chooses sequential
> scan(however current developing tree probably chooses Index scan
> in case of ORDER BY).
> In case of Index scan,"fetch backward .." after "move forward all" is
> possible after 6.5 ,
> But in case of sequential scan,maybe it's still impossible.

I have tested this - for a sequental scan it is still impossible (talking
6.4.2 and 6.5.* versions)

> I knew the way to fix it but am not sure now.
> Do you really want to make it possible ?
> It isn't an appropriate way to get last rows because "move forward
> all" takes very long time.
> 


Of course it is not an appropriate way to get the last rows like this.
The "right" way IMHO is to reverse the order in the query and to get the 
first
rows. 

It is just for the sake of truth...

> Regards.
> 
> Hiroshi Inoue
> Inoue@tpf.co.jp


Regards,
Stoyan Genov



pgsql-sql by date:

Previous
From: Oliver Fischer
Date:
Subject: Creating a index with a timestamp?
Next
From: Oliver Fischer
Date:
Subject: Creating a index with a timestamp?