Обсуждение: CURSOR after hitting end

Поиск
Список
Период
Сортировка

CURSOR after hitting end

От
Bruce Momjian
Дата:
We have this in the CURSOR documentation:
      Once  all  rows  are  fetched,  every  other  fetch access      returns no rows.

Is this still true?

--  Bruce Momjian                        |  http://www.op.net/~candle pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


Re: CURSOR after hitting end

От
Tom Lane
Дата:
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> We have this in the CURSOR documentation:
>        Once  all  rows  are  fetched,  every  other  fetch access
>        returns no rows.

> Is this still true?

Not if you then move or fetch backwards, I should think...
        regards, tom lane


Re: CURSOR after hitting end

От
Bruce Momjian
Дата:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > We have this in the CURSOR documentation:
> >        Once  all  rows  are  fetched,  every  other  fetch access
> >        returns no rows.
> 
> > Is this still true?
> 
> Not if you then move or fetch backwards, I should think...

No, it works.  I think Tatsuo fixed it.  After a FETCH ALL, I did this,
and it worked:

test=> fetch -1  from bigtable_cursor; customer_id -------------        1000(1 row)test=> fetch -1  from
bigtable_cursor;customer_id -------------         999(1 row)
 

--  Bruce Momjian                        |  http://www.op.net/~candle pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


RE: CURSOR after hitting end

От
"Hiroshi Inoue"
Дата:
> -----Original Message-----
> From: pgsql-hackers-owner@hub.org [mailto:pgsql-hackers-owner@hub.org]On
> Behalf Of Bruce Momjian
> 
> > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > > We have this in the CURSOR documentation:
> > >        Once  all  rows  are  fetched,  every  other  fetch access
> > >        returns no rows.
> > 
> > > Is this still true?
> > 
> > Not if you then move or fetch backwards, I should think...
> 
> No, it works.  I think Tatsuo fixed it.  After a FETCH ALL, I did this,
> and it worked:
>

This is true and false.
For index scan I fixed it before 6.5 and for sequential scan
I fixed it before 7.0.

However there remains some type of scan that returns no rows
after hitting end.
Especially for GROUP BY,*fetch backward* doesn't work well 
fundamentally.  I have known this but I've never seen bug
reports for this.  It's not so easy to fix this and it wouldn't be
an effective way to scan base relation again for *GROUP BY*.

Regards.

Hiroshi Inoue
Inoue@tpf.co.jp


Re: CURSOR after hitting end

От
Tatsuo Ishii
Дата:
> > Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > > We have this in the CURSOR documentation:
> > >        Once  all  rows  are  fetched,  every  other  fetch access
> > >        returns no rows.
> > 
> > > Is this still true?
> > 
> > Not if you then move or fetch backwards, I should think...
> 
> No, it works.  I think Tatsuo fixed it.  After a FETCH ALL, I did this,         ~~~~~~must be Hiroshi...
> and it worked:
--
Tatsuo Ishii