Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
6812e95a
Commit
6812e95a
authored
Mar 15, 2004
by
Bruce Momjian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve random regression tests to fail less frequently.
parent
98bb1d20
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
55 additions
and
22 deletions
+55
-22
src/test/regress/expected/random.out
src/test/regress/expected/random.out
+29
-12
src/test/regress/sql/random.sql
src/test/regress/sql/random.sql
+26
-10
No files found.
src/test/regress/expected/random.out
View file @
6812e95a
...
@@ -2,34 +2,51 @@
...
@@ -2,34 +2,51 @@
-- RANDOM
-- RANDOM
-- Test the random function
-- Test the random function
--
--
-- count the number of tuples originally
-- count the number of tuples originally
, should be 1000
SELECT count(*) FROM onek;
SELECT count(*) FROM onek;
count
count
-------
-------
1000
1000
(1 row)
(1 row)
-- select roughly 1/10 of the tuples
-- pick three random rows, they shouldn't match
-- Assume that the "onek" table has 1000 tuples
(SELECT unique1 AS random
-- and try to bracket the correct number so we
FROM onek ORDER BY random() LIMIT 1)
-- have a regression test which can pass/fail
INTERSECT
-- - thomas 1998-08-17
(SELECT unique1 AS random
FROM onek ORDER BY random() LIMIT 1)
INTERSECT
(SELECT unique1 AS random
FROM onek ORDER BY random() LIMIT 1);
random
--------
(0 rows)
-- count roughly 1/10 of the tuples
SELECT count(*) AS random INTO RANDOM_TBL
SELECT count(*) AS random INTO RANDOM_TBL
FROM onek WHERE random() < 1.0/10;
FROM onek WHERE random() < 1.0/10;
-- select again, the count should be different
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
SELECT count(*)
FROM onek WHERE random() < 1.0/10;
FROM onek WHERE random() < 1.0/10;
-- now test the results for randomness in the correct range
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
FROM onek WHERE random() < 1.0/10;
-- select again, the count should be different
INSERT INTO RANDOM_TBL (random)
SELECT count(*)
FROM onek WHERE random() < 1.0/10;
-- now test that they are different counts
SELECT random, count(random) FROM RANDOM_TBL
SELECT random, count(random) FROM RANDOM_TBL
GROUP BY random HAVING count(random) >
1
;
GROUP BY random HAVING count(random) >
3
;
random | count
random | count
--------+-------
--------+-------
(0 rows)
(0 rows)
SELECT
random
FROM RANDOM_TBL
SELECT
AVG(random)
FROM RANDOM_TBL
WHERE random
NOT BETWEEN 80 AND 120;
HAVING AVG(random)
NOT BETWEEN 80 AND 120;
random
avg
-----
---
-----
(0 rows)
(0 rows)
src/test/regress/sql/random.sql
View file @
6812e95a
...
@@ -3,14 +3,20 @@
...
@@ -3,14 +3,20 @@
-- Test the random function
-- Test the random function
--
--
-- count the number of tuples originally
-- count the number of tuples originally
, should be 1000
SELECT
count
(
*
)
FROM
onek
;
SELECT
count
(
*
)
FROM
onek
;
-- select roughly 1/10 of the tuples
-- pick three random rows, they shouldn't match
-- Assume that the "onek" table has 1000 tuples
(
SELECT
unique1
AS
random
-- and try to bracket the correct number so we
FROM
onek
ORDER
BY
random
()
LIMIT
1
)
-- have a regression test which can pass/fail
INTERSECT
-- - thomas 1998-08-17
(
SELECT
unique1
AS
random
FROM
onek
ORDER
BY
random
()
LIMIT
1
)
INTERSECT
(
SELECT
unique1
AS
random
FROM
onek
ORDER
BY
random
()
LIMIT
1
);
-- count roughly 1/10 of the tuples
SELECT
count
(
*
)
AS
random
INTO
RANDOM_TBL
SELECT
count
(
*
)
AS
random
INTO
RANDOM_TBL
FROM
onek
WHERE
random
()
<
1
.
0
/
10
;
FROM
onek
WHERE
random
()
<
1
.
0
/
10
;
...
@@ -19,10 +25,20 @@ INSERT INTO RANDOM_TBL (random)
...
@@ -19,10 +25,20 @@ INSERT INTO RANDOM_TBL (random)
SELECT
count
(
*
)
SELECT
count
(
*
)
FROM
onek
WHERE
random
()
<
1
.
0
/
10
;
FROM
onek
WHERE
random
()
<
1
.
0
/
10
;
-- now test the results for randomness in the correct range
-- select again, the count should be different
INSERT
INTO
RANDOM_TBL
(
random
)
SELECT
count
(
*
)
FROM
onek
WHERE
random
()
<
1
.
0
/
10
;
-- select again, the count should be different
INSERT
INTO
RANDOM_TBL
(
random
)
SELECT
count
(
*
)
FROM
onek
WHERE
random
()
<
1
.
0
/
10
;
-- now test that they are different counts
SELECT
random
,
count
(
random
)
FROM
RANDOM_TBL
SELECT
random
,
count
(
random
)
FROM
RANDOM_TBL
GROUP
BY
random
HAVING
count
(
random
)
>
1
;
GROUP
BY
random
HAVING
count
(
random
)
>
3
;
SELECT
random
FROM
RANDOM_TBL
SELECT
AVG
(
random
)
FROM
RANDOM_TBL
WHERE
random
NOT
BETWEEN
80
AND
120
;
HAVING
AVG
(
random
)
NOT
BETWEEN
80
AND
120
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment