aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2009-12-19 00:47:57 +0000
committerBruce Momjian <bruce@momjian.us>2009-12-19 00:47:57 +0000
commit78a09145e0f8322e625bbc7d69fcb865ce4f3034 (patch)
tree8db6b5c44763c0b44b1520d10e15d42230360275 /src/backend/utils
parent2e9468f2c850f2b712d23d110042cf14678c6791 (diff)
downloadpostgresql-78a09145e0f8322e625bbc7d69fcb865ce4f3034.tar.gz
postgresql-78a09145e0f8322e625bbc7d69fcb865ce4f3034.zip
binary migration: pg_migrator
Add comments about places where system oids have to be preserved for binary migration.
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/adt/arrayfuncs.c7
-rw-r--r--src/backend/utils/adt/enum.c6
-rw-r--r--src/backend/utils/adt/rowtypes.c7
3 files changed, 17 insertions, 3 deletions
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index e76734edd50..b7033d4b1c4 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.161 2009/09/04 11:20:22 heikki Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.162 2009/12/19 00:47:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -328,6 +328,11 @@ array_in(PG_FUNCTION_ARGS)
SET_VARSIZE(retval, nbytes);
retval->ndim = ndim;
retval->dataoffset = dataoffset;
+ /*
+ * This comes from the array's pg_type.typelem (which points to the
+ * base data type's pg_type.oid) and stores system oids in user tables.
+ * This oid must be preserved by binary upgrades.
+ */
retval->elemtype = element_type;
memcpy(ARR_DIMS(retval), dim, ndim * sizeof(int));
memcpy(ARR_LBOUND(retval), lBound, ndim * sizeof(int));
diff --git a/src/backend/utils/adt/enum.c b/src/backend/utils/adt/enum.c
index 009c6c3f924..38805722217 100644
--- a/src/backend/utils/adt/enum.c
+++ b/src/backend/utils/adt/enum.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/enum.c,v 1.7 2009/01/01 17:23:49 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/enum.c,v 1.8 2009/12/19 00:47:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,6 +56,10 @@ enum_in(PG_FUNCTION_ARGS)
format_type_be(enumtypoid),
name)));
+ /*
+ * This comes from pg_enum.oid and stores system oids in user tables.
+ * This oid must be preserved by binary upgrades.
+ */
enumoid = HeapTupleGetOid(tup);
ReleaseSysCache(tup);
diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c
index 9ea8a2d80fa..e86e6426034 100644
--- a/src/backend/utils/adt/rowtypes.c
+++ b/src/backend/utils/adt/rowtypes.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/rowtypes.c,v 1.25 2009/06/11 14:49:04 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/rowtypes.c,v 1.26 2009/12/19 00:47:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -97,6 +97,11 @@ record_in(PG_FUNCTION_ARGS)
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("input of anonymous composite types is not implemented")));
tupTypmod = -1; /* for all non-anonymous types */
+ /*
+ * This comes from the composite type's pg_type.oid and
+ * stores system oids in user tables, specifically DatumTupleFields.
+ * This oid must be preserved by binary upgrades.
+ */
tupdesc = lookup_rowtype_tupdesc(tupType, tupTypmod);
ncolumns = tupdesc->natts;