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. ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq