CURSOR after hitting end

Started by Bruce Momjianabout 26 years ago5 messageshackers
Jump to latest
#1Bruce Momjian
bruce@momjian.us

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, Pennsylvania 19026
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#1)
Re: CURSOR after hitting end

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

#3Bruce Momjian
bruce@momjian.us
In reply to: Tom Lane (#2)
Re: CURSOR after hitting end

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, Pennsylvania 19026
#4Hiroshi Inoue
Inoue@tpf.co.jp
In reply to: Bruce Momjian (#3)
RE: CURSOR after hitting end

-----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

#5Tatsuo Ishii
t-ishii@sra.co.jp
In reply to: Bruce Momjian (#3)
Re: CURSOR after hitting end

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