diff options
author | Bruce Momjian <bruce@momjian.us> | 2014-08-25 22:19:05 -0400 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2014-08-25 22:19:05 -0400 |
commit | a7ae1dcf4939cf643c5abe8dd673e4b87a6efd42 (patch) | |
tree | b71652b71d5609e31bae011db4bb9cc5c28c4048 /src/backend/commands/typecmds.c | |
parent | 73fe87503f23144a27f0bdecc55587deb5aa425f (diff) | |
download | postgresql-a7ae1dcf4939cf643c5abe8dd673e4b87a6efd42.tar.gz postgresql-a7ae1dcf4939cf643c5abe8dd673e4b87a6efd42.zip |
pg_upgrade: prevent automatic oid assignment
Prevent automatic oid assignment when in binary upgrade mode. Also
throw an error when contrib/pg_upgrade_support functions are called when
not in binary upgrade mode.
This prevent automatically-assigned oids from conflicting with later
pre-assigned oids coming from the old cluster. It also makes sure oids
are preserved in call important cases.
Diffstat (limited to 'src/backend/commands/typecmds.c')
-rw-r--r-- | src/backend/commands/typecmds.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index ec439fabd63..ad364efbcbd 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -1986,9 +1986,14 @@ AssignTypeArrayOid(void) { Oid type_array_oid; - /* Use binary-upgrade override for pg_type.typarray, if supplied. */ - if (IsBinaryUpgrade && OidIsValid(binary_upgrade_next_array_pg_type_oid)) + /* Use binary-upgrade override for pg_type.typarray? */ + if (IsBinaryUpgrade) { + if (!OidIsValid(binary_upgrade_next_array_pg_type_oid)) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("pg_type array OID value not set when in binary upgrade mode"))); + type_array_oid = binary_upgrade_next_array_pg_type_oid; binary_upgrade_next_array_pg_type_oid = InvalidOid; } |