Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
6812e95a
Commit
6812e95a
authored
21 years ago
by
Bruce Momjian
Browse files
Options
Downloads
Patches
Plain Diff
Improve random regression tests to fail less frequently.
parent
98bb1d20
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/test/regress/expected/random.out
+29
-12
29 additions, 12 deletions
src/test/regress/expected/random.out
src/test/regress/sql/random.sql
+26
-10
26 additions, 10 deletions
src/test/regress/sql/random.sql
with
55 additions
and
22 deletions
src/test/regress/expected/random.out
+
29
−
12
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)
This diff is collapsed.
Click to expand it.
src/test/regress/sql/random.sql
+
26
−
10
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
;
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment