From: | Scott Marlowe <smarlowe(at)g2switchworks(dot)com> |
---|---|
To: | Joseph Shraibman <jks(at)selectacast(dot)net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Cursor not getting all rows |
Date: | 2005-05-17 17:29:51 |
Message-ID: | 1116350990.22291.131.camel@state.g2switchworks.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, 2005-05-17 at 12:19, Joseph Shraibman wrote:
> I'm running:
>
> PostgreSQL 7.4.7 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2.2
> 20030222 (Red Hat Linux 3.2.2-5)
>
>
> I do this:
>
> BEGIN;
> SELECT count(*) FROM u, d WHERE u.id = d.id AND ... ;
> DECLARE cname CURSOR FOR SELECT u.field, d.field FROM u, d WHERE u.id =
> d.id AND ... ;
>
> At the end of the fetching if the number of fetched does not equal the
> number from the SELECT count(*) I print out a warning message. It
> happens every once in a while. Today it happened four times.
>
> 1) missed 1 out of 703773
> 2) missed 3 out of 703765
> 3) missed 10 out of 703743
> 4) missed 12 out of 703660
>
> How is this possible? Because they are in the same transaction the
> count and the cursor should see the exact same data, right?
Only if you set transaction isolation to serializable.
From | Date | Subject | |
---|---|---|---|
Next Message | Joseph Shraibman | 2005-05-17 17:31:53 | TIP 9 |
Previous Message | Joseph Shraibman | 2005-05-17 17:19:36 | Cursor not getting all rows |