aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/bootstrap/bootparse.y42
-rw-r--r--src/backend/catalog/README49
-rw-r--r--src/backend/catalog/dependency.c20
-rw-r--r--src/backend/catalog/genbki.sh35
-rw-r--r--src/backend/catalog/heap.c64
-rw-r--r--src/backend/catalog/index.c14
-rw-r--r--src/backend/catalog/pg_aggregate.c8
-rw-r--r--src/backend/catalog/pg_constraint.c10
-rw-r--r--src/backend/catalog/pg_conversion.c6
-rw-r--r--src/backend/catalog/pg_operator.c15
-rw-r--r--src/backend/catalog/pg_proc.c10
-rw-r--r--src/backend/catalog/pg_type.c24
-rw-r--r--src/backend/commands/aggregatecmds.c4
-rw-r--r--src/backend/commands/cluster.c13
-rw-r--r--src/backend/commands/comment.c16
-rw-r--r--src/backend/commands/functioncmds.c10
-rw-r--r--src/backend/commands/indexcmds.c13
-rw-r--r--src/backend/commands/opclasscmds.c8
-rw-r--r--src/backend/commands/proclang.c6
-rw-r--r--src/backend/commands/tablecmds.c48
-rw-r--r--src/backend/commands/trigger.c8
-rw-r--r--src/backend/commands/typecmds.c10
-rw-r--r--src/backend/commands/user.c6
-rw-r--r--src/backend/commands/view.c4
-rw-r--r--src/backend/executor/execMain.c3
-rw-r--r--src/backend/rewrite/rewriteDefine.c6
-rw-r--r--src/backend/tcop/utility.c3
-rw-r--r--src/backend/utils/adt/ruleutils.c6
-rw-r--r--src/backend/utils/cache/inval.c6
-rw-r--r--src/backend/utils/cache/relcache.c35
-rw-r--r--src/backend/utils/init/flatfiles.c14
-rw-r--r--src/include/catalog/catname.h3
-rw-r--r--src/include/catalog/catversion.h4
-rwxr-xr-xsrc/include/catalog/duplicate_oids17
-rw-r--r--src/include/catalog/heap.h4
-rw-r--r--src/include/catalog/index.h3
-rw-r--r--src/include/catalog/indexing.h205
-rw-r--r--src/include/catalog/pg_aggregate.h8
-rw-r--r--src/include/catalog/pg_am.h8
-rw-r--r--src/include/catalog/pg_amop.h8
-rw-r--r--src/include/catalog/pg_amproc.h8
-rw-r--r--src/include/catalog/pg_attrdef.h8
-rw-r--r--src/include/catalog/pg_attribute.h84
-rw-r--r--src/include/catalog/pg_cast.h6
-rw-r--r--src/include/catalog/pg_class.h28
-rw-r--r--src/include/catalog/pg_constraint.h8
-rw-r--r--src/include/catalog/pg_conversion.h8
-rw-r--r--src/include/catalog/pg_database.h8
-rw-r--r--src/include/catalog/pg_depend.h8
-rw-r--r--src/include/catalog/pg_description.h8
-rw-r--r--src/include/catalog/pg_group.h7
-rw-r--r--src/include/catalog/pg_index.h8
-rw-r--r--src/include/catalog/pg_inherits.h8
-rw-r--r--src/include/catalog/pg_language.h8
-rw-r--r--src/include/catalog/pg_largeobject.h7
-rw-r--r--src/include/catalog/pg_listener.h7
-rw-r--r--src/include/catalog/pg_namespace.h8
-rw-r--r--src/include/catalog/pg_opclass.h7
-rw-r--r--src/include/catalog/pg_operator.h8
-rw-r--r--src/include/catalog/pg_proc.h8
-rw-r--r--src/include/catalog/pg_rewrite.h8
-rw-r--r--src/include/catalog/pg_shadow.h14
-rw-r--r--src/include/catalog/pg_statistic.h8
-rw-r--r--src/include/catalog/pg_tablespace.h8
-rw-r--r--src/include/catalog/pg_trigger.h6
-rw-r--r--src/include/catalog/pg_type.h14
-rw-r--r--src/include/catalog/pg_version.h64
-rwxr-xr-xsrc/include/catalog/unused_oids20
-rw-r--r--src/include/commands/defrem.h3
-rw-r--r--src/include/postgres.h6
-rw-r--r--src/include/utils/relcache.h5
71 files changed, 597 insertions, 585 deletions
diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y
index e656e6e6380..1945c4074d9 100644
--- a/src/backend/bootstrap/bootparse.y
+++ b/src/backend/bootstrap/bootparse.y
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/bootstrap/bootparse.y,v 1.75 2004/12/31 21:59:34 pgsql Exp $
+ * $PostgreSQL: pgsql/src/backend/bootstrap/bootparse.y,v 1.76 2005/04/14 01:38:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -50,6 +50,8 @@
#include "utils/nabstime.h"
#include "utils/rel.h"
+#define atooid(x) ((Oid) strtoul((x), NULL, 10))
+
static void
do_start(void)
@@ -91,11 +93,10 @@ int num_columns_read = 0;
%type <ival> boot_const boot_ident
%type <ival> optbootstrap optsharedrelation optwithoutoids
%type <ival> boot_tuple boot_tuplelist
-%type <oidval> optoideq
+%type <oidval> oidspec optoideq
%token <ival> CONST_P ID
%token OPEN XCLOSE XCREATE INSERT_TUPLE
-%token STRING XDEFINE
%token XDECLARE INDEX ON USING XBUILD INDICES UNIQUE
%token COMMA EQUALS LPAREN RPAREN
%token OBJ_ID XBOOTSTRAP XSHARED_RELATION XWITHOUT_OIDS NULLVAL
@@ -151,14 +152,15 @@ Boot_CloseStmt:
;
Boot_CreateStmt:
- XCREATE optbootstrap optsharedrelation optwithoutoids boot_ident LPAREN
+ XCREATE optbootstrap optsharedrelation optwithoutoids boot_ident oidspec LPAREN
{
do_start();
numattr = 0;
- elog(DEBUG4, "creating%s%s relation %s",
+ elog(DEBUG4, "creating%s%s relation %s %u",
$2 ? " bootstrap" : "",
$3 ? " shared" : "",
- LexIDStr($5));
+ LexIDStr($5),
+ $6);
}
boot_typelist
{
@@ -183,6 +185,7 @@ Boot_CreateStmt:
boot_reldesc = heap_create(LexIDStr($5),
PG_CATALOG_NAMESPACE,
$3 ? GLOBALTABLESPACE_OID : 0,
+ $6,
tupdesc,
RELKIND_RELATION,
$3,
@@ -196,6 +199,7 @@ Boot_CreateStmt:
id = heap_create_with_catalog(LexIDStr($5),
PG_CATALOG_NAMESPACE,
$3 ? GLOBALTABLESPACE_OID : 0,
+ $6,
tupdesc,
RELKIND_RELATION,
$3,
@@ -235,15 +239,16 @@ Boot_InsertStmt:
;
Boot_DeclareIndexStmt:
- XDECLARE INDEX boot_ident ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN
+ XDECLARE INDEX boot_ident oidspec ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN
{
do_start();
- DefineIndex(makeRangeVar(NULL, LexIDStr($5)),
+ DefineIndex(makeRangeVar(NULL, LexIDStr($6)),
LexIDStr($3),
- LexIDStr($7),
+ $4,
+ LexIDStr($8),
NULL,
- $9,
+ $10,
NULL, NIL,
false, false, false,
false, false, true, false);
@@ -252,15 +257,16 @@ Boot_DeclareIndexStmt:
;
Boot_DeclareUniqueIndexStmt:
- XDECLARE UNIQUE INDEX boot_ident ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN
+ XDECLARE UNIQUE INDEX boot_ident oidspec ON boot_ident USING boot_ident LPAREN boot_index_params RPAREN
{
do_start();
- DefineIndex(makeRangeVar(NULL, LexIDStr($6)),
+ DefineIndex(makeRangeVar(NULL, LexIDStr($7)),
LexIDStr($4),
- LexIDStr($8),
+ $5,
+ LexIDStr($9),
NULL,
- $10,
+ $11,
NULL, NIL,
true, false, false,
false, false, true, false);
@@ -323,9 +329,13 @@ boot_type_thing:
}
;
+oidspec:
+ boot_ident { $$ = atooid(LexIDStr($1)); }
+ ;
+
optoideq:
- OBJ_ID EQUALS boot_ident { $$ = atol(LexIDStr($3)); }
- | { $$ = (Oid) 0; }
+ OBJ_ID EQUALS oidspec { $$ = $3; }
+ | { $$ = (Oid) 0; }
;
boot_tuplelist:
diff --git a/src/backend/catalog/README b/src/backend/catalog/README
index 41251740f9e..3f002add5a0 100644
--- a/src/backend/catalog/README
+++ b/src/backend/catalog/README
@@ -1,4 +1,4 @@
-$PostgreSQL: pgsql/src/backend/catalog/README,v 1.8 2003/11/29 19:51:42 pgsql Exp $
+$PostgreSQL: pgsql/src/backend/catalog/README,v 1.9 2005/04/14 01:38:15 tgl Exp $
This directory contains .c files that manipulate the system catalogs;
src/include/catalog contains the .h files that define the structure
@@ -6,7 +6,7 @@ of the system catalogs.
When the compile-time scripts (such as Gen_fmgrtab.sh and genbki.sh)
execute, they grep the DATA statements out of the .h files and munge
-these in order to generate the .bki files. The .bki files are then
+these in order to generate the postgres.bki file. The .bki file is then
used as input to initdb (which is just a wrapper around postgres
running single-user in bootstrapping mode) in order to generate the
initial (template) system catalog relation files.
@@ -30,8 +30,8 @@ contains back-pointers into pg_type (pg_proc.proargtypes). For such
cases, the OID assigned to a tuple may be explicitly set by use of the
"OID = n" clause of the .bki insert statement. If no such pointers are
required to a given tuple, then the OID = n clause may be omitted
-(then the system generates a random OID in the usual way, or leaves it
-0 in a catalog that has no OIDs). In practice we usually preassign OIDs
+(then the system generates an OID in the usual way, or leaves it 0 in a
+catalog that has no OIDs). In practice we usually preassign OIDs
for all or none of the pre-loaded tuples in a given catalog, even if only
some of them are actually cross-referenced.
@@ -39,42 +39,36 @@ some of them are actually cross-referenced.
be known directly in the C code. In such cases, put a #define in the
catalog's .h file, and use the #define symbol in the C code. Writing
the actual numeric value of any OID in C code is considered very bad form.
-(Direct references to pg_proc OIDs are common enough that there's a special
+Direct references to pg_proc OIDs are common enough that there's a special
mechanism to create the necessary #define's automatically: see
-backend/utils/Gen_fmgrtab.sh. For all the other system catalogs, you have
-to manually create any #define's you need.)
+backend/utils/Gen_fmgrtab.sh. We also have standard conventions for setting
+up #define's for the pg_class OIDs of system catalogs and indexes. For all
+the other system catalogs, you have to manually create any #define's you
+need.
-- If you need to find a valid OID for a tuple that will be referred to by
-others, use the unused_oids script. It generates inclusive ranges of
+- If you need to find a valid OID for a new predefined tuple,
+use the unused_oids script. It generates inclusive ranges of
*unused* OIDs (e.g., the line "45-900" means OIDs 45 through 900 have
not been allocated yet). Currently, OIDs 1-9999 are reserved for manual
assignment; the unused_oids script simply looks through the include/catalog
-headers to see which ones do not appear in "OID =" clauses.
+headers to see which ones do not appear in "OID =" clauses in DATA lines.
+(As of Postgres 8.1, it also looks at CATALOG and DECLARE_INDEX lines.)
+You can also use the duplicate_oids script to check for mistakes.
-- OIDs 10000-16383 are reserved for assignment by the genbki.sh script:
-it will insert these OIDs if it sees a clause "OID = 0" in a DATA
-statement. You would typically use this feature if you don't care exactly
-which OID is assigned to a catalog row (because it has no cross-references
-you need to hardwire) but you want to give it a DESCR entry. The DESCR macro
-will not work for rows that don't have any OID at genbki.sh time.
-
-- The OID counter starts at 16384 at bootstrap. If a catalog row is in a
-table that requires OIDs, but no OID was preassigned by hand or by genbki.sh,
-then it will receive an OID of 16384 or above.
+- The OID counter starts at 10000 at bootstrap. If a catalog row is in a
+table that requires OIDs, but no OID was preassigned by an "OID =" clause,
+then it will receive an OID of 10000 or above.
- To create a "BOOTSTRAP" table you have to do a lot of extra work: these
tables are not created through a normal CREATE TABLE operation, but spring
into existence when first written to during initdb. Therefore, you must
manually create appropriate entries for them in the pre-loaded contents of
-pg_class, pg_attribute, and pg_type. You'll also need to add code to function
-heap_create() in heap.c to force the correct OID to be assigned when the table
-is first referenced. (It's near the top of the function with the comment
-beginning in "Real ugly stuff".) Avoid making new catalogs be bootstrap
+pg_class, pg_attribute, and pg_type. Avoid making new catalogs be bootstrap
catalogs if at all possible; generally, only tables that must be written to
in order to create a table should be bootstrapped.
- Certain BOOTSTRAP tables must be at the start of the Makefile
-POSTGRES_BKI_SRCS variable, as these will not be created through the standard
+POSTGRES_BKI_SRCS variable, as these cannot be created through the standard
heap_create_with_catalog process, because it needs these tables to exist
already. The list of files this currently includes is:
pg_proc.h pg_type.h pg_attribute.h pg_class.h
@@ -96,7 +90,10 @@ piece of code will likely perform "typetup->typdelim" (or, worse,
"typetyp->typelem", which follows typdelim). This will result in
random errors or even segmentation violations. Hence, do NOT insert
catalog tuples that contain NULL attributes except in their
-variable-length portions!
+variable-length portions! (The bootstrapping code is fairly good about
+marking NOT NULL each of the columns that can legally be referenced via
+C struct declarations ... but those markings won't be enforced against
+DATA commands, so you must get it right in a DATA line.)
- Modification of the catalogs must be performed with the proper
updating of catalog indexes! That is, most catalogs have indexes
diff --git a/src/backend/catalog/dependency.c b/src/backend/catalog/dependency.c
index 16d100f4291..4090eb3a911 100644
--- a/src/backend/catalog/dependency.c
+++ b/src/backend/catalog/dependency.c
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.42 2005/02/22 04:35:34 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.43 2005/04/14 01:38:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -29,8 +29,10 @@
#include "catalog/pg_depend.h"
#include "catalog/pg_language.h"
#include "catalog/pg_opclass.h"
+#include "catalog/pg_proc.h"
#include "catalog/pg_rewrite.h"
#include "catalog/pg_trigger.h"
+#include "catalog/pg_type.h"
#include "commands/comment.h"
#include "commands/defrem.h"
#include "commands/proclang.h"
@@ -907,7 +909,7 @@ recordDependencyOnSingleRelExpr(const ObjectAddress *depender,
{
ObjectAddress *thisobj = context.addrs.refs + oldref;
- if (thisobj->classId == RelOid_pg_class &&
+ if (thisobj->classId == RelationRelationId &&
thisobj->objectId == relId)
{
/* Move this ref into self_addrs */
@@ -1305,9 +1307,9 @@ term_object_addresses(ObjectAddresses *addrs)
static void
init_object_classes(void)
{
- object_classes[OCLASS_CLASS] = RelOid_pg_class;
- object_classes[OCLASS_PROC] = RelOid_pg_proc;
- object_classes[OCLASS_TYPE] = RelOid_pg_type;
+ object_classes[OCLASS_CLASS] = RelationRelationId;
+ object_classes[OCLASS_PROC] = ProcedureRelationId;
+ object_classes[OCLASS_TYPE] = TypeRelationId;
object_classes[OCLASS_CAST] = get_system_catalog_relid(CastRelationName);
object_classes[OCLASS_CONSTRAINT] = get_system_catalog_relid(ConstraintRelationName);
object_classes[OCLASS_CONVERSION] = get_system_catalog_relid(ConversionRelationName);
@@ -1333,15 +1335,15 @@ getObjectClass(const ObjectAddress *object)
/* Easy for the bootstrapped catalogs... */
switch (object->classId)
{
- case RelOid_pg_class:
+ case RelationRelationId:
/* caller must check objectSubId */
return OCLASS_CLASS;
- case RelOid_pg_proc:
+ case ProcedureRelationId:
Assert(object->objectSubId == 0);
return OCLASS_PROC;
- case RelOid_pg_type:
+ case TypeRelationId:
Assert(object->objectSubId == 0);
return OCLASS_TYPE;
}
@@ -1560,7 +1562,7 @@ getObjectDescription(const ObjectAddress *object)
attrdef = (Form_pg_attrdef) GETSTRUCT(tup);
- colobject.classId = RelOid_pg_class;
+ colobject.classId = RelationRelationId;
colobject.objectId = attrdef->adrelid;
colobject.objectSubId = attrdef->adnum;
diff --git a/src/backend/catalog/genbki.sh b/src/backend/catalog/genbki.sh
index dd4c8d05a51..d53970fd7a2 100644
--- a/src/backend/catalog/genbki.sh
+++ b/src/backend/catalog/genbki.sh
@@ -10,7 +10,7 @@
#
#
# IDENTIFICATION
-# $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.34 2005/04/13 18:54:56 tgl Exp $
+# $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.35 2005/04/14 01:38:16 tgl Exp $
#
# NOTES
# non-essential whitespace is removed from the generated file.
@@ -192,7 +192,7 @@ comment_level > 0 { next; }
# ----------------
# DATA() statements are basically passed right through after
# stripping off the DATA( and the ) on the end.
-# Remember any explicit OID for use by DESCR().
+# Remember the OID for use by DESCR().
# ----------------
/^DATA\(/ {
data = substr($0, 6, length($0) - 6);
@@ -221,13 +221,19 @@ comment_level > 0 { next; }
# end any prior catalog data insertions before starting a define index
# ----
if (reln_open == 1) {
-# print "show";
print "close " catalog;
reln_open = 0;
}
data = substr($0, 15, length($0) - 15);
- print "declare index " data
+ pos = index(data, ",");
+ iname = substr(data, 1, pos-1);
+ data = substr(data, pos+1, length(data)-pos);
+ pos = index(data, ",");
+ ioid = substr(data, 1, pos-1);
+ data = substr(data, pos+1, length(data)-pos);
+
+ print "declare index " iname " " ioid " " data
}
/^DECLARE_UNIQUE_INDEX\(/ {
@@ -235,13 +241,19 @@ comment_level > 0 { next; }
# end any prior catalog data insertions before starting a define unique index
# ----
if (reln_open == 1) {
-# print "show";
print "close " catalog;
reln_open = 0;
}
data = substr($0, 22, length($0) - 22);
- print "declare unique index " data
+ pos = index(data, ",");
+ iname = substr(data, 1, pos-1);
+ data = substr(data, pos+1, length(data)-pos);
+ pos = index(data, ",");
+ ioid = substr(data, 1, pos-1);
+ data = substr(data, pos+1, length(data)-pos);
+
+ print "declare unique index " iname " " ioid " " data
}
/^BUILD_INDICES/ { print "build indices"; }
@@ -254,7 +266,6 @@ comment_level > 0 { next; }
# end any prior catalog data insertions before starting a new one..
# ----
if (reln_open == 1) {
-# print "show";
print "close " catalog;
reln_open = 0;
}
@@ -263,9 +274,12 @@ comment_level > 0 { next; }
# get the name and properties of the new catalog
# ----
pos = index($1,")");
- catalog = substr($1,9,pos-9);
+ catalogandoid = substr($1,9,pos-9);
+ pos = index(catalogandoid, ",");
+ catalog = substr(catalogandoid, 1, pos-1);
+ catalogoid = substr(catalogandoid, pos+1, length(catalogandoid)-pos);
- if ($0 ~ /BOOTSTRAP/) {
+ if ($0 ~ /BKI_BOOTSTRAP/) {
bootstrap = "bootstrap ";
}
if ($0 ~ /BKI_SHARED_RELATION/) {
@@ -298,7 +312,7 @@ inside == 1 {
# if this is the last line, then output the bki catalog stuff.
# ----
if ($1 ~ /}/) {
- print "create " bootstrap shared_relation without_oids catalog;
+ print "create " bootstrap shared_relation without_oids catalog " " catalogoid;
print "\t(";
for (j=1; j<i-1; j++) {
@@ -338,7 +352,6 @@ inside == 1 {
END {
if (reln_open == 1) {
-# print "show";
print "close " catalog;
reln_open = 0;
}
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 4c314c1e8bb..578a4121dbd 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.282 2005/04/13 16:50:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.283 2005/04/14 01:38:16 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -190,23 +190,24 @@ SystemAttributeByName(const char *attname, bool relhasoids)
/* ----------------------------------------------------------------
* heap_create - Create an uncataloged heap relation
*
+ * relid is normally InvalidOid to specify that this routine should
+ * generate an OID for the relation. During bootstrap, it can be
+ * nonzero to specify a preselected OID.
+ *
* rel->rd_rel is initialized by RelationBuildLocalRelation,
* and is mostly zeroes at return.
- *
- * Remove the system relation specific code to elsewhere eventually.
* ----------------------------------------------------------------
*/
Relation
heap_create(const char *relname,
Oid relnamespace,
Oid reltablespace,
+ Oid relid,
TupleDesc tupDesc,
char relkind,
bool shared_relation,
bool allow_system_table_mods)
{
- Oid relid;
- bool nailme = false;
bool create_storage;
Relation rel;
@@ -223,45 +224,9 @@ heap_create(const char *relname,
errdetail("System catalog modifications are currently disallowed.")));
/*
- * Real ugly stuff to assign the proper relid in the relation
- * descriptor follows. Note that only "bootstrapped" relations whose
- * OIDs are hard-coded in pg_class.h should be listed here. We also
- * have to recognize those rels that must be nailed in cache.
+ * Allocate an OID for the relation, unless we were told what to use.
*/
- if (IsSystemNamespace(relnamespace))
- {
- if (strcmp(TypeRelationName, relname) == 0)
- {
- nailme = true;
- relid = RelOid_pg_type;
- }
- else if (strcmp(AttributeRelationName, relname) == 0)
- {
- nailme = true;
- relid = RelOid_pg_attribute;
- }
- else if (strcmp(ProcedureRelationName, relname) == 0)
- {
- nailme = true;
- relid = RelOid_pg_proc;
- }
- else if (strcmp(RelationRelationName, relname) == 0)
- {
- nailme = true;
- relid = RelOid_pg_class;
- }
- else if (strcmp(ShadowRelationName, relname) == 0)
- relid = RelOid_pg_shadow;
- else if (strcmp(GroupRelationName, relname) == 0)
- relid = RelOid_pg_group;
- else if (strcmp(DatabaseRelationName, relname) == 0)
- relid = RelOid_pg_database;
- else if (strcmp(TableSpaceRelationName, relname) == 0)
- relid = RelOid_pg_tablespace;
- else
- relid = newoid();
- }
- else
+ if (!OidIsValid(relid))
relid = newoid();
/*
@@ -312,8 +277,7 @@ heap_create(const char *relname,
tupDesc,
relid,
reltablespace,
- shared_relation,
- nailme);
+ shared_relation);
/*
* have the storage manager create the relation's disk file, if
@@ -516,10 +480,10 @@ AddNewAttributeTuples(Oid new_rel_oid,
heap_freetuple(tup);
- myself.classId = RelOid_pg_class;
+ myself.classId = RelationRelationId;
myself.objectId = new_rel_oid;
myself.objectSubId = i + 1;
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = (*dpp)->atttypid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -706,6 +670,7 @@ Oid
heap_create_with_catalog(const char *relname,
Oid relnamespace,
Oid reltablespace,
+ Oid relid,
TupleDesc tupdesc,
char relkind,
bool shared_relation,
@@ -739,6 +704,7 @@ heap_create_with_catalog(const char *relname,
new_rel_desc = heap_create(relname,
relnamespace,
reltablespace,
+ relid,
tupdesc,
relkind,
shared_relation,
@@ -795,7 +761,7 @@ heap_create_with_catalog(const char *relname,
ObjectAddress myself,
referenced;
- myself.classId = RelOid_pg_class;
+ myself.classId = RelationRelationId;
myself.objectId = new_rel_oid;
myself.objectSubId = 0;
referenced.classId = get_system_catalog_relid(NamespaceRelationName);
@@ -1316,7 +1282,7 @@ StoreAttrDefault(Relation rel, AttrNumber attnum, char *adbin)
* Make a dependency so that the pg_attrdef entry goes away if the
* column (or whole table) is deleted.
*/
- colobject.classId = RelOid_pg_class;
+ colobject.classId = RelationRelationId;
colobject.objectId = RelationGetRelid(rel);
colobject.objectSubId = attnum;
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index ebe303ed22a..28562661bdf 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.250 2005/03/29 00:16:55 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.251 2005/04/14 01:38:16 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -443,12 +443,17 @@ UpdateIndexRelation(Oid indexoid,
/* ----------------------------------------------------------------
* index_create
*
+ * indexRelationId is normally InvalidOid to let this routine
+ * generate an OID for the index. During bootstrap it may be
+ * nonzero to specify a preselected OID.
+ *
* Returns OID of the created index.
* ----------------------------------------------------------------
*/
Oid
index_create(Oid heapRelationId,
const char *indexRelationName,
+ Oid indexRelationId,
IndexInfo *indexInfo,
Oid accessMethodObjectId,
Oid tableSpaceId,
@@ -526,6 +531,7 @@ index_create(Oid heapRelationId,
indexRelation = heap_create(indexRelationName,
namespaceId,
tableSpaceId,
+ indexRelationId,
indexTupDesc,
RELKIND_INDEX,
shared_relation,
@@ -600,7 +606,7 @@ index_create(Oid heapRelationId,
ObjectAddress myself,
referenced;
- myself.classId = RelOid_pg_class;
+ myself.classId = RelationRelationId;
myself.objectId = indexoid;
myself.objectSubId = 0;
@@ -656,7 +662,7 @@ index_create(Oid heapRelationId,
{
if (indexInfo->ii_KeyAttrNumbers[i] != 0)
{
- referenced.classId = RelOid_pg_class;
+ referenced.classId = RelationRelationId;
referenced.objectId = heapRelationId;
referenced.objectSubId = indexInfo->ii_KeyAttrNumbers[i];
@@ -1693,7 +1699,7 @@ reindex_relation(Oid relid, bool toast_too)
* be created with an entry for its own pg_class row because we do
* setNewRelfilenode() before we do index_build().
*/
- is_pg_class = (RelationGetRelid(rel) == RelOid_pg_class);
+ is_pg_class = (RelationGetRelid(rel) == RelationRelationId);
doneIndexes = NIL;
/* Reindex all the indexes. */
diff --git a/src/backend/catalog/pg_aggregate.c b/src/backend/catalog/pg_aggregate.c
index c833f948a81..8a08f69cbf7 100644
--- a/src/backend/catalog/pg_aggregate.c
+++ b/src/backend/catalog/pg_aggregate.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.73 2005/04/12 04:26:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.74 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -240,12 +240,12 @@ AggregateCreate(const char *aggName,
* dependency on aggTransType since we depend on it indirectly through
* transfn.
*/
- myself.classId = RelOid_pg_proc;
+ myself.classId = ProcedureRelationId;
myself.objectId = procOid;
myself.objectSubId = 0;
/* Depends on transition function */
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = transfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -253,7 +253,7 @@ AggregateCreate(const char *aggName,
/* Depends on final function, if any */
if (OidIsValid(finalfn))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = finalfn;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/catalog/pg_constraint.c b/src/backend/catalog/pg_constraint.c
index d76c956d14a..5c53bfb5e85 100644
--- a/src/backend/catalog/pg_constraint.c
+++ b/src/backend/catalog/pg_constraint.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.23 2005/03/25 21:57:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.24 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -174,7 +174,7 @@ CreateConstraintEntry(const char *constraintName,
*/
ObjectAddress relobject;
- relobject.classId = RelOid_pg_class;
+ relobject.classId = RelationRelationId;
relobject.objectId = relId;
if (constraintNKeys > 0)
{
@@ -200,7 +200,7 @@ CreateConstraintEntry(const char *constraintName,
*/
ObjectAddress domobject;
- domobject.classId = RelOid_pg_type;
+ domobject.classId = TypeRelationId;
domobject.objectId = domainId;
domobject.objectSubId = 0;
@@ -215,7 +215,7 @@ CreateConstraintEntry(const char *constraintName,
*/
ObjectAddress relobject;
- relobject.classId = RelOid_pg_class;
+ relobject.classId = RelationRelationId;
relobject.objectId = foreignRelId;
if (foreignNKeys > 0)
{
@@ -242,7 +242,7 @@ CreateConstraintEntry(const char *constraintName,
*/
ObjectAddress relobject;
- relobject.classId = RelOid_pg_class;
+ relobject.classId = RelationRelationId;
relobject.objectId = indexRelId;
relobject.objectSubId = 0;
diff --git a/src/backend/catalog/pg_conversion.c b/src/backend/catalog/pg_conversion.c
index 1cc8bdc8ae4..a62e133a640 100644
--- a/src/backend/catalog/pg_conversion.c
+++ b/src/backend/catalog/pg_conversion.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.20 2004/12/31 21:59:38 pgsql Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.21 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,8 +18,8 @@
#include "catalog/catname.h"
#include "catalog/dependency.h"
#include "catalog/indexing.h"
-#include "catalog/pg_class.h"
#include "catalog/pg_conversion.h"
+#include "catalog/pg_proc.h"
#include "catalog/namespace.h"
#include "utils/builtins.h"
#include "utils/lsyscache.h"
@@ -116,7 +116,7 @@ ConversionCreate(const char *conname, Oid connamespace,
myself.objectSubId = 0;
/* create dependency on conversion procedure */
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = conproc;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/catalog/pg_operator.c b/src/backend/catalog/pg_operator.c
index 20524184220..0a69411d751 100644
--- a/src/backend/catalog/pg_operator.c
+++ b/src/backend/catalog/pg_operator.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.89 2005/03/29 03:01:30 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.90 2005/04/14 01:38:16 tgl Exp $
*
* NOTES
* these routines moved here from commands/define.c and somewhat cleaned up.
@@ -23,6 +23,7 @@
#include "catalog/indexing.h"
#include "catalog/namespace.h"
#include "catalog/pg_operator.h"
+#include "catalog/pg_proc.h"
#include "catalog/pg_type.h"
#include "miscadmin.h"
#include "parser/parse_func.h"
@@ -901,7 +902,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
/* Dependency on left type */
if (OidIsValid(oper->oprleft))
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = oper->oprleft;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -910,7 +911,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
/* Dependency on right type */
if (OidIsValid(oper->oprright))
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = oper->oprright;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -919,7 +920,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
/* Dependency on result type */
if (OidIsValid(oper->oprresult))
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = oper->oprresult;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -938,7 +939,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
/* Dependency on implementation function */
if (OidIsValid(oper->oprcode))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = oper->oprcode;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -947,7 +948,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
/* Dependency on restriction selectivity function */
if (OidIsValid(oper->oprrest))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = oper->oprrest;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -956,7 +957,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
/* Dependency on join selectivity function */
if (OidIsValid(oper->oprjoin))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = oper->oprjoin;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c
index b56eb54200b..b144f935cd5 100644
--- a/src/backend/catalog/pg_proc.c
+++ b/src/backend/catalog/pg_proc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.126 2005/03/31 22:46:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.127 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -329,9 +329,9 @@ ProcedureCreate(const char *procedureName,
* existing function, first delete any existing pg_depend entries.
*/
if (is_update)
- deleteDependencyRecordsFor(RelOid_pg_proc, retval);
+ deleteDependencyRecordsFor(ProcedureRelationId, retval);
- myself.classId = RelOid_pg_proc;
+ myself.classId = ProcedureRelationId;
myself.objectId = retval;
myself.objectSubId = 0;
@@ -348,7 +348,7 @@ ProcedureCreate(const char *procedureName,
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on return type */
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = returnType;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -356,7 +356,7 @@ ProcedureCreate(const char *procedureName,
/* dependency on parameter types */
for (i = 0; i < allParamCount; i++)
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = allParams[i];
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/catalog/pg_type.c b/src/backend/catalog/pg_type.c
index c6ff34762fe..9bbc19c5f5b 100644
--- a/src/backend/catalog/pg_type.c
+++ b/src/backend/catalog/pg_type.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.98 2005/01/27 23:23:51 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.99 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,6 +18,7 @@
#include "catalog/catname.h"
#include "catalog/dependency.h"
#include "catalog/indexing.h"
+#include "catalog/pg_proc.h"
#include "catalog/pg_type.h"
#include "miscadmin.h"
#include "utils/builtins.h"
@@ -378,10 +379,9 @@ GenerateTypeDependencies(Oid typeNamespace,
referenced;
if (rebuild)
- deleteDependencyRecordsFor(RelOid_pg_type,
- typeObjectId);
+ deleteDependencyRecordsFor(TypeRelationId, typeObjectId);
- myself.classId = RelOid_pg_type;
+ myself.classId = TypeRelationId;
myself.objectId = typeObjectId;
myself.objectSubId = 0;
@@ -398,7 +398,7 @@ GenerateTypeDependencies(Oid typeNamespace,
/* Normal dependencies on the I/O functions */
if (OidIsValid(inputProcedure))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = inputProcedure;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -406,7 +406,7 @@ GenerateTypeDependencies(Oid typeNamespace,
if (OidIsValid(outputProcedure))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = outputProcedure;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -414,7 +414,7 @@ GenerateTypeDependencies(Oid typeNamespace,
if (OidIsValid(receiveProcedure))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = receiveProcedure;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -422,7 +422,7 @@ GenerateTypeDependencies(Oid typeNamespace,
if (OidIsValid(sendProcedure))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = sendProcedure;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -430,7 +430,7 @@ GenerateTypeDependencies(Oid typeNamespace,
if (OidIsValid(analyzeProcedure))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = analyzeProcedure;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -448,7 +448,7 @@ GenerateTypeDependencies(Oid typeNamespace,
*/
if (OidIsValid(relationOid))
{
- referenced.classId = RelOid_pg_class;
+ referenced.classId = RelationRelationId;
referenced.objectId = relationOid;
referenced.objectSubId = 0;
@@ -467,7 +467,7 @@ GenerateTypeDependencies(Oid typeNamespace,
*/
if (OidIsValid(elementType))
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = elementType;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO);
@@ -476,7 +476,7 @@ GenerateTypeDependencies(Oid typeNamespace,
/* Normal dependency from a domain to its base type. */
if (OidIsValid(baseType))
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = baseType;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c
index 32bf25389a4..95c81b1aac4 100644
--- a/src/backend/commands/aggregatecmds.c
+++ b/src/backend/commands/aggregatecmds.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.24 2005/04/12 04:26:20 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.25 2005/04/14 01:38:16 tgl Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -206,7 +206,7 @@ RemoveAggregate(RemoveAggrStmt *stmt)
/*
* Do the deletion
*/
- object.classId = RelOid_pg_proc;
+ object.classId = ProcedureRelationId;
object.objectId = procOid;
object.objectSubId = 0;
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index e29750c535c..553a8420699 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.134 2005/03/29 00:16:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.135 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -527,7 +527,7 @@ rebuild_relation(Relation OldHeap, Oid indexOid)
CommandCounterIncrement();
/* Destroy new heap with old filenode */
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = OIDNewHeap;
object.objectSubId = 0;
@@ -570,6 +570,7 @@ make_new_heap(Oid OIDOldHeap, const char *NewName, Oid NewTableSpace)
OIDNewHeap = heap_create_with_catalog(NewName,
RelationGetNamespace(OldHeap),
NewTableSpace,
+ InvalidOid,
tupdesc,
OldHeap->rd_rel->relkind,
OldHeap->rd_rel->relisshared,
@@ -799,7 +800,7 @@ swap_relation_files(Oid r1, Oid r2)
/* Delete old dependencies */
if (relform1->reltoastrelid)
{
- count = deleteDependencyRecordsFor(RelOid_pg_class,
+ count = deleteDependencyRecordsFor(RelationRelationId,
relform1->reltoastrelid);
if (count != 1)
elog(ERROR, "expected one dependency record for TOAST table, found %ld",
@@ -807,7 +808,7 @@ swap_relation_files(Oid r1, Oid r2)
}
if (relform2->reltoastrelid)
{
- count = deleteDependencyRecordsFor(RelOid_pg_class,
+ count = deleteDependencyRecordsFor(RelationRelationId,
relform2->reltoastrelid);
if (count != 1)
elog(ERROR, "expected one dependency record for TOAST table, found %ld",
@@ -815,9 +816,9 @@ swap_relation_files(Oid r1, Oid r2)
}
/* Register new dependencies */
- baseobject.classId = RelOid_pg_class;
+ baseobject.classId = RelationRelationId;
baseobject.objectSubId = 0;
- toastobject.classId = RelOid_pg_class;
+ toastobject.classId = RelationRelationId;
toastobject.objectSubId = 0;
if (relform1->reltoastrelid)
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c
index 973719d8058..68d498641b8 100644
--- a/src/backend/commands/comment.c
+++ b/src/backend/commands/comment.c
@@ -7,7 +7,7 @@
* Copyright (c) 1996-2005, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.81 2005/01/27 23:23:54 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.82 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,9 +20,11 @@
#include "catalog/indexing.h"
#include "catalog/namespace.h"
#include "catalog/pg_constraint.h"
+#include "catalog/pg_database.h"
#include "catalog/pg_description.h"
#include "catalog/pg_largeobject.h"
#include "catalog/pg_operator.h"
+#include "catalog/pg_proc.h"
#include "catalog/pg_rewrite.h"
#include "catalog/pg_trigger.h"
#include "catalog/pg_type.h"
@@ -352,7 +354,7 @@ CommentRelation(int objtype, List *relname, char *comment)
/* Create the comment using the relation's oid */
- CreateComments(RelationGetRelid(relation), RelOid_pg_class, 0, comment);
+ CreateComments(RelationGetRelid(relation), RelationRelationId, 0, comment);
/* Done, but hold lock until commit */
relation_close(relation, NoLock);
@@ -406,7 +408,7 @@ CommentAttribute(List *qualname, char *comment)
/* Create the comment using the relation's oid */
- CreateComments(RelationGetRelid(relation), RelOid_pg_class,
+ CreateComments(RelationGetRelid(relation), RelationRelationId,
(int32) attnum, comment);
/* Done, but hold lock until commit */
@@ -475,7 +477,7 @@ CommentDatabase(List *qualname, char *comment)
database);
/* Create the comment with the pg_database oid */
- CreateComments(oid, RelOid_pg_database, 0, comment);
+ CreateComments(oid, DatabaseRelationId, 0, comment);
}
/*
@@ -670,7 +672,7 @@ CommentType(List *typename, char *comment)
/* Call CreateComments() to create/drop the comments */
- CreateComments(oid, RelOid_pg_type, 0, comment);
+ CreateComments(oid, TypeRelationId, 0, comment);
}
/*
@@ -706,7 +708,7 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
/* Call CreateComments() to create/drop the comments */
- CreateComments(oid, RelOid_pg_proc, 0, comment);
+ CreateComments(oid, ProcedureRelationId, 0, comment);
}
/*
@@ -735,7 +737,7 @@ CommentProc(List *function, List *arguments, char *comment)
/* Call CreateComments() to create/drop the comments */
- CreateComments(oid, RelOid_pg_proc, 0, comment);
+ CreateComments(oid, ProcedureRelationId, 0, comment);
}
/*
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c
index 5776738045b..fc00b45baec 100644
--- a/src/backend/commands/functioncmds.c
+++ b/src/backend/commands/functioncmds.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.59 2005/03/31 22:46:07 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.60 2005/04/14 01:38:16 tgl Exp $
*
* DESCRIPTION
* These routines take the parse tree and pick out the
@@ -719,7 +719,7 @@ RemoveFunction(RemoveFuncStmt *stmt)
/*
* Do the deletion
*/
- object.classId = RelOid_pg_proc;
+ object.classId = ProcedureRelationId;
object.objectId = funcOid;
object.objectSubId = 0;
@@ -1304,13 +1304,13 @@ CreateCast(CreateCastStmt *stmt)
myself.objectSubId = 0;
/* dependency on source type */
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = sourcetypeid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on target type */
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = targettypeid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -1318,7 +1318,7 @@ CreateCast(CreateCastStmt *stmt)
/* dependency on function */
if (OidIsValid(funcid))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = funcid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c
index 469e7b3f02b..01e3396efa5 100644
--- a/src/backend/commands/indexcmds.c
+++ b/src/backend/commands/indexcmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.128 2004/12/31 21:59:41 pgsql Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.129 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -65,6 +65,8 @@ static bool relationHasPrimaryKey(Relation rel);
* 'heapRelation': the relation the index will apply to.
* 'indexRelationName': the name for the new index, or NULL to indicate
* that a nonconflicting default name should be picked.
+ * 'indexRelationId': normally InvalidOid, but during bootstrap can be
+ * nonzero to specify a preselected OID for the index.
* 'accessMethodName': name of the AM to use.
* 'tableSpaceName': name of the tablespace to create the index in.
* NULL specifies using the appropriate default.
@@ -86,6 +88,7 @@ static bool relationHasPrimaryKey(Relation rel);
void
DefineIndex(RangeVar *heapRelation,
char *indexRelationName,
+ Oid indexRelationId,
char *accessMethodName,
char *tableSpaceName,
List *attributeList,
@@ -379,7 +382,7 @@ DefineIndex(RangeVar *heapRelation,
primary ? "PRIMARY KEY" : "UNIQUE",
indexRelationName, RelationGetRelationName(rel))));
- index_create(relationId, indexRelationName,
+ index_create(relationId, indexRelationName, indexRelationId,
indexInfo, accessMethodId, tablespaceId, classObjectId,
primary, isconstraint,
allowSystemTableMods, skip_build);
@@ -887,7 +890,7 @@ RemoveIndex(RangeVar *relation, DropBehavior behavior)
errmsg("\"%s\" is not an index",
relation->relname)));
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = indOid;
object.objectSubId = 0;
@@ -1027,7 +1030,7 @@ ReindexDatabase(const char *dbname, bool force /* currently unused */ ,
* reindexing itself will try to update pg_class.
*/
old = MemoryContextSwitchTo(private_context);
- relids = lappend_oid(relids, RelOid_pg_class);
+ relids = lappend_oid(relids, RelationRelationId);
MemoryContextSwitchTo(old);
/*
@@ -1057,7 +1060,7 @@ ReindexDatabase(const char *dbname, bool force /* currently unused */ ,
continue;
}
- if (HeapTupleGetOid(tuple) == RelOid_pg_class)
+ if (HeapTupleGetOid(tuple) == RelationRelationId)
continue; /* got it already */
old = MemoryContextSwitchTo(private_context);
diff --git a/src/backend/commands/opclasscmds.c b/src/backend/commands/opclasscmds.c
index 9af0ae15dba..5d5ae51a82c 100644
--- a/src/backend/commands/opclasscmds.c
+++ b/src/backend/commands/opclasscmds.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.30 2005/03/29 00:16:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.31 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -356,7 +356,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
/* dependency on indexed datatype */
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = typeoid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -364,7 +364,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
/* dependency on storage datatype */
if (OidIsValid(storageoid))
{
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = storageoid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -386,7 +386,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
{
OpClassMember *proc = (OpClassMember *) lfirst(l);
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = proc->object;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c
index f50e0936c80..e94d5b4b288 100644
--- a/src/backend/commands/proclang.c
+++ b/src/backend/commands/proclang.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.58 2005/03/29 03:01:30 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.59 2005/04/14 01:38:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -149,7 +149,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
myself.objectSubId = 0;
/* dependency on the PL handler function */
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = procOid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -157,7 +157,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
/* dependency on the validator function, if any */
if (OidIsValid(valProcOid))
{
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = valProcOid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 79e36c64e71..3a88ea520b8 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.153 2005/04/13 16:50:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.154 2005/04/14 01:38:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -424,6 +424,7 @@ DefineRelation(CreateStmt *stmt, char relkind)
relationId = heap_create_with_catalog(relname,
namespaceId,
tablespaceId,
+ InvalidOid,
descriptor,
relkind,
false,
@@ -517,7 +518,7 @@ RemoveRelation(const RangeVar *relation, DropBehavior behavior)
relOid = RangeVarGetRelid(relation, false);
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = relOid;
object.objectSubId = 0;
@@ -1163,10 +1164,10 @@ StoreCatalogInheritance(Oid relationId, List *supers)
/*
* Store a dependency too
*/
- parentobject.classId = RelOid_pg_class;
+ parentobject.classId = RelationRelationId;
parentobject.objectId = parentOid;
parentobject.objectSubId = 0;
- childobject.classId = RelOid_pg_class;
+ childobject.classId = RelationRelationId;
childobject.objectId = relationId;
childobject.objectSubId = 0;
@@ -2293,7 +2294,7 @@ ATRewriteTables(List **wqueue)
CommandCounterIncrement();
/* Destroy new heap with old filenode */
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = OIDNewHeap;
object.objectSubId = 0;
@@ -2776,7 +2777,7 @@ find_composite_type_dependencies(Oid typeOid, const char *origTblName)
ScanKeyInit(&key[0],
Anum_pg_depend_refclassid,
BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(RelOid_pg_type));
+ ObjectIdGetDatum(TypeRelationId));
ScanKeyInit(&key[1],
Anum_pg_depend_refobjid,
BTEqualStrategyNumber, F_OIDEQ,
@@ -2793,7 +2794,7 @@ find_composite_type_dependencies(Oid typeOid, const char *origTblName)
/* Ignore dependees that aren't user columns of relations */
/* (we assume system columns are never of rowtypes) */
- if (pg_depend->classid != RelOid_pg_class ||
+ if (pg_depend->classid != RelationRelationId ||
pg_depend->objsubid <= 0)
continue;
@@ -3112,10 +3113,10 @@ add_column_datatype_dependency(Oid relid, int32 attnum, Oid typid)
ObjectAddress myself,
referenced;
- myself.classId = RelOid_pg_class;
+ myself.classId = RelationRelationId;
myself.objectId = relid;
myself.objectSubId = attnum;
- referenced.classId = RelOid_pg_type;
+ referenced.classId = TypeRelationId;
referenced.objectId = typid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -3130,10 +3131,10 @@ add_column_support_dependency(Oid relid, int32 attnum, RangeVar *support)
ObjectAddress colobject,
suppobject;
- colobject.classId = RelOid_pg_class;
+ colobject.classId = RelationRelationId;
colobject.objectId = relid;
colobject.objectSubId = attnum;
- suppobject.classId = RelOid_pg_class;
+ suppobject.classId = RelationRelationId;
suppobject.objectId = RangeVarGetRelid(support, false);
suppobject.objectSubId = 0;
recordDependencyOn(&suppobject, &colobject, DEPENDENCY_INTERNAL);
@@ -3637,7 +3638,7 @@ ATExecDropColumn(Relation rel, const char *colName,
/*
* Perform the actual column deletion
*/
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = RelationGetRelid(rel);
object.objectSubId = attnum;
@@ -3697,6 +3698,7 @@ ATExecAddIndex(AlteredTableInfo *tab, Relation rel,
DefineIndex(stmt->relation, /* relation */
stmt->idxname, /* index name */
+ InvalidOid, /* no predefined OID */
stmt->accessMethod, /* am name */
stmt->tableSpace,
stmt->indexParams, /* parameters */
@@ -4894,7 +4896,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
ScanKeyInit(&key[0],
Anum_pg_depend_refclassid,
BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(RelOid_pg_class));
+ ObjectIdGetDatum(RelationRelationId));
ScanKeyInit(&key[1],
Anum_pg_depend_refobjid,
BTEqualStrategyNumber, F_OIDEQ,
@@ -5018,7 +5020,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
ScanKeyInit(&key[0],
Anum_pg_depend_classid,
BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(RelOid_pg_class));
+ ObjectIdGetDatum(RelationRelationId));
ScanKeyInit(&key[1],
Anum_pg_depend_objid,
BTEqualStrategyNumber, F_OIDEQ,
@@ -5038,7 +5040,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
if (foundDep->deptype != DEPENDENCY_NORMAL)
elog(ERROR, "found unexpected dependency type '%c'",
foundDep->deptype);
- if (foundDep->refclassid != RelOid_pg_type ||
+ if (foundDep->refclassid != TypeRelationId ||
foundDep->refobjid != attTup->atttypid)
elog(ERROR, "found unexpected dependency for column");
@@ -5143,7 +5145,7 @@ ATPostAlterTypeCleanup(List **wqueue, AlteredTableInfo *tab)
performDeletion(&obj, DROP_RESTRICT);
}
- obj.classId = RelOid_pg_class;
+ obj.classId = RelationRelationId;
foreach(l, tab->changedIndexOids)
{
obj.objectId = lfirst_oid(l);
@@ -5399,7 +5401,7 @@ change_owner_recurse_to_sequences(Oid relationOid, int32 newOwnerSysId)
ScanKeyInit(&key[0],
Anum_pg_depend_refclassid,
BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(RelOid_pg_class));
+ ObjectIdGetDatum(RelationRelationId));
ScanKeyInit(&key[1],
Anum_pg_depend_refobjid,
BTEqualStrategyNumber, F_OIDEQ,
@@ -5416,7 +5418,7 @@ change_owner_recurse_to_sequences(Oid relationOid, int32 newOwnerSysId)
/* skip dependencies other than internal dependencies on columns */
if (depForm->refobjsubid == 0 ||
- depForm->classid != RelOid_pg_class ||
+ depForm->classid != RelationRelationId ||
depForm->objsubid != 0 ||
depForm->deptype != DEPENDENCY_INTERNAL)
continue;
@@ -5853,6 +5855,7 @@ AlterTableCreateToastTable(Oid relOid, bool silent)
toast_relid = heap_create_with_catalog(toast_relname,
PG_TOAST_NAMESPACE,
rel->rd_rel->reltablespace,
+ InvalidOid,
tupdesc,
RELKIND_TOASTVALUE,
shared_relation,
@@ -5889,7 +5892,8 @@ AlterTableCreateToastTable(Oid relOid, bool silent)
classObjectId[0] = OID_BTREE_OPS_OID;
classObjectId[1] = INT4_BTREE_OPS_OID;
- toast_idxid = index_create(toast_relid, toast_idxname, indexInfo,
+ toast_idxid = index_create(toast_relid, toast_idxname, InvalidOid,
+ indexInfo,
BTREE_AM_OID,
rel->rd_rel->reltablespace,
classObjectId,
@@ -5928,10 +5932,10 @@ AlterTableCreateToastTable(Oid relOid, bool silent)
* Register dependency from the toast table to the master, so that the
* toast table will be deleted if the master is.
*/
- baseobject.classId = RelOid_pg_class;
+ baseobject.classId = RelationRelationId;
baseobject.objectId = relOid;
baseobject.objectSubId = 0;
- toastobject.classId = RelOid_pg_class;
+ toastobject.classId = RelationRelationId;
toastobject.objectId = toast_relid;
toastobject.objectSubId = 0;
@@ -6091,7 +6095,7 @@ PreCommit_on_commit_actions(void)
{
ObjectAddress object;
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = oc->relid;
object.objectSubId = 0;
performDeletion(&object, DROP_CASCADE);
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 8c8ed9e21ca..851aed3b6d8 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.184 2005/04/11 19:51:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.185 2005/04/14 01:38:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -422,20 +422,20 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
* dependency on the constraint will indirectly depend on the
* relations.
*/
- referenced.classId = RelOid_pg_proc;
+ referenced.classId = ProcedureRelationId;
referenced.objectId = funcoid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
if (!forConstraint)
{
- referenced.classId = RelOid_pg_class;
+ referenced.classId = RelationRelationId;
referenced.objectId = RelationGetRelid(rel);
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO);
if (constrrelid != InvalidOid)
{
- referenced.classId = RelOid_pg_class;
+ referenced.classId = RelationRelationId;
referenced.objectId = constrrelid;
referenced.objectSubId = 0;
recordDependencyOn(&myself, &referenced, DEPENDENCY_AUTO);
diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c
index 5fd01c6f598..0af04f86f54 100644
--- a/src/backend/commands/typecmds.c
+++ b/src/backend/commands/typecmds.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.68 2005/03/29 03:01:30 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.69 2005/04/14 01:38:17 tgl Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -441,7 +441,7 @@ RemoveType(List *names, DropBehavior behavior)
/*
* Do the deletion
*/
- object.classId = RelOid_pg_type;
+ object.classId = TypeRelationId;
object.objectId = typeoid;
object.objectSubId = 0;
@@ -836,7 +836,7 @@ RemoveDomain(List *names, DropBehavior behavior)
/*
* Do the deletion
*/
- object.classId = RelOid_pg_type;
+ object.classId = TypeRelationId;
object.objectId = typeoid;
object.objectSubId = 0;
@@ -1655,7 +1655,7 @@ get_rels_with_domain(Oid domainOid, LOCKMODE lockmode)
ScanKeyInit(&key[0],
Anum_pg_depend_refclassid,
BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(RelOid_pg_type));
+ ObjectIdGetDatum(TypeRelationId));
ScanKeyInit(&key[1],
Anum_pg_depend_refobjid,
BTEqualStrategyNumber, F_OIDEQ,
@@ -1674,7 +1674,7 @@ get_rels_with_domain(Oid domainOid, LOCKMODE lockmode)
/* Ignore dependees that aren't user columns of relations */
/* (we assume system columns are never of domain types) */
- if (pg_depend->classid != RelOid_pg_class ||
+ if (pg_depend->classid != RelationRelationId ||
pg_depend->objsubid <= 0)
continue;
diff --git a/src/backend/commands/user.c b/src/backend/commands/user.c
index 6136e99519e..12dd14ff1b9 100644
--- a/src/backend/commands/user.c
+++ b/src/backend/commands/user.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.149 2005/02/20 02:21:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.150 2005/04/14 01:38:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -813,10 +813,10 @@ CheckPgUserAclNotNull(void)
HeapTuple htup;
htup = SearchSysCache(RELOID,
- ObjectIdGetDatum(RelOid_pg_shadow),
+ ObjectIdGetDatum(ShadowRelationId),
0, 0, 0);
if (!HeapTupleIsValid(htup)) /* should not happen, we hope */
- elog(ERROR, "cache lookup failed for relation %u", RelOid_pg_shadow);
+ elog(ERROR, "cache lookup failed for relation %u", ShadowRelationId);
if (heap_attisnull(htup, Anum_pg_class_relacl))
ereport(ERROR,
diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c
index 81421f2a7b4..6158b16654c 100644
--- a/src/backend/commands/view.c
+++ b/src/backend/commands/view.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.89 2005/04/13 16:50:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/view.c,v 1.90 2005/04/14 01:38:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -448,7 +448,7 @@ RemoveView(const RangeVar *view, DropBehavior behavior)
viewOid = RangeVarGetRelid(view, false);
- object.classId = RelOid_pg_class;
+ object.classId = RelationRelationId;
object.objectId = viewOid;
object.objectSubId = 0;
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 0ba61044222..8facabbadad 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -26,7 +26,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.245 2005/04/06 16:34:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execMain.c,v 1.246 2005/04/14 01:38:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -759,6 +759,7 @@ InitPlan(QueryDesc *queryDesc, bool explainOnly)
intoRelationId = heap_create_with_catalog(intoName,
namespaceId,
InvalidOid,
+ InvalidOid,
tupdesc,
RELKIND_RELATION,
false,
diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c
index 45c44501a66..8c94ab3175a 100644
--- a/src/backend/rewrite/rewriteDefine.c
+++ b/src/backend/rewrite/rewriteDefine.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.102 2005/04/06 16:34:06 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.103 2005/04/14 01:38:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -148,11 +148,11 @@ InsertRule(char *rulname,
* implicit --- this prevents deleting a view's SELECT rule. Other
* kinds of rules can be AUTO.
*/
- myself.classId = RelationGetRelid(pg_rewrite_desc);
+ myself.classId = RewriteRelationId;
myself.objectId = rewriteObjectId;
myself.objectSubId = 0;
- referenced.classId = RelOid_pg_class;
+ referenced.classId = RelationRelationId;
referenced.objectId = eventrel_oid;
referenced.objectSubId = 0;
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index a3b946647ac..3fc8a2d8882 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.234 2005/03/14 00:19:36 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/tcop/utility.c,v 1.235 2005/04/14 01:38:18 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -724,6 +724,7 @@ ProcessUtility(Node *parsetree,
DefineIndex(stmt->relation, /* relation */
stmt->idxname, /* index name */
+ InvalidOid, /* no predefined OID */
stmt->accessMethod, /* am name */
stmt->tableSpace,
stmt->indexParams, /* parameters */
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index a6e5699357c..af840cdf971 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,7 +3,7 @@
* back to source text
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.191 2005/04/07 01:51:39 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.192 2005/04/14 01:38:19 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -1274,7 +1274,7 @@ pg_get_serial_sequence(PG_FUNCTION_ARGS)
ScanKeyInit(&key[0],
Anum_pg_depend_refclassid,
BTEqualStrategyNumber, F_OIDEQ,
- ObjectIdGetDatum(RelOid_pg_class));
+ ObjectIdGetDatum(RelationRelationId));
ScanKeyInit(&key[1],
Anum_pg_depend_refobjid,
BTEqualStrategyNumber, F_OIDEQ,
@@ -1295,7 +1295,7 @@ pg_get_serial_sequence(PG_FUNCTION_ARGS)
* We assume any internal dependency of a relation on a column
* must be what we are looking for.
*/
- if (deprec->classid == RelOid_pg_class &&
+ if (deprec->classid == RelationRelationId &&
deprec->objsubid == 0 &&
deprec->deptype == DEPENDENCY_INTERNAL)
{
diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index 21954589829..61b7522f8c9 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -80,7 +80,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/inval.c,v 1.70 2005/01/10 21:57:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/inval.c,v 1.71 2005/04/14 01:38:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -541,7 +541,7 @@ PrepareForTupleInvalidation(Relation relation, HeapTuple tuple)
*/
tupleRelId = RelationGetRelid(relation);
- if (tupleRelId == RelOid_pg_class)
+ if (tupleRelId == RelationRelationId)
{
Form_pg_class classtup = (Form_pg_class) GETSTRUCT(tuple);
RelFileNode rnode;
@@ -575,7 +575,7 @@ PrepareForTupleInvalidation(Relation relation, HeapTuple tuple)
rnode.relNode = classtup->relfilenode;
RegisterSmgrInvalidation(rnode);
}
- else if (tupleRelId == RelOid_pg_attribute)
+ else if (tupleRelId == AttributeRelationId)
{
Form_pg_attribute atttup = (Form_pg_attribute) GETSTRUCT(tuple);
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 109a6e811aa..e6c59b1815b 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.218 2005/03/29 00:17:11 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.219 2005/04/14 01:38:19 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2150,18 +2150,36 @@ RelationBuildLocalRelation(const char *relname,
TupleDesc tupDesc,
Oid relid,
Oid reltablespace,
- bool shared_relation,
- bool nailit)
+ bool shared_relation)
{
Relation rel;
MemoryContext oldcxt;
int natts = tupDesc->natts;
int i;
bool has_not_null;
+ bool nailit;
AssertArg(natts >= 0);
/*
+ * check for creation of a rel that must be nailed in cache.
+ *
+ * XXX this list had better match RelationCacheInitialize's list.
+ */
+ switch (relid)
+ {
+ case RelationRelationId:
+ case AttributeRelationId:
+ case ProcedureRelationId:
+ case TypeRelationId:
+ nailit = true;
+ break;
+ default:
+ nailit = false;
+ break;
+ }
+
+ /*
* switch to the cache context to create the relcache entry.
*/
if (!CacheMemoryContext)
@@ -2179,6 +2197,9 @@ RelationBuildLocalRelation(const char *relname,
/* make sure relation is marked as having no open file yet */
rel->rd_smgr = NULL;
+ /* mark it nailed if appropriate */
+ rel->rd_isnailed = nailit;
+
rel->rd_refcnt = nailit ? 1 : 0;
/* it's being created in this transaction */
@@ -2191,14 +2212,6 @@ RelationBuildLocalRelation(const char *relname,
rel->rd_istemp = isTempNamespace(relnamespace);
/*
- * nail the reldesc if this is a bootstrap create reln and we may need
- * it in the cache later on in the bootstrap process so we don't ever
- * want it kicked out. e.g. pg_attribute!!!
- */
- if (nailit)
- rel->rd_isnailed = true;
-
- /*
* create a new tuple descriptor from the one passed in. We do this
* partly to copy it into the cache context, and partly because the
* new relation can't have any defaults or constraints yet; they have
diff --git a/src/backend/utils/init/flatfiles.c b/src/backend/utils/init/flatfiles.c
index e7ddd0a42c1..4dc27dcdf5a 100644
--- a/src/backend/utils/init/flatfiles.c
+++ b/src/backend/utils/init/flatfiles.c
@@ -22,7 +22,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/utils/init/flatfiles.c,v 1.4 2005/02/26 18:43:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/flatfiles.c,v 1.5 2005/04/14 01:38:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -643,7 +643,7 @@ BuildFlatFiles(bool database_only)
/* hard-wired path to pg_database */
rnode.spcNode = GLOBALTABLESPACE_OID;
rnode.dbNode = 0;
- rnode.relNode = RelOid_pg_database;
+ rnode.relNode = DatabaseRelationId;
/* No locking is needed because no one else is alive yet */
rel = XLogOpenRelation(true, 0, rnode);
@@ -654,7 +654,7 @@ BuildFlatFiles(bool database_only)
/* hard-wired path to pg_group */
rnode.spcNode = GLOBALTABLESPACE_OID;
rnode.dbNode = 0;
- rnode.relNode = RelOid_pg_group;
+ rnode.relNode = GroupRelationId;
rel = XLogOpenRelation(true, 0, rnode);
write_group_file(rel);
@@ -662,7 +662,7 @@ BuildFlatFiles(bool database_only)
/* hard-wired path to pg_shadow */
rnode.spcNode = GLOBALTABLESPACE_OID;
rnode.dbNode = 0;
- rnode.relNode = RelOid_pg_shadow;
+ rnode.relNode = ShadowRelationId;
rel = XLogOpenRelation(true, 0, rnode);
write_user_file(rel);
@@ -816,13 +816,13 @@ flatfile_update_trigger(PG_FUNCTION_ARGS)
switch (RelationGetRelid(trigdata->tg_relation))
{
- case RelOid_pg_database:
+ case DatabaseRelationId:
database_file_update_needed();
break;
- case RelOid_pg_group:
+ case GroupRelationId:
group_file_update_needed();
break;
- case RelOid_pg_shadow:
+ case ShadowRelationId:
user_file_update_needed();
break;
default:
diff --git a/src/include/catalog/catname.h b/src/include/catalog/catname.h
index 915dc361635..27186ef0b23 100644
--- a/src/include/catalog/catname.h
+++ b/src/include/catalog/catname.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/catname.h,v 1.34 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/catname.h,v 1.35 2005/04/14 01:38:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -42,7 +42,6 @@
#define StatisticRelationName "pg_statistic"
#define TableSpaceRelationName "pg_tablespace"
#define TypeRelationName "pg_type"
-#define VersionRelationName "pg_version"
#define AttrDefaultRelationName "pg_attrdef"
#define TriggerRelationName "pg_trigger"
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index cb3868ea155..43d538cba70 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -37,7 +37,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.264 2005/04/12 04:26:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/catversion.h,v 1.265 2005/04/14 01:38:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,6 +53,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 200504111
+#define CATALOG_VERSION_NO 200504131
#endif
diff --git a/src/include/catalog/duplicate_oids b/src/include/catalog/duplicate_oids
index 6ff75b4a3a0..1964faabe3d 100755
--- a/src/include/catalog/duplicate_oids
+++ b/src/include/catalog/duplicate_oids
@@ -2,18 +2,23 @@
#
# duplicate_oids
#
-# $PostgreSQL: pgsql/src/include/catalog/duplicate_oids,v 1.6 2005/04/13 18:54:57 tgl Exp $
+# $PostgreSQL: pgsql/src/include/catalog/duplicate_oids,v 1.7 2005/04/14 01:38:20 tgl Exp $
#
# finds manually-assigned oids that are duplicated in the system tables.
#
# run this script in src/include/catalog.
#
-FILES=`ls pg_*.h`
+# note: we exclude BKI_BOOTSTRAP relations since they are expected to have
+# matching DATA lines in pg_class.h
-egrep '^DATA' $FILES | \
- sed -e 's/^.*OID[^=]*=[^0-9]*//' -e 's/[^0-9].*$//' | \
- sort -n | uniq -d | \
- egrep -v '^0*$'
+cat pg_*.h indexing.h | \
+egrep -v -e '^CATALOG\(.*BKI_BOOTSTRAP' | \
+sed -n -e 's/^DATA(insert *OID *= *\([0-9][0-9]*\).*$/\1/p' \
+ -e 's/^CATALOG([^,]*, *\([0-9][0-9]*\).*$/\1/p' \
+ -e 's/^DECLARE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \
+ -e 's/^DECLARE_UNIQUE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' | \
+sort -n | \
+uniq -d
exit 0
diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h
index 7a7352c6938..d38bbd1ae0d 100644
--- a/src/include/catalog/heap.h
+++ b/src/include/catalog/heap.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/heap.h,v 1.73 2005/01/27 03:18:15 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/heap.h,v 1.74 2005/04/14 01:38:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -38,6 +38,7 @@ typedef struct CookedConstraint
extern Relation heap_create(const char *relname,
Oid relnamespace,
Oid reltablespace,
+ Oid relid,
TupleDesc tupDesc,
char relkind,
bool shared_relation,
@@ -46,6 +47,7 @@ extern Relation heap_create(const char *relname,
extern Oid heap_create_with_catalog(const char *relname,
Oid relnamespace,
Oid reltablespace,
+ Oid relid,
TupleDesc tupdesc,
char relkind,
bool shared_relation,
diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h
index cd69d0f2508..f8bfdfb5266 100644
--- a/src/include/catalog/index.h
+++ b/src/include/catalog/index.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/index.h,v 1.61 2005/03/21 01:24:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/index.h,v 1.62 2005/04/14 01:38:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -32,6 +32,7 @@ typedef void (*IndexBuildCallback) (Relation index,
extern Oid index_create(Oid heapRelationId,
const char *indexRelationName,
+ Oid indexRelationId,
IndexInfo *indexInfo,
Oid accessMethodObjectId,
Oid tableSpaceId,
diff --git a/src/include/catalog/indexing.h b/src/include/catalog/indexing.h
index 5b0a63cd4da..a64771cd813 100644
--- a/src/include/catalog/indexing.h
+++ b/src/include/catalog/indexing.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/indexing.h,v 1.85 2005/03/29 00:17:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/indexing.h,v 1.86 2005/04/14 01:38:20 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -101,8 +101,8 @@ extern void CatalogUpdateIndexes(Relation heapRel, HeapTuple heapTuple);
* These macros are just to keep the C compiler from spitting up on the
* upcoming commands for genbki.sh.
*/
-#define DECLARE_INDEX(x) extern int no_such_variable
-#define DECLARE_UNIQUE_INDEX(x) extern int no_such_variable
+#define DECLARE_INDEX(name,oid,decl) extern int no_such_variable
+#define DECLARE_UNIQUE_INDEX(name,oid,decl) extern int no_such_variable
#define BUILD_INDICES
@@ -110,74 +110,157 @@ extern void CatalogUpdateIndexes(Relation heapRel, HeapTuple heapTuple);
* What follows are lines processed by genbki.sh to create the statements
* the bootstrap parser will turn into DefineIndex commands.
*
- * The keyword is DECLARE_INDEX or DECLARE_UNIQUE_INDEX. Everything after
- * that is just like in a normal 'create index' SQL command.
+ * The keyword is DECLARE_INDEX or DECLARE_UNIQUE_INDEX. The first two
+ * arguments are the index name and OID, the rest is much like a standard
+ * 'create index' SQL command.
*/
-DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index on pg_aggregate using btree(aggfnoid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_am_name_index on pg_am using btree(amname name_ops));
-DECLARE_UNIQUE_INDEX(pg_am_oid_index on pg_am using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_amop_opc_strat_index on pg_amop using btree(amopclaid oid_ops, amopsubtype oid_ops, amopstrategy int2_ops));
-DECLARE_UNIQUE_INDEX(pg_amop_opr_opc_index on pg_amop using btree(amopopr oid_ops, amopclaid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_amproc_opc_proc_index on pg_amproc using btree(amopclaid oid_ops, amprocsubtype oid_ops, amprocnum int2_ops));
-DECLARE_UNIQUE_INDEX(pg_attrdef_adrelid_adnum_index on pg_attrdef using btree(adrelid oid_ops, adnum int2_ops));
-DECLARE_UNIQUE_INDEX(pg_attrdef_oid_index on pg_attrdef using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index on pg_attribute using btree(attrelid oid_ops, attname name_ops));
-DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnum_index on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
-DECLARE_UNIQUE_INDEX(pg_cast_oid_index on pg_cast using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_cast_source_target_index on pg_cast using btree(castsource oid_ops, casttarget oid_ops));
-DECLARE_UNIQUE_INDEX(pg_class_oid_index on pg_class using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index on pg_class using btree(relname name_ops, relnamespace oid_ops));
-/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_constraint_conname_nsp_index on pg_constraint using btree(conname name_ops, connamespace oid_ops));
+DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index,2650, on pg_aggregate using btree(aggfnoid oid_ops));
+#define AggregateFnoidIndexId 2650
+
+DECLARE_UNIQUE_INDEX(pg_am_name_index,2651, on pg_am using btree(amname name_ops));
+#define AmNameIndexId 2651
+DECLARE_UNIQUE_INDEX(pg_am_oid_index,2652, on pg_am using btree(oid oid_ops));
+#define AmOidIndexId 2652
+
+DECLARE_UNIQUE_INDEX(pg_amop_opc_strat_index,2653, on pg_amop using btree(amopclaid oid_ops, amopsubtype oid_ops, amopstrategy int2_ops));
+#define AccessMethodStrategyIndexId 2653
+DECLARE_UNIQUE_INDEX(pg_amop_opr_opc_index,2654, on pg_amop using btree(amopopr oid_ops, amopclaid oid_ops));
+#define AccessMethodOperatorIndexId 2654
+
+DECLARE_UNIQUE_INDEX(pg_amproc_opc_proc_index,2655, on pg_amproc using btree(amopclaid oid_ops, amprocsubtype oid_ops, amprocnum int2_ops));
+#define AccessMethodProcedureIndexId 2655
+
+DECLARE_UNIQUE_INDEX(pg_attrdef_adrelid_adnum_index,2656, on pg_attrdef using btree(adrelid oid_ops, adnum int2_ops));
+#define AttrDefaultIndexId 2656
+DECLARE_UNIQUE_INDEX(pg_attrdef_oid_index,2657, on pg_attrdef using btree(oid oid_ops));
+#define AttrDefaultOidIndexId 2657
+
+DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnam_index,2658, on pg_attribute using btree(attrelid oid_ops, attname name_ops));
+#define AttributeRelidNameIndexId 2658
+DECLARE_UNIQUE_INDEX(pg_attribute_relid_attnum_index,2659, on pg_attribute using btree(attrelid oid_ops, attnum int2_ops));
+#define AttributeRelidNumIndexId 2659
+
+DECLARE_UNIQUE_INDEX(pg_cast_oid_index,2660, on pg_cast using btree(oid oid_ops));
+#define CastOidIndexId 2660
+DECLARE_UNIQUE_INDEX(pg_cast_source_target_index,2661, on pg_cast using btree(castsource oid_ops, casttarget oid_ops));
+#define CastSourceTargetIndexId 2661
+
+DECLARE_UNIQUE_INDEX(pg_class_oid_index,2662, on pg_class using btree(oid oid_ops));
+#define ClassOidIndexId 2662
+DECLARE_UNIQUE_INDEX(pg_class_relname_nsp_index,2663, on pg_class using btree(relname name_ops, relnamespace oid_ops));
+#define ClassNameNspIndexId 2663
+
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_constraint_conrelid_index on pg_constraint using btree(conrelid oid_ops));
+DECLARE_INDEX(pg_constraint_conname_nsp_index,2664, on pg_constraint using btree(conname name_ops, connamespace oid_ops));
+#define ConstraintNameNspIndexId 2664
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_constraint_contypid_index on pg_constraint using btree(contypid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_constraint_oid_index on pg_constraint using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_conversion_default_index on pg_conversion using btree(connamespace oid_ops, conforencoding int4_ops, contoencoding int4_ops, oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_conversion_name_nsp_index on pg_conversion using btree(conname name_ops, connamespace oid_ops));
-DECLARE_UNIQUE_INDEX(pg_conversion_oid_index on pg_conversion using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_database_datname_index on pg_database using btree(datname name_ops));
-DECLARE_UNIQUE_INDEX(pg_database_oid_index on pg_database using btree(oid oid_ops));
+DECLARE_INDEX(pg_constraint_conrelid_index,2665, on pg_constraint using btree(conrelid oid_ops));
+#define ConstraintRelidIndexId 2665
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_depend_depender_index on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid int4_ops));
+DECLARE_INDEX(pg_constraint_contypid_index,2666, on pg_constraint using btree(contypid oid_ops));
+#define ConstraintTypidIndexId 2666
+DECLARE_UNIQUE_INDEX(pg_constraint_oid_index,2667, on pg_constraint using btree(oid oid_ops));
+#define ConstraintOidIndexId 2667
+
+DECLARE_UNIQUE_INDEX(pg_conversion_default_index,2668, on pg_conversion using btree(connamespace oid_ops, conforencoding int4_ops, contoencoding int4_ops, oid oid_ops));
+#define ConversionDefaultIndexId 2668
+DECLARE_UNIQUE_INDEX(pg_conversion_name_nsp_index,2669, on pg_conversion using btree(conname name_ops, connamespace oid_ops));
+#define ConversionNameNspIndexId 2669
+DECLARE_UNIQUE_INDEX(pg_conversion_oid_index,2670, on pg_conversion using btree(oid oid_ops));
+#define ConversionOidIndexId 2670
+
+DECLARE_UNIQUE_INDEX(pg_database_datname_index,2671, on pg_database using btree(datname name_ops));
+#define DatabaseNameIndexId 2671
+DECLARE_UNIQUE_INDEX(pg_database_oid_index,2672, on pg_database using btree(oid oid_ops));
+#define DatabaseOidIndexId 2672
+
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_depend_reference_index on pg_depend using btree(refclassid oid_ops, refobjid oid_ops, refobjsubid int4_ops));
-DECLARE_UNIQUE_INDEX(pg_description_o_c_o_index on pg_description using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops));
-DECLARE_UNIQUE_INDEX(pg_group_name_index on pg_group using btree(groname name_ops));
-DECLARE_UNIQUE_INDEX(pg_group_sysid_index on pg_group using btree(grosysid int4_ops));
+DECLARE_INDEX(pg_depend_depender_index,2673, on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid int4_ops));
+#define DependDependerIndexId 2673
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_index_indrelid_index on pg_index using btree(indrelid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_index_indexrelid_index on pg_index using btree(indexrelid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_inherits_relid_seqno_index on pg_inherits using btree(inhrelid oid_ops, inhseqno int4_ops));
-DECLARE_UNIQUE_INDEX(pg_language_name_index on pg_language using btree(lanname name_ops));
-DECLARE_UNIQUE_INDEX(pg_language_oid_index on pg_language using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_largeobject_loid_pn_index on pg_largeobject using btree(loid oid_ops, pageno int4_ops));
-DECLARE_UNIQUE_INDEX(pg_namespace_nspname_index on pg_namespace using btree(nspname name_ops));
-DECLARE_UNIQUE_INDEX(pg_namespace_oid_index on pg_namespace using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_opclass_am_name_nsp_index on pg_opclass using btree(opcamid oid_ops, opcname name_ops, opcnamespace oid_ops));
-DECLARE_UNIQUE_INDEX(pg_opclass_oid_index on pg_opclass using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_operator_oid_index on pg_operator using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_operator_oprname_l_r_n_index on pg_operator using btree(oprname name_ops, oprleft oid_ops, oprright oid_ops, oprnamespace oid_ops));
-DECLARE_UNIQUE_INDEX(pg_proc_oid_index on pg_proc using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_proc_proname_args_nsp_index on pg_proc using btree(proname name_ops, proargtypes oidvector_ops, pronamespace oid_ops));
+DECLARE_INDEX(pg_depend_reference_index,2674, on pg_depend using btree(refclassid oid_ops, refobjid oid_ops, refobjsubid int4_ops));
+#define DependReferenceIndexId 2674
+
+DECLARE_UNIQUE_INDEX(pg_description_o_c_o_index,2675, on pg_description using btree(objoid oid_ops, classoid oid_ops, objsubid int4_ops));
+#define DescriptionObjIndexId 2675
+
+DECLARE_UNIQUE_INDEX(pg_group_name_index,2676, on pg_group using btree(groname name_ops));
+#define GroupNameIndexId 2676
+DECLARE_UNIQUE_INDEX(pg_group_sysid_index,2677, on pg_group using btree(grosysid int4_ops));
+#define GroupSysidIndexId 2677
+
/* This following index is not used for a cache and is not unique */
-DECLARE_UNIQUE_INDEX(pg_rewrite_oid_index on pg_rewrite using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_rewrite_rel_rulename_index on pg_rewrite using btree(ev_class oid_ops, rulename name_ops));
-DECLARE_UNIQUE_INDEX(pg_shadow_usename_index on pg_shadow using btree(usename name_ops));
-DECLARE_UNIQUE_INDEX(pg_shadow_usesysid_index on pg_shadow using btree(usesysid int4_ops));
-DECLARE_UNIQUE_INDEX(pg_statistic_relid_att_index on pg_statistic using btree(starelid oid_ops, staattnum int2_ops));
-DECLARE_UNIQUE_INDEX(pg_tablespace_oid_index on pg_tablespace using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_tablespace_spcname_index on pg_tablespace using btree(spcname name_ops));
+DECLARE_INDEX(pg_index_indrelid_index,2678, on pg_index using btree(indrelid oid_ops));
+#define IndexIndrelidIndexId 2678
+DECLARE_UNIQUE_INDEX(pg_index_indexrelid_index,2679, on pg_index using btree(indexrelid oid_ops));
+#define IndexRelidIndexId 2679
+
+DECLARE_UNIQUE_INDEX(pg_inherits_relid_seqno_index,2680, on pg_inherits using btree(inhrelid oid_ops, inhseqno int4_ops));
+#define InheritsRelidSeqnoIndexId 2680
+
+DECLARE_UNIQUE_INDEX(pg_language_name_index,2681, on pg_language using btree(lanname name_ops));
+#define LanguageNameIndexId 2681
+DECLARE_UNIQUE_INDEX(pg_language_oid_index,2682, on pg_language using btree(oid oid_ops));
+#define LanguageOidIndexId 2682
+
+DECLARE_UNIQUE_INDEX(pg_largeobject_loid_pn_index,2683, on pg_largeobject using btree(loid oid_ops, pageno int4_ops));
+#define LargeObjectLOidPNIndexId 2683
+
+DECLARE_UNIQUE_INDEX(pg_namespace_nspname_index,2684, on pg_namespace using btree(nspname name_ops));
+#define NamespaceNameIndexId 2684
+DECLARE_UNIQUE_INDEX(pg_namespace_oid_index,2685, on pg_namespace using btree(oid oid_ops));
+#define NamespaceOidIndexId 2685
+
+DECLARE_UNIQUE_INDEX(pg_opclass_am_name_nsp_index,2686, on pg_opclass using btree(opcamid oid_ops, opcname name_ops, opcnamespace oid_ops));
+#define OpclassAmNameNspIndexId 2686
+DECLARE_UNIQUE_INDEX(pg_opclass_oid_index,2687, on pg_opclass using btree(oid oid_ops));
+#define OpclassOidIndexId 2687
+
+DECLARE_UNIQUE_INDEX(pg_operator_oid_index,2688, on pg_operator using btree(oid oid_ops));
+#define OperatorOidIndexId 2688
+DECLARE_UNIQUE_INDEX(pg_operator_oprname_l_r_n_index,2689, on pg_operator using btree(oprname name_ops, oprleft oid_ops, oprright oid_ops, oprnamespace oid_ops));
+#define OperatorNameNspIndexId 2689
+
+DECLARE_UNIQUE_INDEX(pg_proc_oid_index,2690, on pg_proc using btree(oid oid_ops));
+#define ProcedureOidIndexId 2690
+DECLARE_UNIQUE_INDEX(pg_proc_proname_args_nsp_index,2691, on pg_proc using btree(proname name_ops, proargtypes oidvector_ops, pronamespace oid_ops));
+#define ProcedureNameArgsNspIndexId 2691
+
+DECLARE_UNIQUE_INDEX(pg_rewrite_oid_index,2692, on pg_rewrite using btree(oid oid_ops));
+#define RewriteOidIndexId 2692
+DECLARE_UNIQUE_INDEX(pg_rewrite_rel_rulename_index,2693, on pg_rewrite using btree(ev_class oid_ops, rulename name_ops));
+#define RewriteRelRulenameIndexId 2693
+
+DECLARE_UNIQUE_INDEX(pg_shadow_usename_index,2694, on pg_shadow using btree(usename name_ops));
+#define ShadowNameIndexId 2694
+DECLARE_UNIQUE_INDEX(pg_shadow_usesysid_index,2695, on pg_shadow using btree(usesysid int4_ops));
+#define ShadowSysidIndexId 2695
+
+DECLARE_UNIQUE_INDEX(pg_statistic_relid_att_index,2696, on pg_statistic using btree(starelid oid_ops, staattnum int2_ops));
+#define StatisticRelidAttnumIndexId 2696
+
+DECLARE_UNIQUE_INDEX(pg_tablespace_oid_index,2697, on pg_tablespace using btree(oid oid_ops));
+#define TablespaceOidIndexId 2697
+DECLARE_UNIQUE_INDEX(pg_tablespace_spcname_index,2698, on pg_tablespace using btree(spcname name_ops));
+#define TablespaceNameIndexId 2698
+
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_trigger_tgconstrname_index on pg_trigger using btree(tgconstrname name_ops));
+DECLARE_INDEX(pg_trigger_tgconstrname_index,2699, on pg_trigger using btree(tgconstrname name_ops));
+#define TriggerConstrNameIndexId 2699
/* This following index is not used for a cache and is not unique */
-DECLARE_INDEX(pg_trigger_tgconstrrelid_index on pg_trigger using btree(tgconstrrelid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_trigger_tgrelid_tgname_index on pg_trigger using btree(tgrelid oid_ops, tgname name_ops));
-DECLARE_UNIQUE_INDEX(pg_trigger_oid_index on pg_trigger using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_type_oid_index on pg_type using btree(oid oid_ops));
-DECLARE_UNIQUE_INDEX(pg_type_typname_nsp_index on pg_type using btree(typname name_ops, typnamespace oid_ops));
+DECLARE_INDEX(pg_trigger_tgconstrrelid_index,2700, on pg_trigger using btree(tgconstrrelid oid_ops));
+#define TriggerConstrRelidIndexId 2700
+DECLARE_UNIQUE_INDEX(pg_trigger_tgrelid_tgname_index,2701, on pg_trigger using btree(tgrelid oid_ops, tgname name_ops));
+#define TriggerRelidNameIndexId 2701
+DECLARE_UNIQUE_INDEX(pg_trigger_oid_index,2702, on pg_trigger using btree(oid oid_ops));
+#define TriggerOidIndexId 2702
+
+DECLARE_UNIQUE_INDEX(pg_type_oid_index,2703, on pg_type using btree(oid oid_ops));
+#define TypeOidIndexId 2703
+DECLARE_UNIQUE_INDEX(pg_type_typname_nsp_index,2704, on pg_type using btree(typname name_ops, typnamespace oid_ops));
+#define TypeNameNspIndexId 2704
+
/* last step of initialization script: build the indexes declared above */
BUILD_INDICES
diff --git a/src/include/catalog/pg_aggregate.h b/src/include/catalog/pg_aggregate.h
index 6e339c76873..2e150137ee6 100644
--- a/src/include/catalog/pg_aggregate.h
+++ b/src/include/catalog/pg_aggregate.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.50 2005/04/12 04:26:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_aggregate.h,v 1.51 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -23,7 +23,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -41,7 +41,9 @@
* agginitval initial value for transition state (can be NULL)
* ----------------------------------------------------------------
*/
-CATALOG(pg_aggregate) BKI_WITHOUT_OIDS
+#define AggregateRelationId 2600
+
+CATALOG(pg_aggregate,2600) BKI_WITHOUT_OIDS
{
regproc aggfnoid;
regproc aggtransfn;
diff --git a/src/include/catalog/pg_am.h b/src/include/catalog/pg_am.h
index 3bb646b1cdd..bddfda993bb 100644
--- a/src/include/catalog/pg_am.h
+++ b/src/include/catalog/pg_am.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_am.h,v 1.32 2005/03/27 23:53:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_am.h,v 1.33 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -24,7 +24,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -34,7 +34,9 @@
* typedef struct FormData_pg_am
* ----------------
*/
-CATALOG(pg_am)
+#define AccessMethodRelationId 2601
+
+CATALOG(pg_am,2601)
{
NameData amname; /* access method name */
int2 amstrategies; /* total NUMBER of strategies (operators)
diff --git a/src/include/catalog/pg_amop.h b/src/include/catalog/pg_amop.h
index 7eb0c221fcf..2b30f67a16a 100644
--- a/src/include/catalog/pg_amop.h
+++ b/src/include/catalog/pg_amop.h
@@ -23,7 +23,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.62 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amop.h,v 1.63 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -36,7 +36,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -46,7 +46,9 @@
* typedef struct FormData_pg_amop
* ----------------
*/
-CATALOG(pg_amop) BKI_WITHOUT_OIDS
+#define AccessMethodOperatorRelationId 2602
+
+CATALOG(pg_amop,2602) BKI_WITHOUT_OIDS
{
Oid amopclaid; /* the index opclass this entry is for */
Oid amopsubtype; /* operator subtype, or zero if default */
diff --git a/src/include/catalog/pg_amproc.h b/src/include/catalog/pg_amproc.h
index 4dfb1fa6cfa..f9eb419a169 100644
--- a/src/include/catalog/pg_amproc.h
+++ b/src/include/catalog/pg_amproc.h
@@ -19,7 +19,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.52 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_amproc.h,v 1.53 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -32,7 +32,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -42,7 +42,9 @@
* typedef struct FormData_pg_amproc
* ----------------
*/
-CATALOG(pg_amproc) BKI_WITHOUT_OIDS
+#define AccessMethodProcedureRelationId 2603
+
+CATALOG(pg_amproc,2603) BKI_WITHOUT_OIDS
{
Oid amopclaid; /* the index opclass this entry is for */
Oid amprocsubtype; /* procedure subtype, or zero if default */
diff --git a/src/include/catalog/pg_attrdef.h b/src/include/catalog/pg_attrdef.h
index cf52290fc1d..73962029b57 100644
--- a/src/include/catalog/pg_attrdef.h
+++ b/src/include/catalog/pg_attrdef.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_attrdef.h,v 1.18 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_attrdef.h,v 1.19 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_attrdef
* ----------------
*/
-CATALOG(pg_attrdef)
+#define AttrDefaultRelationId 2604
+
+CATALOG(pg_attrdef,2604)
{
Oid adrelid;
int2 adnum;
diff --git a/src/include/catalog/pg_attribute.h b/src/include/catalog/pg_attribute.h
index 2b07117ff95..a58f1d886b9 100644
--- a/src/include/catalog/pg_attribute.h
+++ b/src/include/catalog/pg_attribute.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_attribute.h,v 1.115 2005/03/29 19:44:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_attribute.h,v 1.116 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -26,7 +26,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -39,7 +39,9 @@
* system attributes in catalog/heap.c also.
* ----------------
*/
-CATALOG(pg_attribute) BOOTSTRAP BKI_WITHOUT_OIDS
+#define AttributeRelationId 1249
+
+CATALOG(pg_attribute,1249) BKI_BOOTSTRAP BKI_WITHOUT_OIDS
{
Oid attrelid; /* OID of relation containing this
* attribute */
@@ -246,7 +248,6 @@ typedef FormData_pg_attribute *Form_pg_attribute;
{ 1247, {"typdefaultbin"}, 25, -1, -1, 22, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }, \
{ 1247, {"typdefault"}, 25, -1, -1, 23, 0, -1, -1, false, 'x', 'i', false, false, false, true, 0 }
-
DATA(insert ( 1247 typname 19 -1 NAMEDATALEN 1 0 -1 -1 f p i t f f t 0));
DATA(insert ( 1247 typnamespace 26 -1 4 2 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1247 typowner 23 -1 4 3 0 -1 -1 t p i t f f t 0));
@@ -279,29 +280,6 @@ DATA(insert ( 1247 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1247 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
/* ----------------
- * pg_database
- * ----------------
- */
-DATA(insert ( 1262 datname 19 -1 NAMEDATALEN 1 0 -1 -1 f p i t f f t 0));
-DATA(insert ( 1262 datdba 23 -1 4 2 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 encoding 23 -1 4 3 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 datistemplate 16 -1 1 4 0 -1 -1 t p c t f f t 0));
-DATA(insert ( 1262 datallowconn 16 -1 1 5 0 -1 -1 t p c t f f t 0));
-DATA(insert ( 1262 datlastsysoid 26 -1 4 6 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 datvacuumxid 28 -1 4 7 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 datfrozenxid 28 -1 4 8 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 dattablespace 26 -1 4 9 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 datconfig 1009 -1 -1 10 1 -1 -1 f x i f f f t 0));
-DATA(insert ( 1262 datacl 1034 -1 -1 11 1 -1 -1 f x i f f f t 0));
-DATA(insert ( 1262 ctid 27 0 6 -1 0 -1 -1 f p s t f f t 0));
-DATA(insert ( 1262 oid 26 0 4 -2 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 xmin 28 0 4 -3 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 cmin 29 0 4 -4 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 xmax 28 0 4 -5 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1262 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
-
-/* ----------------
* pg_proc
* ----------------
*/
@@ -352,41 +330,6 @@ DATA(insert ( 1255 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1255 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
/* ----------------
- * pg_shadow
- * ----------------
- */
-DATA(insert ( 1260 usename 19 -1 NAMEDATALEN 1 0 -1 -1 f p i t f f t 0));
-DATA(insert ( 1260 usesysid 23 -1 4 2 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1260 usecreatedb 16 -1 1 3 0 -1 -1 t p c t f f t 0));
-DATA(insert ( 1260 usesuper 16 -1 1 4 0 -1 -1 t p c t f f t 0));
-DATA(insert ( 1260 usecatupd 16 -1 1 5 0 -1 -1 t p c t f f t 0));
-DATA(insert ( 1260 passwd 25 -1 -1 6 0 -1 -1 f x i f f f t 0));
-DATA(insert ( 1260 valuntil 702 -1 4 7 0 -1 -1 t p i f f f t 0));
-DATA(insert ( 1260 useconfig 1009 -1 -1 8 1 -1 -1 f x i f f f t 0));
-DATA(insert ( 1260 ctid 27 0 6 -1 0 -1 -1 f p s t f f t 0));
-/* no OIDs in pg_shadow */
-DATA(insert ( 1260 xmin 28 0 4 -3 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1260 cmin 29 0 4 -4 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1260 xmax 28 0 4 -5 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1260 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1260 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
-
-/* ----------------
- * pg_group
- * ----------------
- */
-DATA(insert ( 1261 groname 19 -1 NAMEDATALEN 1 0 -1 -1 f p i t f f t 0));
-DATA(insert ( 1261 grosysid 23 -1 4 2 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1261 grolist 1007 -1 -1 3 1 -1 -1 f x i f f f t 0));
-DATA(insert ( 1261 ctid 27 0 6 -1 0 -1 -1 f p s t f f t 0));
-/* no OIDs in pg_group */
-DATA(insert ( 1261 xmin 28 0 4 -3 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1261 cmin 29 0 4 -4 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1261 xmax 28 0 4 -5 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1261 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1261 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
-
-/* ----------------
* pg_attribute
* ----------------
*/
@@ -499,23 +442,6 @@ DATA(insert ( 1259 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
DATA(insert ( 1259 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
/* ----------------
- * pg_tablespace
- * ----------------
- */
-
-DATA(insert ( 1213 spcname 19 -1 NAMEDATALEN 1 0 -1 -1 f p i t f f t 0));
-DATA(insert ( 1213 spcowner 23 -1 4 2 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1213 spclocation 25 -1 -1 3 0 -1 -1 f x i t f f t 0));
-DATA(insert ( 1213 spcacl 1034 -1 -1 4 1 -1 -1 f x i f f f t 0));
-DATA(insert ( 1213 ctid 27 0 6 -1 0 -1 -1 f p s t f f t 0));
-DATA(insert ( 1213 oid 26 0 4 -2 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1213 xmin 28 0 4 -3 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1213 cmin 29 0 4 -4 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1213 xmax 28 0 4 -5 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1213 cmax 29 0 4 -6 0 -1 -1 t p i t f f t 0));
-DATA(insert ( 1213 tableoid 26 0 4 -7 0 -1 -1 t p i t f f t 0));
-
-/* ----------------
* pg_index
*
* pg_index is not bootstrapped in the same way as the other relations that
diff --git a/src/include/catalog/pg_cast.h b/src/include/catalog/pg_cast.h
index a917efc163f..99410eeb778 100644
--- a/src/include/catalog/pg_cast.h
+++ b/src/include/catalog/pg_cast.h
@@ -10,7 +10,7 @@
*
* Copyright (c) 2002-2005, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_cast.h,v 1.20 2005/04/13 16:15:35 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_cast.h,v 1.21 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,9 @@
#ifndef PG_CAST_H
#define PG_CAST_H
-CATALOG(pg_cast)
+#define CastRelationId 2605
+
+CATALOG(pg_cast,2605)
{
Oid castsource; /* source datatype for cast */
Oid casttarget; /* destination datatype for cast */
diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h
index f03bda60ee3..9ffc79ad8ca 100644
--- a/src/include/catalog/pg_class.h
+++ b/src/include/catalog/pg_class.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.86 2005/03/29 19:44:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_class.h,v 1.87 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -40,7 +40,9 @@
* to get the relacl field ... and don't forget to check isNull.
* ----------------
*/
-CATALOG(pg_class) BOOTSTRAP
+#define RelationRelationId 1259
+
+CATALOG(pg_class,1259) BKI_BOOTSTRAP
{
NameData relname; /* class name */
Oid relnamespace; /* OID of namespace containing this class */
@@ -132,7 +134,8 @@ typedef FormData_pg_class *Form_pg_class;
/* ----------------
* initial contents of pg_class
*
- * NOTE: only "bootstrapped" relations need to be declared here.
+ * NOTE: only "bootstrapped" relations need to be declared here. Be sure that
+ * the OIDs listed here match those given in their CATALOG macros.
* ----------------
*/
@@ -144,26 +147,9 @@ DATA(insert OID = 1255 ( pg_proc PGNSP 81 PGUID 0 1255 0 0 0 0 0 f f r 18 0 0
DESCR("");
DATA(insert OID = 1259 ( pg_class PGNSP 83 PGUID 0 1259 0 0 0 0 0 f f r 25 0 0 0 0 0 t f f f _null_ ));
DESCR("");
-DATA(insert OID = 1260 ( pg_shadow PGNSP 86 PGUID 0 1260 1664 0 0 0 0 f t r 8 0 0 0 0 0 f f f f _null_ ));
-DESCR("");
-DATA(insert OID = 1261 ( pg_group PGNSP 87 PGUID 0 1261 1664 0 0 0 0 f t r 3 0 0 0 0 0 f f f f _null_ ));
-DESCR("");
-DATA(insert OID = 1262 ( pg_database PGNSP 88 PGUID 0 1262 1664 0 0 0 0 f t r 11 0 0 0 0 0 t f f f _null_ ));
-DESCR("");
-DATA(insert OID = 1213 ( pg_tablespace PGNSP 90 PGUID 0 1213 1664 0 0 0 0 f t r 4 0 0 0 0 0 t f f f _null_ ));
-DESCR("");
DATA(insert OID = 376 ( pg_xactlock PGNSP 0 PGUID 0 0 1664 0 0 0 0 f t s 1 0 0 0 0 0 f f f f _null_ ));
DESCR("");
-#define RelOid_pg_type 1247
-#define RelOid_pg_attribute 1249
-#define RelOid_pg_proc 1255
-#define RelOid_pg_class 1259
-#define RelOid_pg_shadow 1260
-#define RelOid_pg_group 1261
-#define RelOid_pg_database 1262
-#define RelOid_pg_tablespace 1213
-
/* Xact lock pseudo-table */
#define XactLockTableId 376
diff --git a/src/include/catalog/pg_constraint.h b/src/include/catalog/pg_constraint.h
index fdc8c0676da..288a6adfa52 100644
--- a/src/include/catalog/pg_constraint.h
+++ b/src/include/catalog/pg_constraint.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_constraint.h,v 1.15 2005/03/25 21:57:59 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_constraint.h,v 1.16 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_constraint
* ----------------
*/
-CATALOG(pg_constraint)
+#define ConstraintRelationId 2606
+
+CATALOG(pg_constraint,2606)
{
/*
* conname + connamespace is deliberately not unique; we allow, for
diff --git a/src/include/catalog/pg_conversion.h b/src/include/catalog/pg_conversion.h
index 552766055cf..e9cd3ccca24 100644
--- a/src/include/catalog/pg_conversion.h
+++ b/src/include/catalog/pg_conversion.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_conversion.h,v 1.14 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_conversion.h,v 1.15 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -40,7 +40,9 @@
* condefault TRUE if this is a default conversion
* ----------------------------------------------------------------
*/
-CATALOG(pg_conversion)
+#define ConversionRelationId 2607
+
+CATALOG(pg_conversion,2607)
{
NameData conname;
Oid connamespace;
diff --git a/src/include/catalog/pg_database.h b/src/include/catalog/pg_database.h
index f7ac58a05c5..69b41e31720 100644
--- a/src/include/catalog/pg_database.h
+++ b/src/include/catalog/pg_database.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_database.h,v 1.34 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_database.h,v 1.35 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_database
* ----------------
*/
-CATALOG(pg_database) BOOTSTRAP BKI_SHARED_RELATION
+#define DatabaseRelationId 1262
+
+CATALOG(pg_database,1262) BKI_SHARED_RELATION
{
NameData datname; /* database name */
int4 datdba; /* sysid of owner */
diff --git a/src/include/catalog/pg_depend.h b/src/include/catalog/pg_depend.h
index acfae134978..09f5a04ed94 100644
--- a/src/include/catalog/pg_depend.h
+++ b/src/include/catalog/pg_depend.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_depend.h,v 1.5 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_depend.h,v 1.6 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_depend
* ----------------
*/
-CATALOG(pg_depend) BKI_WITHOUT_OIDS
+#define DependRelationId 2608
+
+CATALOG(pg_depend,2608) BKI_WITHOUT_OIDS
{
/*
* Identification of the dependent (referencing) object.
diff --git a/src/include/catalog/pg_description.h b/src/include/catalog/pg_description.h
index 96e824a427b..b96b2bf089e 100644
--- a/src/include/catalog/pg_description.h
+++ b/src/include/catalog/pg_description.h
@@ -22,7 +22,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_description.h,v 1.22 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_description.h,v 1.23 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -38,7 +38,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -48,7 +48,9 @@
* typedef struct FormData_pg_description
* ----------------
*/
-CATALOG(pg_description) BKI_WITHOUT_OIDS
+#define DescriptionRelationId 2609
+
+CATALOG(pg_description,2609) BKI_WITHOUT_OIDS
{
Oid objoid; /* OID of object itself */
Oid classoid; /* OID of table containing object */
diff --git a/src/include/catalog/pg_group.h b/src/include/catalog/pg_group.h
index 33af4b6983d..216d51a6660 100644
--- a/src/include/catalog/pg_group.h
+++ b/src/include/catalog/pg_group.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_group.h,v 1.20 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_group.h,v 1.21 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -20,12 +20,13 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
+#define GroupRelationId 1261
-CATALOG(pg_group) BOOTSTRAP BKI_SHARED_RELATION BKI_WITHOUT_OIDS
+CATALOG(pg_group,1261) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
NameData groname;
int4 grosysid;
diff --git a/src/include/catalog/pg_index.h b/src/include/catalog/pg_index.h
index 8ed1e29c06e..2c2ec348461 100644
--- a/src/include/catalog/pg_index.h
+++ b/src/include/catalog/pg_index.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_index.h,v 1.36 2005/03/29 00:17:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_index.h,v 1.37 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_index.
* ----------------
*/
-CATALOG(pg_index) BKI_WITHOUT_OIDS
+#define IndexRelationId 2610
+
+CATALOG(pg_index,2610) BKI_WITHOUT_OIDS
{
Oid indexrelid; /* OID of the index */
Oid indrelid; /* OID of the relation it indexes */
diff --git a/src/include/catalog/pg_inherits.h b/src/include/catalog/pg_inherits.h
index 361e9339dc5..b1b2b0aa33d 100644
--- a/src/include/catalog/pg_inherits.h
+++ b/src/include/catalog/pg_inherits.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_inherits.h,v 1.19 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_inherits.h,v 1.20 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_inherits
* ----------------
*/
-CATALOG(pg_inherits) BKI_WITHOUT_OIDS
+#define InheritsRelationId 2611
+
+CATALOG(pg_inherits,2611) BKI_WITHOUT_OIDS
{
Oid inhrelid;
Oid inhparent;
diff --git a/src/include/catalog/pg_language.h b/src/include/catalog/pg_language.h
index 5b82f723404..2254a5bc414 100644
--- a/src/include/catalog/pg_language.h
+++ b/src/include/catalog/pg_language.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_language.h,v 1.25 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_language.h,v 1.26 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_language
* ----------------
*/
-CATALOG(pg_language)
+#define LanguageRelationId 2612
+
+CATALOG(pg_language,2612)
{
NameData lanname;
bool lanispl; /* Is a procedural language */
diff --git a/src/include/catalog/pg_largeobject.h b/src/include/catalog/pg_largeobject.h
index 6578fe4dc66..cde3ba3285c 100644
--- a/src/include/catalog/pg_largeobject.h
+++ b/src/include/catalog/pg_largeobject.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_largeobject.h,v 1.18 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_largeobject.h,v 1.19 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,8 +31,9 @@
* typedef struct FormData_pg_largeobject
* ----------------
*/
+#define LargeObjectRelationId 2613
-CATALOG(pg_largeobject) BKI_WITHOUT_OIDS
+CATALOG(pg_largeobject,2613) BKI_WITHOUT_OIDS
{
Oid loid; /* Identifier of large object */
int4 pageno; /* Page number (starting from 0) */
diff --git a/src/include/catalog/pg_listener.h b/src/include/catalog/pg_listener.h
index f58317c2c8a..fedacf2b073 100644
--- a/src/include/catalog/pg_listener.h
+++ b/src/include/catalog/pg_listener.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_listener.h,v 1.18 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_listener.h,v 1.19 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -20,7 +20,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,8 +31,9 @@
* cpp turns this into typedef struct FormData_pg_listener
* ----------------------------------------------------------------
*/
+#define ListenerRelationId 2614
-CATALOG(pg_listener) BKI_WITHOUT_OIDS
+CATALOG(pg_listener,2614) BKI_WITHOUT_OIDS
{
NameData relname;
int4 listenerpid;
diff --git a/src/include/catalog/pg_namespace.h b/src/include/catalog/pg_namespace.h
index 4bc5c91c5bc..f6cb4cf8e5b 100644
--- a/src/include/catalog/pg_namespace.h
+++ b/src/include/catalog/pg_namespace.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_namespace.h,v 1.16 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_namespace.h,v 1.17 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -36,7 +36,9 @@
* nspacl access privilege list
* ----------------------------------------------------------------
*/
-CATALOG(pg_namespace)
+#define NamespaceRelationId 2615
+
+CATALOG(pg_namespace,2615)
{
NameData nspname;
int4 nspowner;
diff --git a/src/include/catalog/pg_opclass.h b/src/include/catalog/pg_opclass.h
index 3e4c1759162..6043fec22d0 100644
--- a/src/include/catalog/pg_opclass.h
+++ b/src/include/catalog/pg_opclass.h
@@ -27,7 +27,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.63 2005/03/26 23:29:19 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_opclass.h,v 1.64 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -40,7 +40,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -50,8 +50,9 @@
* typedef struct FormData_pg_opclass
* ----------------
*/
+#define OperatorClassRelationId 2616
-CATALOG(pg_opclass)
+CATALOG(pg_opclass,2616)
{
Oid opcamid; /* index access method opclass is for */
NameData opcname; /* name of this opclass */
diff --git a/src/include/catalog/pg_operator.h b/src/include/catalog/pg_operator.h
index d098db3359d..1ef2b106832 100644
--- a/src/include/catalog/pg_operator.h
+++ b/src/include/catalog/pg_operator.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.130 2004/12/31 22:03:24 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_operator.h,v 1.131 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -26,7 +26,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -36,7 +36,9 @@
* typedef struct FormData_pg_operator
* ----------------
*/
-CATALOG(pg_operator)
+#define OperatorRelationId 2617
+
+CATALOG(pg_operator,2617)
{
NameData oprname; /* name of operator */
Oid oprnamespace; /* OID of namespace containing this oper */
diff --git a/src/include/catalog/pg_proc.h b/src/include/catalog/pg_proc.h
index d9bf85973cb..27c6cb7ea8f 100644
--- a/src/include/catalog/pg_proc.h
+++ b/src/include/catalog/pg_proc.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.358 2005/04/12 04:26:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_proc.h,v 1.359 2005/04/14 01:38:20 tgl Exp $
*
* NOTES
* The script catalog/genbki.sh reads this file and generates .bki
@@ -25,7 +25,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -35,7 +35,9 @@
* typedef struct FormData_pg_proc
* ----------------
*/
-CATALOG(pg_proc) BOOTSTRAP
+#define ProcedureRelationId 1255
+
+CATALOG(pg_proc,1255) BKI_BOOTSTRAP
{
NameData proname; /* procedure name */
Oid pronamespace; /* OID of namespace containing this proc */
diff --git a/src/include/catalog/pg_rewrite.h b/src/include/catalog/pg_rewrite.h
index 253e4ea94b7..d29c33fce6d 100644
--- a/src/include/catalog/pg_rewrite.h
+++ b/src/include/catalog/pg_rewrite.h
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_rewrite.h,v 1.24 2004/12/31 22:03:25 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_rewrite.h,v 1.25 2005/04/14 01:38:21 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -24,7 +24,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -34,7 +34,9 @@
* typedef struct FormData_pg_rewrite
* ----------------
*/
-CATALOG(pg_rewrite)
+#define RewriteRelationId 2618
+
+CATALOG(pg_rewrite,2618)
{
NameData rulename;
Oid ev_class;
diff --git a/src/include/catalog/pg_shadow.h b/src/include/catalog/pg_shadow.h
index 1de9577b897..3c24d82d450 100644
--- a/src/include/catalog/pg_shadow.h
+++ b/src/include/catalog/pg_shadow.h
@@ -3,21 +3,19 @@
* pg_shadow.h
* definition of the system "shadow" relation (pg_shadow)
* along with the relation's initial contents.
- * pg_user is now a public accessible view on pg_shadow.
+ *
+ * pg_user is now a publicly accessible view on pg_shadow.
*
*
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_shadow.h,v 1.27 2004/12/31 22:03:26 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_shadow.h,v 1.28 2005/04/14 01:38:21 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
* information from the DATA() statements.
*
- * WHENEVER the definition for pg_shadow changes, the
- * view creation of pg_user must be changed in initdb.sh!
- *
*-------------------------------------------------------------------------
*/
#ifndef PG_SHADOW_H
@@ -29,7 +27,9 @@
* typedef struct FormData_pg_shadow
* ----------------
*/
-CATALOG(pg_shadow) BOOTSTRAP BKI_SHARED_RELATION BKI_WITHOUT_OIDS
+#define ShadowRelationId 1260
+
+CATALOG(pg_shadow,1260) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
{
NameData usename;
int4 usesysid;
@@ -54,7 +54,7 @@ typedef FormData_pg_shadow *Form_pg_shadow;
* compiler constants for pg_shadow
* ----------------
*/
-#define Natts_pg_shadow 8
+#define Natts_pg_shadow 8
#define Anum_pg_shadow_usename 1
#define Anum_pg_shadow_usesysid 2
#define Anum_pg_shadow_usecreatedb 3
diff --git a/src/include/catalog/pg_statistic.h b/src/include/catalog/pg_statistic.h
index 9af99ed1a5c..ded22c0329f 100644
--- a/src/include/catalog/pg_statistic.h
+++ b/src/include/catalog/pg_statistic.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_statistic.h,v 1.28 2004/12/31 22:03:26 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_statistic.h,v 1.29 2005/04/14 01:38:21 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -37,7 +37,9 @@ typedef struct varlena anyarray;
* typedef struct FormData_pg_statistic
* ----------------
*/
-CATALOG(pg_statistic) BKI_WITHOUT_OIDS
+#define StatisticRelationId 2619
+
+CATALOG(pg_statistic,2619) BKI_WITHOUT_OIDS
{
/* These fields form the unique key for the entry: */
Oid starelid; /* relation containing attribute */
diff --git a/src/include/catalog/pg_tablespace.h b/src/include/catalog/pg_tablespace.h
index 04c0a993057..7c440042746 100644
--- a/src/include/catalog/pg_tablespace.h
+++ b/src/include/catalog/pg_tablespace.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_tablespace.h,v 1.5 2004/12/31 22:03:26 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_tablespace.h,v 1.6 2005/04/14 01:38:21 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -21,7 +21,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -31,7 +31,9 @@
* typedef struct FormData_pg_tablespace
* ----------------
*/
-CATALOG(pg_tablespace) BOOTSTRAP BKI_SHARED_RELATION
+#define TableSpaceRelationId 1213
+
+CATALOG(pg_tablespace,1213) BKI_SHARED_RELATION
{
NameData spcname; /* tablespace name */
int4 spcowner; /* sysid of owner */
diff --git a/src/include/catalog/pg_trigger.h b/src/include/catalog/pg_trigger.h
index 3f1754c9940..cf3b51b375f 100644
--- a/src/include/catalog/pg_trigger.h
+++ b/src/include/catalog/pg_trigger.h
@@ -17,7 +17,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -27,7 +27,9 @@
* typedef struct FormData_pg_trigger
* ----------------
*/
-CATALOG(pg_trigger)
+#define TriggerRelationId 2620
+
+CATALOG(pg_trigger,2620)
{
Oid tgrelid; /* triggered relation */
NameData tgname; /* trigger' name */
diff --git a/src/include/catalog/pg_type.h b/src/include/catalog/pg_type.h
index 7b6bd6a948b..1af651c068e 100644
--- a/src/include/catalog/pg_type.h
+++ b/src/include/catalog/pg_type.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.159 2005/03/29 00:17:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/pg_type.h,v 1.160 2005/04/14 01:38:21 tgl Exp $
*
* NOTES
* the genbki.sh script reads this file and generates .bki
@@ -23,7 +23,7 @@
/* ----------------
* postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
+ * CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
* can be read by both genbki.sh and the C compiler.
* ----------------
*/
@@ -38,7 +38,9 @@
* See struct FormData_pg_attribute for details.
* ----------------
*/
-CATALOG(pg_type) BOOTSTRAP
+#define TypeRelationId 1247
+
+CATALOG(pg_type,1247) BKI_BOOTSTRAP
{
NameData typname; /* type name */
Oid typnamespace; /* OID of namespace containing this type */
@@ -304,6 +306,8 @@ DATA(insert OID = 30 ( oidvector PGNSP PGUID -1 f b t \054 0 26 oidvectorin oi
DESCR("array of oids, used in system tables");
#define OIDVECTOROID 30
+/* hand-built rowtype entries for bootstrapped catalogs: */
+
DATA(insert OID = 71 ( pg_type PGNSP PGUID -1 f c t \054 1247 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
#define PG_TYPE_RELTYPE_OID 71
DATA(insert OID = 75 ( pg_attribute PGNSP PGUID -1 f c t \054 1249 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
@@ -312,10 +316,6 @@ DATA(insert OID = 81 ( pg_proc PGNSP PGUID -1 f c t \054 1255 0 record_in reco
#define PG_PROC_RELTYPE_OID 81
DATA(insert OID = 83 ( pg_class PGNSP PGUID -1 f c t \054 1259 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
#define PG_CLASS_RELTYPE_OID 83
-DATA(insert OID = 86 ( pg_shadow PGNSP PGUID -1 f c t \054 1260 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
-DATA(insert OID = 87 ( pg_group PGNSP PGUID -1 f c t \054 1261 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
-DATA(insert OID = 88 ( pg_database PGNSP PGUID -1 f c t \054 1262 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
-DATA(insert OID = 90 ( pg_tablespace PGNSP PGUID -1 f c t \054 1213 0 record_in record_out record_recv record_send - d x f 0 -1 0 _null_ _null_ ));
/* OIDS 100 - 199 */
diff --git a/src/include/catalog/pg_version.h b/src/include/catalog/pg_version.h
deleted file mode 100644
index 246e6f05121..00000000000
--- a/src/include/catalog/pg_version.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * pg_version.h
- * definition of the system "version" relation (pg_version)
- * along with the relation's initial contents.
- *
- * NOTE: this table has nothing to do with the overall Postgres system
- * version or anything like that. It is for defining individual relations
- * that have multiple concurrently-existing versions. Yes, there used to
- * be such a feature in Postgres, but it's been broken for a long time
- * (see src/backend/commands/_deadcode/version.c). The pg_version table
- * isn't even created at present.
- *
- *
- * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $PostgreSQL: pgsql/src/include/catalog/pg_version.h,v 1.20 2004/12/31 22:03:26 pgsql Exp $
- *
- * NOTES
- * the genbki.sh script reads this file and generates .bki
- * information from the DATA() statements.
- *
- *-------------------------------------------------------------------------
- */
-#ifndef PG_VERSION_H
-#define PG_VERSION_H
-
-/* ----------------
- * postgres.h contains the system type definitions and the
- * CATALOG(), BOOTSTRAP and DATA() sugar words so this file
- * can be read by both genbki.sh and the C compiler.
- * ----------------
- */
-
-/* ----------------
- * pg_version definition. cpp turns this into
- * typedef struct FormData_pg_version
- * ----------------
- */
-CATALOG(pg_version)
-{
- Oid verrelid;
- Oid verbaseid;
- int4 vertime; /* really should be some abstime */
-} FormData_pg_version;
-
-/* ----------------
- * Form_pg_version corresponds to a pointer to a tuple with
- * the format of pg_version relation.
- * ----------------
- */
-typedef FormData_pg_version *Form_pg_version;
-
-/* ----------------
- * compiler constants for pg_version
- * ----------------
- */
-#define Natts_pg_version 3
-#define Anum_pg_version_verrelid 1
-#define Anum_pg_version_verbaseid 2
-#define Anum_pg_version_vertime 3
-
-#endif /* PG_VERSION_H */
diff --git a/src/include/catalog/unused_oids b/src/include/catalog/unused_oids
index b1ea971f3da..c83a637196a 100755
--- a/src/include/catalog/unused_oids
+++ b/src/include/catalog/unused_oids
@@ -2,7 +2,7 @@
#
# unused_oids
#
-# $PostgreSQL: pgsql/src/include/catalog/unused_oids,v 1.6 2005/04/13 18:54:57 tgl Exp $
+# $PostgreSQL: pgsql/src/include/catalog/unused_oids,v 1.7 2005/04/14 01:38:21 tgl Exp $
#
# finds blocks of manually-assignable oids that have not already been
# claimed by post_hackers. primarily useful for finding available
@@ -23,11 +23,19 @@ AWK="awk"
FIRSTOBJECTID=`grep '#define[ ]*FirstBootstrapObjectId' ../access/transam.h | $AWK '{ print $3 }'`
export FIRSTOBJECTID
-egrep '^DATA' pg_*.h | \
- sed -e 's/^.*OID[^=]*=[^0-9]*//' -e 's/[^0-9].*$//' | \
- sort -n | \
- uniq | \
- $AWK '
+# this part (down to the uniq step) should match the unused_oids script
+# note: we exclude BKI_BOOTSTRAP relations since they are expected to have
+# matching DATA lines in pg_class.h
+
+cat pg_*.h indexing.h | \
+egrep -v -e '^CATALOG\(.*BKI_BOOTSTRAP' | \
+sed -n -e 's/^DATA(insert *OID *= *\([0-9][0-9]*\).*$/\1/p' \
+ -e 's/^CATALOG([^,]*, *\([0-9][0-9]*\).*$/\1/p' \
+ -e 's/^DECLARE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' \
+ -e 's/^DECLARE_UNIQUE_INDEX([^,]*, *\([0-9][0-9]*\).*$/\1/p' | \
+sort -n | \
+uniq | \
+$AWK '
BEGIN {
last = 0;
}
diff --git a/src/include/commands/defrem.h b/src/include/commands/defrem.h
index 546e9f8dc0d..359c5af700c 100644
--- a/src/include/commands/defrem.h
+++ b/src/include/commands/defrem.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/commands/defrem.h,v 1.63 2005/03/14 00:19:37 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/commands/defrem.h,v 1.64 2005/04/14 01:38:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -20,6 +20,7 @@
/* commands/indexcmds.c */
extern void DefineIndex(RangeVar *heapRelation,
char *indexRelationName,
+ Oid indexRelationId,
char *accessMethodName,
char *tableSpaceName,
List *attributeList,
diff --git a/src/include/postgres.h b/src/include/postgres.h
index 794ffe50b6c..b82cd2fa8b5 100644
--- a/src/include/postgres.h
+++ b/src/include/postgres.h
@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1995, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/postgres.h,v 1.70 2004/12/31 22:03:19 pgsql Exp $
+ * $PostgreSQL: pgsql/src/include/postgres.h,v 1.71 2005/04/14 01:38:21 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -532,9 +532,9 @@ extern int ExceptionalCondition(char *conditionName, char *errorType,
* Section 4: genbki macros used by catalog/pg_xxx.h files
* ----------------------------------------------------------------
*/
-#define CATALOG(x) typedef struct CppConcat(FormData_,x)
+#define CATALOG(name,oid) typedef struct CppConcat(FormData_,name)
-#define BOOTSTRAP
+#define BKI_BOOTSTRAP
#define BKI_SHARED_RELATION
#define BKI_WITHOUT_OIDS
diff --git a/src/include/utils/relcache.h b/src/include/utils/relcache.h
index 3ddfe38e543..e5e8c8e07a2 100644
--- a/src/include/utils/relcache.h
+++ b/src/include/utils/relcache.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/relcache.h,v 1.48 2005/01/10 20:02:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/relcache.h,v 1.49 2005/04/14 01:38:22 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,8 +53,7 @@ extern Relation RelationBuildLocalRelation(const char *relname,
TupleDesc tupDesc,
Oid relid,
Oid reltablespace,
- bool shared_relation,
- bool nailit);
+ bool shared_relation);
/*
* Routines for flushing/rebuilding relcache entries in various scenarios