mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-03 04:06:53 +02:00
binary migration: pg_migrator
Add comments about places where system oids have to be preserved for binary migration.
This commit is contained in:
parent
2e9468f2c8
commit
78a09145e0
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/catalog/pg_enum.c,v 1.9 2009/01/01 17:23:37 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/catalog/pg_enum.c,v 1.10 2009/12/19 00:47:57 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -67,6 +67,10 @@ EnumValuesCreate(Oid enumTypeOid, List *vals)
|
|||||||
oids = (Oid *) palloc(n * sizeof(Oid));
|
oids = (Oid *) palloc(n * sizeof(Oid));
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* The pg_enum.oid is stored in user tables. This oid must be
|
||||||
|
* preserved by binary upgrades.
|
||||||
|
*/
|
||||||
oids[i] = GetNewOid(pg_enum);
|
oids[i] = GetNewOid(pg_enum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.139 2009/12/07 05:22:21 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.140 2009/12/19 00:47:57 momjian Exp $
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* The "DefineFoo" routines take the parse tree and pick out the
|
* The "DefineFoo" routines take the parse tree and pick out the
|
||||||
@ -531,6 +531,12 @@ DefineType(List *names, List *parameters)
|
|||||||
* now have TypeCreate do all the real work.
|
* now have TypeCreate do all the real work.
|
||||||
*/
|
*/
|
||||||
typoid =
|
typoid =
|
||||||
|
/*
|
||||||
|
* The pg_type.oid is stored in user tables as array elements
|
||||||
|
* (base types) in ArrayType and in composite types in
|
||||||
|
* DatumTupleFields. This oid must be preserved by binary
|
||||||
|
* upgrades.
|
||||||
|
*/
|
||||||
TypeCreate(InvalidOid, /* no predetermined type OID */
|
TypeCreate(InvalidOid, /* no predetermined type OID */
|
||||||
typeName, /* type name */
|
typeName, /* type name */
|
||||||
typeNamespace, /* namespace */
|
typeNamespace, /* namespace */
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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);
|
SET_VARSIZE(retval, nbytes);
|
||||||
retval->ndim = ndim;
|
retval->ndim = ndim;
|
||||||
retval->dataoffset = dataoffset;
|
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;
|
retval->elemtype = element_type;
|
||||||
memcpy(ARR_DIMS(retval), dim, ndim * sizeof(int));
|
memcpy(ARR_DIMS(retval), dim, ndim * sizeof(int));
|
||||||
memcpy(ARR_LBOUND(retval), lBound, ndim * sizeof(int));
|
memcpy(ARR_LBOUND(retval), lBound, ndim * sizeof(int));
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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),
|
format_type_be(enumtypoid),
|
||||||
name)));
|
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);
|
enumoid = HeapTupleGetOid(tup);
|
||||||
|
|
||||||
ReleaseSysCache(tup);
|
ReleaseSysCache(tup);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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),
|
(errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
|
||||||
errmsg("input of anonymous composite types is not implemented")));
|
errmsg("input of anonymous composite types is not implemented")));
|
||||||
tupTypmod = -1; /* for all non-anonymous types */
|
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);
|
tupdesc = lookup_rowtype_tupdesc(tupType, tupTypmod);
|
||||||
ncolumns = tupdesc->natts;
|
ncolumns = tupdesc->natts;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user