1000
(1 row)
-QUERY: SELECT count(*) FROM onek where oidrand(onek.oid, 10);
-count
------
- 92
-(1 row)
+QUERY: SELECT count(*) AS random INTO RANDOM_TBL
+ FROM onek WHERE oidrand(onek.oid, 10);
+QUERY: INSERT INTO RANDOM_TBL (random)
+ SELECT count(*)
+ FROM onek WHERE oidrand(onek.oid, 10);
+QUERY: SELECT random, count(random) FROM RANDOM_TBL
+ GROUP BY random HAVING count(random) > 1;
+random|count
+------+-----
+(0 rows)
-QUERY: SELECT count(*) FROM onek where oidrand(onek.oid, 10);
-count
------
- 98
-(1 row)
+QUERY: SELECT random FROM RANDOM_TBL
+ WHERE random NOT BETWEEN 80 AND 120;
+random
+------
+(0 rows)
SELECT count(*) FROM onek;
-- select roughly 1/10 of the tuples
-SELECT count(*) FROM onek where oidrand(onek.oid, 10);
+-- Assume that the "onek" table has 1000 tuples
+-- and try to bracket the correct number so we
+-- have a regression test which can pass/fail
+-- - thomas 1998-08-17
+SELECT count(*) AS random INTO RANDOM_TBL
+ FROM onek WHERE oidrand(onek.oid, 10);
-- select again, the count should be different
-SELECT count(*) FROM onek where oidrand(onek.oid, 10);
+INSERT INTO RANDOM_TBL (random)
+ SELECT count(*)
+ FROM onek WHERE oidrand(onek.oid, 10);
+
+-- now test the results for randomness in the correct range
+SELECT random, count(random) FROM RANDOM_TBL
+ GROUP BY random HAVING count(random) > 1;
+
+SELECT random FROM RANDOM_TBL
+ WHERE random NOT BETWEEN 80 AND 120;