cursor bug

From: <washingtonirving(at)yahoo(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: cursor bug
Date: 2003-08-30 20:24:42
Message-ID: 20030830202442.93062.qmail@web41011.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi. I sent this bug to the bugs mailing list. But the email never turned
up on the list. Could somebody here tell me what I'm doing wrong, and why
the email won't show up? Am I breaking some unwritten rule of the bugs
list? I would really like to see an answer to this.

Thanks a lot!

-w

---
washingtonirving(at)yahoo(dot)com wrote:

============================================================================
POSTGRESQL BUG REPORT TEMPLATE

============================================================================
Your name : washington irving
Your email address : washingtonirving(at)yahoo(dot)com

System Configuration---------------------
Architecture (example: Intel Pentium) : Intel
Pentium/powerpc-apple-darwin6.6

Operating System (example: Linux 2.0.26 ELF) :Linux 2.4.18 ELF,
FreeBSD 4.8 Release, Mac OSX 10.2.6

PostgreSQL version (example: PostgreSQL-7.3.4): PostgreSQL-7.3.4,
7.3.3

Compiler used (example: gcc 2.95.2) :gcc3.1, gcc 3.3.1, gcc 2.95.4

Please enter a FULL description of your problem:
------------------------------------------------
Under some cases, using cursors and the fetch and move commands don't
work as expected. Please see below for a full decription of the
problem
with the attached dump.

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

I'm attaching the dump of a database named test. I've managed to
reproduce this bug on freebsd (postgresql 7.3.3), linux (7.3.3) and
mac osx
(both 7.3.3. and 7.3.4). This is the smallest test case I could come
up
with. In this test, I first declare a cursor and
then try to fetch 10k rows. It returns 2153 rows (the number of rowsthat
satisfy the select). Then I try to fetch another 10k rows. This
returns an empty list (as it should). Then I try to move the cursor
back by 2153. This does not move the cursor at all. This happens
regardless of the number you use in the fetch command (for instance
fetching 1000 rows at a time). It also happens regardless of the
number
passed in to the move command.

Either this is a bug, or I'm doing something terribly wrong. Could
people who know more about this please look into it.

-- psql session showing problem --
unix prompt> psql test
Welcome to psql 7.3.3, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

test=# begin;
BEGINtest=# declare c cursor for SELECT * from pa, ua where ua.adid =
pa.adid
and pa.pid = 1;
DECLARE CURSOR
test=# fetch 10000 from c;
.... 2153 rows returned ....
test=# fetch 10000 from c;
pid | adid | cid | k | c | u | ad | adid
(0 rows)
test=# move -2153 from c;
MOVE 0
test=# fetch 10000 from c; pid | adid | cid | k | c | u | ad | adid
-----+------+-----+---+---+---+----+------
(0 rows)

test=#

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Christopher Browne 2003-08-30 21:59:32 Re: Btrieve
Previous Message Alvaro Herrera 2003-08-30 20:10:48 Re: Database corupption on pg 7.3.3