------+--------
(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
------+---------
(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
-- 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;
-- 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;
-- 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;
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
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
* 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
================================
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
*/
#include "postgres_fe.h"
+#include "access/transam.h"
#include "catalog/pg_class_d.h"
#include "fe_utils/connect.h"
}
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);
}
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, "
" '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);