aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2016-01-09 17:20:58 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2016-01-09 17:20:58 -0500
commit3ef16c46fb3a64c150a3b42c3cc4a8538a12ff3f (patch)
treed9f714d438a5ba31f92a119cf4eb85c48609b7ef /src
parent26d538dc93543ed80c315b8313ea4dacd7309ff6 (diff)
downloadpostgresql-3ef16c46fb3a64c150a3b42c3cc4a8538a12ff3f.tar.gz
postgresql-3ef16c46fb3a64c150a3b42c3cc4a8538a12ff3f.zip
Add some checks on "char"-type columns to type_sanity and opr_sanity.
I noticed that the sanity checks in the regression tests omitted to check a couple of "poor man's enum" columns that you'd reasonably expect them to check. There are other "char"-type columns in system catalogs that are not covered by either type_sanity or opr_sanity, e.g. pg_rewrite.ev_type. However, those catalogs are not populated with any manually-created data during bootstrap, so it seems less necessary to check them this way.
Diffstat (limited to 'src')
-rw-r--r--src/test/regress/expected/opr_sanity.out4
-rw-r--r--src/test/regress/expected/type_sanity.out4
-rw-r--r--src/test/regress/sql/opr_sanity.sql4
-rw-r--r--src/test/regress/sql/type_sanity.sql4
4 files changed, 12 insertions, 4 deletions
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out
index 616e67405e0..f786962488c 100644
--- a/src/test/regress/expected/opr_sanity.out
+++ b/src/test/regress/expected/opr_sanity.out
@@ -57,7 +57,9 @@ WHERE p1.prolang = 0 OR p1.prorettype = 0 OR
array_upper(p1.proargtypes, 1) != p1.pronargs-1 OR
0::oid = ANY (p1.proargtypes) OR
procost <= 0 OR
- CASE WHEN proretset THEN prorows <= 0 ELSE prorows != 0 END;
+ CASE WHEN proretset THEN prorows <= 0 ELSE prorows != 0 END OR
+ provolatile NOT IN ('i', 's', 'v') OR
+ proparallel NOT IN ('s', 'r', 'u');
oid | proname
-----+---------
(0 rows)
diff --git a/src/test/regress/expected/type_sanity.out b/src/test/regress/expected/type_sanity.out
index e2a7a418a8a..e5adfba631d 100644
--- a/src/test/regress/expected/type_sanity.out
+++ b/src/test/regress/expected/type_sanity.out
@@ -465,7 +465,9 @@ ORDER BY 1;
-- Look for illegal values in pg_class fields
SELECT p1.oid, p1.relname
FROM pg_class as p1
-WHERE p1.relkind NOT IN ('r', 'i', 's', 'S', 'c', 't', 'v', 'f');
+WHERE relkind NOT IN ('r', 'i', 's', 'S', 'c', 't', 'v', 'f') OR
+ relpersistence NOT IN ('p', 'u', 't') OR
+ relreplident NOT IN ('d', 'n', 'f', 'i');
oid | relname
-----+---------
(0 rows)
diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql
index d6aa2e8623d..9a55aea5d30 100644
--- a/src/test/regress/sql/opr_sanity.sql
+++ b/src/test/regress/sql/opr_sanity.sql
@@ -64,7 +64,9 @@ WHERE p1.prolang = 0 OR p1.prorettype = 0 OR
array_upper(p1.proargtypes, 1) != p1.pronargs-1 OR
0::oid = ANY (p1.proargtypes) OR
procost <= 0 OR
- CASE WHEN proretset THEN prorows <= 0 ELSE prorows != 0 END;
+ CASE WHEN proretset THEN prorows <= 0 ELSE prorows != 0 END OR
+ provolatile NOT IN ('i', 's', 'v') OR
+ proparallel NOT IN ('s', 'r', 'u');
-- prosrc should never be null or empty
SELECT p1.oid, p1.proname
diff --git a/src/test/regress/sql/type_sanity.sql b/src/test/regress/sql/type_sanity.sql
index 574ef9c6e2c..f7c5c9d5d43 100644
--- a/src/test/regress/sql/type_sanity.sql
+++ b/src/test/regress/sql/type_sanity.sql
@@ -339,7 +339,9 @@ ORDER BY 1;
SELECT p1.oid, p1.relname
FROM pg_class as p1
-WHERE p1.relkind NOT IN ('r', 'i', 's', 'S', 'c', 't', 'v', 'f');
+WHERE relkind NOT IN ('r', 'i', 's', 'S', 'c', 't', 'v', 'f') OR
+ relpersistence NOT IN ('p', 'u', 't') OR
+ relreplident NOT IN ('d', 'n', 'f', 'i');
-- Indexes should have an access method, others not.