> > >
> > > > 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...
> > >
> >
> > OK Attached is a patch.
> > Could you apply to 6.5.3 ?
> >
>
> Sorry the patch is not right for 6.5.3 .
> Please apply the following patch to 6.5.3 .
>
> Regards.
>
> Hiroshi Inoue
> Inoue@tpf.co.jp
>
> *** access/heap/heapam.c.orig Mon Aug 2 14:56:36 1999
> --- access/heap/heapam.c Tue Nov 9 12:59:48 1999
> ***************
> *** 775,782 ****
> if (scan->rs_ptup.t_data == scan->rs_ctup.t_data &&
> BufferIsInvalid(scan->rs_pbuf))
> {
> - if (BufferIsValid(scan->rs_nbuf))
> - ReleaseBuffer(scan->rs_nbuf);
> return NULL;
> }
>
> --- 775,780 ----
> ***************
> *** 833,842 ****
> ReleaseBuffer(scan->rs_pbuf);
> scan->rs_ptup.t_data = NULL;
> scan->rs_pbuf = InvalidBuffer;
> - if (BufferIsValid(scan->rs_nbuf))
> - ReleaseBuffer(scan->rs_nbuf);
> - scan->rs_ntup.t_data = NULL;
> - scan->rs_nbuf = InvalidBuffer;
> return NULL;
> }
>
> --- 831,836 ----
> ***************
> *** 855,862 ****
> if (scan->rs_ctup.t_data == scan->rs_ntup.t_data &&
> BufferIsInvalid(scan->rs_nbuf))
> {
> - if (BufferIsValid(scan->rs_pbuf))
> - ReleaseBuffer(scan->rs_pbuf);
> HEAPDEBUG_3; /* heap_getnext returns NULL at end */
> return NULL;
> }
> --- 849,854 ----
> ***************
> *** 915,924 ****
> ReleaseBuffer(scan->rs_nbuf);
> scan->rs_ntup.t_data = NULL;
> scan->rs_nbuf = InvalidBuffer;
> - if (BufferIsValid(scan->rs_pbuf))
> - ReleaseBuffer(scan->rs_pbuf);
> - scan->rs_ptup.t_data = NULL;
> - scan->rs_pbuf = InvalidBuffer;
> HEAPDEBUG_6; /* heap_getnext returning EOS */
> return NULL;
> }
> --- 907,912 ----
>
>
>
> ************
>
I have applied the patch.
Now postgres 6.5.3 works fine (FETCH BACKWARD fetches
result after MOVE FORWARD ALL/FETCH FORWARD ALL).
Thank you very much.
Regards,
Stoyan Genov