Improve regression test for pg_filenode_relation().

Make it print the details in case there's a failure.

Andres Freund, slightly modified by me
This commit is contained in:
Tom Lane 2014-03-28 16:58:09 -04:00
parent e1827012ed
commit 9613a1d98e
2 changed files with 15 additions and 26 deletions

View File

@ -2319,22 +2319,16 @@ Check constraints:
DROP TABLE alter2.tt8;
DROP SCHEMA alter2;
-- Check that we map relation oids to filenodes and back correctly.
-- Don't display all the mappings so the test output doesn't change
-- all the time, but make sure we actually do test some values.
-- Only display bad mappings so the test output doesn't change all the
-- time.
SELECT
SUM((mapped_oid != oid OR mapped_oid IS NULL)::int) incorrectly_mapped,
count(*) > 200 have_mappings
FROM (
SELECT
oid, reltablespace, relfilenode, relname,
pg_filenode_relation(reltablespace, pg_relation_filenode(oid)) mapped_oid
FROM pg_class
WHERE relkind IN ('r', 'i', 'S', 't', 'm')
) mapped;
incorrectly_mapped | have_mappings
--------------------+---------------
0 | t
(1 row)
oid, mapped_oid, reltablespace, relfilenode, relname
FROM pg_class,
pg_filenode_relation(reltablespace, pg_relation_filenode(oid)) AS mapped_oid
WHERE relkind IN ('r', 'i', 'S', 't', 'm') AND mapped_oid IS DISTINCT FROM oid;
oid | mapped_oid | reltablespace | relfilenode | relname
-----+------------+---------------+-------------+---------
(0 rows)
-- Checks on creating and manipulation of user defined relations in
-- pg_catalog.

View File

@ -1554,18 +1554,13 @@ DROP TABLE alter2.tt8;
DROP SCHEMA alter2;
-- Check that we map relation oids to filenodes and back correctly.
-- Don't display all the mappings so the test output doesn't change
-- all the time, but make sure we actually do test some values.
-- Only display bad mappings so the test output doesn't change all the
-- time.
SELECT
SUM((mapped_oid != oid OR mapped_oid IS NULL)::int) incorrectly_mapped,
count(*) > 200 have_mappings
FROM (
SELECT
oid, reltablespace, relfilenode, relname,
pg_filenode_relation(reltablespace, pg_relation_filenode(oid)) mapped_oid
FROM pg_class
WHERE relkind IN ('r', 'i', 'S', 't', 'm')
) mapped;
oid, mapped_oid, reltablespace, relfilenode, relname
FROM pg_class,
pg_filenode_relation(reltablespace, pg_relation_filenode(oid)) AS mapped_oid
WHERE relkind IN ('r', 'i', 'S', 't', 'm') AND mapped_oid IS DISTINCT FROM oid;
-- Checks on creating and manipulation of user defined relations in
-- pg_catalog.