aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/test/regress/expected/oidjoins.out48
-rw-r--r--src/test/regress/input/largeobject.source4
-rw-r--r--src/test/regress/output/largeobject.source6
-rw-r--r--src/test/regress/output/largeobject_1.source6
-rw-r--r--src/test/regress/sql/oidjoins.sql24
-rw-r--r--src/tools/RELEASE_CHANGES2
-rw-r--r--src/tools/findoidjoins/README7
-rw-r--r--src/tools/findoidjoins/findoidjoins.c18
8 files changed, 101 insertions, 14 deletions
diff --git a/src/test/regress/expected/oidjoins.out b/src/test/regress/expected/oidjoins.out
index 1302cc271ba..92f9143d06f 100644
--- a/src/test/regress/expected/oidjoins.out
+++ b/src/test/regress/expected/oidjoins.out
@@ -961,6 +961,46 @@ WHERE staop5 != 0 AND
------+--------
(0 rows)
+SELECT ctid, stacoll1
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll1 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll1);
+ ctid | stacoll1
+------+----------
+(0 rows)
+
+SELECT ctid, stacoll2
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll2 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll2);
+ ctid | stacoll2
+------+----------
+(0 rows)
+
+SELECT ctid, stacoll3
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll3 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll3);
+ ctid | stacoll3
+------+----------
+(0 rows)
+
+SELECT ctid, stacoll4
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll4 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll4);
+ ctid | stacoll4
+------+----------
+(0 rows)
+
+SELECT ctid, stacoll5
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll5 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll5);
+ ctid | stacoll5
+------+----------
+(0 rows)
+
SELECT ctid, stxrelid
FROM pg_catalog.pg_statistic_ext fk
WHERE stxrelid != 0 AND
@@ -1041,6 +1081,14 @@ WHERE tgrelid != 0 AND
------+---------
(0 rows)
+SELECT ctid, tgparentid
+FROM pg_catalog.pg_trigger fk
+WHERE tgparentid != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_trigger pk WHERE pk.oid = fk.tgparentid);
+ ctid | tgparentid
+------+------------
+(0 rows)
+
SELECT ctid, tgfoid
FROM pg_catalog.pg_trigger fk
WHERE tgfoid != 0 AND
diff --git a/src/test/regress/input/largeobject.source b/src/test/regress/input/largeobject.source
index 7e45b1172ad..f40338ddf88 100644
--- a/src/test/regress/input/largeobject.source
+++ b/src/test/regress/input/largeobject.source
@@ -253,9 +253,9 @@ SELECT lo_get(:newloid);
-- Create one more object that we leave behind for testing pg_dump/pg_upgrade;
-- this one intentionally has an OID in the system range
-SELECT lo_create(3001);
+SELECT lo_create(2121);
-COMMENT ON LARGE OBJECT 3001 IS 'testing comments';
+COMMENT ON LARGE OBJECT 2121 IS 'testing comments';
-- Clean up
DROP TABLE lotest_stash_values;
diff --git a/src/test/regress/output/largeobject.source b/src/test/regress/output/largeobject.source
index 761d7ff3015..ea712a5e2fd 100644
--- a/src/test/regress/output/largeobject.source
+++ b/src/test/regress/output/largeobject.source
@@ -469,13 +469,13 @@ SELECT lo_get(:newloid);
-- Create one more object that we leave behind for testing pg_dump/pg_upgrade;
-- this one intentionally has an OID in the system range
-SELECT lo_create(3001);
+SELECT lo_create(2121);
lo_create
-----------
- 3001
+ 2121
(1 row)
-COMMENT ON LARGE OBJECT 3001 IS 'testing comments';
+COMMENT ON LARGE OBJECT 2121 IS 'testing comments';
-- Clean up
DROP TABLE lotest_stash_values;
DROP ROLE regress_lo_user;
diff --git a/src/test/regress/output/largeobject_1.source b/src/test/regress/output/largeobject_1.source
index 7de3e7ea6f6..f01596cea7b 100644
--- a/src/test/regress/output/largeobject_1.source
+++ b/src/test/regress/output/largeobject_1.source
@@ -469,13 +469,13 @@ SELECT lo_get(:newloid);
-- Create one more object that we leave behind for testing pg_dump/pg_upgrade;
-- this one intentionally has an OID in the system range
-SELECT lo_create(3001);
+SELECT lo_create(2121);
lo_create
-----------
- 3001
+ 2121
(1 row)
-COMMENT ON LARGE OBJECT 3001 IS 'testing comments';
+COMMENT ON LARGE OBJECT 2121 IS 'testing comments';
-- Clean up
DROP TABLE lotest_stash_values;
DROP ROLE regress_lo_user;
diff --git a/src/test/regress/sql/oidjoins.sql b/src/test/regress/sql/oidjoins.sql
index b774cbca5b6..8a833a23fda 100644
--- a/src/test/regress/sql/oidjoins.sql
+++ b/src/test/regress/sql/oidjoins.sql
@@ -481,6 +481,26 @@ SELECT ctid, staop5
FROM pg_catalog.pg_statistic fk
WHERE staop5 != 0 AND
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_operator pk WHERE pk.oid = fk.staop5);
+SELECT ctid, stacoll1
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll1 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll1);
+SELECT ctid, stacoll2
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll2 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll2);
+SELECT ctid, stacoll3
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll3 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll3);
+SELECT ctid, stacoll4
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll4 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll4);
+SELECT ctid, stacoll5
+FROM pg_catalog.pg_statistic fk
+WHERE stacoll5 != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_collation pk WHERE pk.oid = fk.stacoll5);
SELECT ctid, stxrelid
FROM pg_catalog.pg_statistic_ext fk
WHERE stxrelid != 0 AND
@@ -521,6 +541,10 @@ SELECT ctid, tgrelid
FROM pg_catalog.pg_trigger fk
WHERE tgrelid != 0 AND
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_class pk WHERE pk.oid = fk.tgrelid);
+SELECT ctid, tgparentid
+FROM pg_catalog.pg_trigger fk
+WHERE tgparentid != 0 AND
+ NOT EXISTS(SELECT 1 FROM pg_catalog.pg_trigger pk WHERE pk.oid = fk.tgparentid);
SELECT ctid, tgfoid
FROM pg_catalog.pg_trigger fk
WHERE tgfoid != 0 AND
diff --git a/src/tools/RELEASE_CHANGES b/src/tools/RELEASE_CHANGES
index a7bff76b768..6ba9121e303 100644
--- a/src/tools/RELEASE_CHANGES
+++ b/src/tools/RELEASE_CHANGES
@@ -80,6 +80,8 @@ but there may be reasons to do them at other times as well.
* Update Unicode data: Edit UNICODE_VERSION and CLDR_VERSION in
src/Makefile.global.in, run make update-unicode, and commit.
+* Update the oidjoins regression test (see src/tools/findoidjoins/).
+
Starting a New Development Cycle
================================
diff --git a/src/tools/findoidjoins/README b/src/tools/findoidjoins/README
index e5fc3104d3b..a177c10375b 100644
--- a/src/tools/findoidjoins/README
+++ b/src/tools/findoidjoins/README
@@ -180,15 +180,22 @@ Join pg_catalog.pg_statistic.staop2 => pg_catalog.pg_operator.oid
Join pg_catalog.pg_statistic.staop3 => pg_catalog.pg_operator.oid
Join pg_catalog.pg_statistic.staop4 => pg_catalog.pg_operator.oid
Join pg_catalog.pg_statistic.staop5 => pg_catalog.pg_operator.oid
+Join pg_catalog.pg_statistic.stacoll1 => pg_catalog.pg_collation.oid
+Join pg_catalog.pg_statistic.stacoll2 => pg_catalog.pg_collation.oid
+Join pg_catalog.pg_statistic.stacoll3 => pg_catalog.pg_collation.oid
+Join pg_catalog.pg_statistic.stacoll4 => pg_catalog.pg_collation.oid
+Join pg_catalog.pg_statistic.stacoll5 => pg_catalog.pg_collation.oid
Join pg_catalog.pg_statistic_ext.stxrelid => pg_catalog.pg_class.oid
Join pg_catalog.pg_statistic_ext.stxnamespace => pg_catalog.pg_namespace.oid
Join pg_catalog.pg_statistic_ext.stxowner => pg_catalog.pg_authid.oid
+Join pg_catalog.pg_statistic_ext_data.stxoid => pg_catalog.pg_statistic_ext.oid
Join pg_catalog.pg_tablespace.spcowner => pg_catalog.pg_authid.oid
Join pg_catalog.pg_transform.trftype => pg_catalog.pg_type.oid
Join pg_catalog.pg_transform.trflang => pg_catalog.pg_language.oid
Join pg_catalog.pg_transform.trffromsql => pg_catalog.pg_proc.oid
Join pg_catalog.pg_transform.trftosql => pg_catalog.pg_proc.oid
Join pg_catalog.pg_trigger.tgrelid => pg_catalog.pg_class.oid
+Join pg_catalog.pg_trigger.tgparentid => pg_catalog.pg_trigger.oid
Join pg_catalog.pg_trigger.tgfoid => pg_catalog.pg_proc.oid
Join pg_catalog.pg_trigger.tgconstrrelid => pg_catalog.pg_class.oid
Join pg_catalog.pg_trigger.tgconstrindid => pg_catalog.pg_class.oid
diff --git a/src/tools/findoidjoins/findoidjoins.c b/src/tools/findoidjoins/findoidjoins.c
index 562a98a5b73..ade11a53a2c 100644
--- a/src/tools/findoidjoins/findoidjoins.c
+++ b/src/tools/findoidjoins/findoidjoins.c
@@ -7,6 +7,7 @@
*/
#include "postgres_fe.h"
+#include "access/transam.h"
#include "catalog/pg_class_d.h"
#include "fe_utils/connect.h"
@@ -55,18 +56,20 @@ main(int argc, char **argv)
}
PQclear(res);
- /* Get a list of relations that have OIDs */
+ /* Get a list of system relations that have OIDs */
- printfPQExpBuffer(&sql, "%s",
+ printfPQExpBuffer(&sql,
"SET search_path = public;"
"SELECT c.relname, (SELECT nspname FROM "
"pg_catalog.pg_namespace n WHERE n.oid = c.relnamespace) AS nspname "
"FROM pg_catalog.pg_class c "
"WHERE c.relkind = " CppAsString2(RELKIND_RELATION)
+ " AND c.oid < '%u'"
" AND EXISTS(SELECT * FROM pg_attribute a"
" WHERE a.attrelid = c.oid AND a.attname = 'oid' "
" AND a.atttypid = 'oid'::regtype)"
- "ORDER BY nspname, c.relname"
+ "ORDER BY nspname, c.relname",
+ FirstNormalObjectId
);
res = PQexec(conn, sql.data);
@@ -77,15 +80,17 @@ main(int argc, char **argv)
}
pkrel_res = res;
- /* Get a list of columns of OID type (or any OID-alias type) */
+ /* Get a list of system columns of OID type (or any OID-alias type) */
- printfPQExpBuffer(&sql, "%s",
+ printfPQExpBuffer(&sql,
"SELECT c.relname, "
"(SELECT nspname FROM pg_catalog.pg_namespace n WHERE n.oid = c.relnamespace) AS nspname, "
"a.attname "
"FROM pg_catalog.pg_class c, pg_catalog.pg_attribute a "
"WHERE a.attnum > 0"
+ " AND a.attname != 'oid'"
" AND c.relkind = " CppAsString2(RELKIND_RELATION)
+ " AND c.oid < '%u'"
" AND a.attrelid = c.oid"
" AND a.atttypid IN ('pg_catalog.oid'::regtype, "
" 'pg_catalog.regclass'::regtype, "
@@ -96,7 +101,8 @@ main(int argc, char **argv)
" 'pg_catalog.regtype'::regtype, "
" 'pg_catalog.regconfig'::regtype, "
" 'pg_catalog.regdictionary'::regtype) "
- "ORDER BY nspname, c.relname, a.attnum"
+ "ORDER BY nspname, c.relname, a.attnum",
+ FirstNormalObjectId
);
res = PQexec(conn, sql.data);