Обсуждение: CURSOR after hitting end
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
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
> 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
> -----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
> > 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