Completion of project to use fixed OIDs for all system catalogs and
authorTom Lane
Thu, 14 Apr 2005 20:03:27 +0000 (20:03 +0000)
committerTom Lane
Thu, 14 Apr 2005 20:03:27 +0000 (20:03 +0000)
indexes.  Replace all heap_openr and index_openr calls by heap_open
and index_open.  Remove runtime lookups of catalog OID numbers in
various places.  Remove relcache's support for looking up system
catalogs by name.  Bulky but mostly very boring patch ...

71 files changed:
contrib/dblink/dblink.c
contrib/intagg/int_aggregate.c
contrib/miscutil/misc_utils.c
src/backend/access/heap/heapam.c
src/backend/access/index/genam.c
src/backend/access/index/indexam.c
src/backend/bootstrap/bootstrap.c
src/backend/catalog/aclchk.c
src/backend/catalog/catalog.c
src/backend/catalog/dependency.c
src/backend/catalog/genbki.sh
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/namespace.c
src/backend/catalog/pg_aggregate.c
src/backend/catalog/pg_constraint.c
src/backend/catalog/pg_conversion.c
src/backend/catalog/pg_depend.c
src/backend/catalog/pg_largeobject.c
src/backend/catalog/pg_namespace.c
src/backend/catalog/pg_operator.c
src/backend/catalog/pg_proc.c
src/backend/catalog/pg_type.c
src/backend/commands/aggregatecmds.c
src/backend/commands/analyze.c
src/backend/commands/async.c
src/backend/commands/cluster.c
src/backend/commands/comment.c
src/backend/commands/conversioncmds.c
src/backend/commands/copy.c
src/backend/commands/dbcommands.c
src/backend/commands/functioncmds.c
src/backend/commands/indexcmds.c
src/backend/commands/opclasscmds.c
src/backend/commands/operatorcmds.c
src/backend/commands/proclang.c
src/backend/commands/schemacmds.c
src/backend/commands/tablecmds.c
src/backend/commands/tablespace.c
src/backend/commands/trigger.c
src/backend/commands/typecmds.c
src/backend/commands/user.c
src/backend/commands/vacuum.c
src/backend/executor/execUtils.c
src/backend/optimizer/util/plancat.c
src/backend/parser/analyze.c
src/backend/parser/parse_func.c
src/backend/postmaster/pgstat.c
src/backend/rewrite/rewriteDefine.c
src/backend/rewrite/rewriteRemove.c
src/backend/rewrite/rewriteSupport.c
src/backend/storage/large_object/inv_api.c
src/backend/utils/adt/regproc.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/adt/selfuncs.c
src/backend/utils/cache/catcache.c
src/backend/utils/cache/lsyscache.c
src/backend/utils/cache/relcache.c
src/backend/utils/cache/syscache.c
src/backend/utils/cache/typcache.c
src/backend/utils/init/flatfiles.c
src/backend/utils/init/miscinit.c
src/backend/utils/init/postinit.c
src/include/access/genam.h
src/include/access/heapam.h
src/include/catalog/catname.h [deleted file]
src/include/catalog/indexing.h
src/include/utils/catcache.h
src/include/utils/lsyscache.h
src/include/utils/relcache.h
src/pl/plpgsql/src/pl_comp.c

index 75ce4c440d7e95486d1fdb627038e89de51b14b2..f832573000c041006695f49178ff53f829c039b7 100644 (file)
@@ -36,7 +36,6 @@
 #include "funcapi.h"
 #include "access/tupdesc.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_index.h"
 #include "catalog/pg_type.h"
@@ -1538,7 +1537,7 @@ get_pkey_attnames(Oid relid, int16 *numatts)
    *numatts = 0;
 
    /* use relid to get all related indexes */
-   indexRelation = heap_openr(IndexRelationName, AccessShareLock);
+   indexRelation = heap_open(IndexRelationId, AccessShareLock);
    ScanKeyInit(&entry,
                Anum_pg_index_indrelid,
                BTEqualStrategyNumber, F_OIDEQ,
index 35c883642b40d26cf20d906095752a3c6b3f6a23..1c95d64af6130383ad501a07947726176f10acd4 100644 (file)
@@ -18,7 +18,6 @@
 #include 
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
index 855addb48e5677e4cb1b0de2b90f0685925931e7..d595474862ba43a477c0ef65ad0304e194f26ac7 100644 (file)
@@ -19,7 +19,6 @@
 #include "access/relscan.h"
 #include "access/skey.h"
 #include "access/tupdesc.h"
-#include "catalog/catname.h"
 #include "catalog/pg_listener.h"
 #include "commands/async.h"
 #include "fmgr.h"
@@ -75,7 +74,7 @@ active_listeners(text *relname)
    int         ourpid = getpid();
    char        listen_name[NAMEDATALEN];
 
-   lRel = heap_openr(ListenerRelationName, AccessShareLock);
+   lRel = heap_open(ListenerRelationId, AccessShareLock);
    tdesc = RelationGetDescr(lRel);
 
    if (relname && (VARSIZE(relname) > VARHDRSZ))
index 9876f8b695bdb1143e37024dbc19748e4bf8ff5b..605ed629426f4ccda41dbe1e7c76bb8d1b8d47e8 100644 (file)
@@ -8,17 +8,15 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.186 2005/03/28 01:50:32 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.187 2005/04/14 20:03:22 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
  *     relation_open   - open any relation by relation OID
  *     relation_openrv - open any relation specified by a RangeVar
- *     relation_openr  - open a system relation by name
  *     relation_close  - close any relation
  *     heap_open       - open a heap relation by relation OID
  *     heap_openrv     - open a heap relation specified by a RangeVar
- *     heap_openr      - open a system heap relation by name
  *     heap_close      - (now just a macro for relation_close)
  *     heap_beginscan  - begin relation scan
  *     heap_rescan     - restart a relation scan
@@ -502,15 +500,6 @@ relation_openrv(const RangeVar *relation, LOCKMODE lockmode)
 {
    Oid         relOid;
 
-   /*
-    * In bootstrap mode, don't do any namespace processing.
-    */
-   if (IsBootstrapProcessingMode())
-   {
-       Assert(relation->schemaname == NULL);
-       return relation_openr(relation->relname, lockmode);
-   }
-
    /*
     * Check for shared-cache-inval messages before trying to open the
     * relation.  This is needed to cover the case where the name
@@ -533,37 +522,6 @@ relation_openrv(const RangeVar *relation, LOCKMODE lockmode)
    return relation_open(relOid, lockmode);
 }
 
-/* ----------------
- *     relation_openr - open a system relation specified by name.
- *
- *     As above, but the relation is specified by an unqualified name;
- *     it is assumed to live in the system catalog namespace.
- * ----------------
- */
-Relation
-relation_openr(const char *sysRelationName, LOCKMODE lockmode)
-{
-   Relation    r;
-
-   Assert(lockmode >= NoLock && lockmode < MAX_LOCKMODES);
-
-   /*
-    * We assume we should not need to worry about the rel's OID changing,
-    * hence no need for AcceptInvalidationMessages here.
-    */
-
-   /* The relcache does all the real work... */
-   r = RelationSysNameGetRelation(sysRelationName);
-
-   if (!RelationIsValid(r))
-       elog(ERROR, "could not open relation \"%s\"", sysRelationName);
-
-   if (lockmode != NoLock)
-       LockRelation(r, lockmode);
-
-   return r;
-}
-
 /* ----------------
  *     relation_close - close any relation
  *
@@ -657,41 +615,6 @@ heap_openrv(const RangeVar *relation, LOCKMODE lockmode)
    return r;
 }
 
-/* ----------------
- *     heap_openr - open a system heap relation specified by name.
- *
- *     As above, but the relation is specified by an unqualified name;
- *     it is assumed to live in the system catalog namespace.
- * ----------------
- */
-Relation
-heap_openr(const char *sysRelationName, LOCKMODE lockmode)
-{
-   Relation    r;
-
-   r = relation_openr(sysRelationName, lockmode);
-
-   if (r->rd_rel->relkind == RELKIND_INDEX)
-       ereport(ERROR,
-               (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                errmsg("\"%s\" is an index",
-                       RelationGetRelationName(r))));
-   else if (r->rd_rel->relkind == RELKIND_SPECIAL)
-       ereport(ERROR,
-               (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                errmsg("\"%s\" is a special relation",
-                       RelationGetRelationName(r))));
-   else if (r->rd_rel->relkind == RELKIND_COMPOSITE_TYPE)
-       ereport(ERROR,
-               (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                errmsg("\"%s\" is a composite type",
-                       RelationGetRelationName(r))));
-
-   pgstat_initstats(&r->pgstat_info, r);
-
-   return r;
-}
-
 
 /* ----------------
  *     heap_beginscan  - begin relation scan
index 74f5bb7dd6f2eb8a71d37c7f1980906defcff8ee..d2504de21900e53d161d5f8f1952187581e8a500 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/index/genam.c,v 1.46 2005/03/29 00:16:51 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/index/genam.c,v 1.47 2005/04/14 20:03:23 tgl Exp $
  *
  * NOTES
  *   many of the old access method routines have been turned into
@@ -162,7 +162,7 @@ IndexScanEnd(IndexScanDesc scan)
  * systable_beginscan --- set up for heap-or-index scan
  *
  * rel: catalog to scan, already opened and suitably locked
- * indexRelname: name of index to conditionally use
+ * indexId: OID of index to conditionally use
  * indexOK: if false, forces a heap scan (see notes below)
  * snapshot: time qual to use (usually should be SnapshotNow)
  * nkeys, key: scan keys
@@ -179,7 +179,7 @@ IndexScanEnd(IndexScanDesc scan)
  */
 SysScanDesc
 systable_beginscan(Relation heapRelation,
-                  const char *indexRelname,
+                  Oid indexId,
                   bool indexOK,
                   Snapshot snapshot,
                   int nkeys, ScanKey key)
@@ -187,18 +187,10 @@ systable_beginscan(Relation heapRelation,
    SysScanDesc sysscan;
    Relation    irel;
 
-   if (indexOK && !IsIgnoringSystemIndexes())
-   {
-       /* We assume it's a system index, so index_openr is OK */
-       irel = index_openr(indexRelname);
-
-       if (ReindexIsProcessingIndex(RelationGetRelid(irel)))
-       {
-           /* oops, can't use index that's being rebuilt */
-           index_close(irel);
-           irel = NULL;
-       }
-   }
+   if (indexOK &&
+       !IsIgnoringSystemIndexes() &&
+       !ReindexIsProcessingIndex(indexId))
+       irel = index_open(indexId);
    else
        irel = NULL;
 
index f6f4a065cfb03874713c1190a452eb58ea18e1a3..e2f8078b23588262717f6af8e0719d8396052f37 100644 (file)
@@ -8,12 +8,11 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/access/index/indexam.c,v 1.79 2005/03/27 23:52:59 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/access/index/indexam.c,v 1.80 2005/04/14 20:03:23 tgl Exp $
  *
  * INTERFACE ROUTINES
  *     index_open      - open an index relation by relation OID
  *     index_openrv    - open an index relation specified by a RangeVar
- *     index_openr     - open a system index relation by name
  *     index_close     - close an index relation
  *     index_beginscan - start a scan of an index with amgettuple
  *     index_beginscan_multi - start a scan of an index with amgetmulti
@@ -172,31 +171,6 @@ index_openrv(const RangeVar *relation)
    return r;
 }
 
-/* ----------------
- *     index_openr - open a system index relation specified by name.
- *
- *     As above, but the relation is specified by an unqualified name;
- *     it is assumed to live in the system catalog namespace.
- * ----------------
- */
-Relation
-index_openr(const char *sysRelationName)
-{
-   Relation    r;
-
-   r = relation_openr(sysRelationName, NoLock);
-
-   if (r->rd_rel->relkind != RELKIND_INDEX)
-       ereport(ERROR,
-               (errcode(ERRCODE_WRONG_OBJECT_TYPE),
-                errmsg("\"%s\" is not an index",
-                       RelationGetRelationName(r))));
-
-   pgstat_initstats(&r->pgstat_info, r);
-
-   return r;
-}
-
 /* ----------------
  *     index_close - close a index relation
  *
index fcff278ebb56c58e08703822607e28093d6cb9fb..82c29b128b4f22f779d70763df003586c51ea4dc 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.201 2005/03/29 19:44:22 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.202 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "access/heapam.h"
 #include "access/xlog.h"
 #include "bootstrap/bootstrap.h"
-#include "catalog/catname.h"
 #include "catalog/index.h"
 #include "catalog/pg_type.h"
 #include "executor/executor.h"
 #include "libpq/pqsignal.h"
 #include "miscadmin.h"
+#include "nodes/makefuncs.h"
 #include "postmaster/bgwriter.h"
 #include "storage/freespace.h"
 #include "storage/ipc.h"
 #include "utils/ps_status.h"
 #include "utils/relcache.h"
 
+extern int optind;
+extern char *optarg;
+
 
 #define ALLOC(t, c)        ((t *) calloc((unsigned)(c), sizeof(t)))
 
 extern int Int_yyparse(void);
+
 static void usage(void);
 static void bootstrap_signals(void);
 static hashnode *AddStr(char *str, int strlength, int mderef);
@@ -169,17 +173,12 @@ static struct typmap *Ap = NULL;
 static int Warnings = 0;
 static char Blanks[MAXATTR];
 
-static char *relname;          /* current relation name */
-
 Form_pg_attribute attrtypes[MAXATTR];  /* points to attribute info */
 static Datum values[MAXATTR];  /* corresponding attribute values */
 int            numattr;            /* number of attributes for cur. rel */
 
 static MemoryContext nogc = NULL;      /* special no-gc mem context */
 
-extern int optind;
-extern char *optarg;
-
 /*
  * At bootstrap time, we first declare all the indices to be built, and
  * then build them.  The IndexList structure stores enough information
@@ -572,12 +571,12 @@ boot_openrel(char *relname)
    HeapScanDesc scan;
    HeapTuple   tup;
 
-   if (strlen(relname) >= NAMEDATALEN - 1)
+   if (strlen(relname) >= NAMEDATALEN)
        relname[NAMEDATALEN - 1] = '\0';
 
    if (Typ == NULL)
    {
-       rel = heap_openr(TypeRelationName, NoLock);
+       rel = heap_open(TypeRelationId, NoLock);
        scan = heap_beginscan(rel, SnapshotNow, 0, NULL);
        i = 0;
        while ((tup = heap_getnext(scan, ForwardScanDirection)) != NULL)
@@ -605,10 +604,9 @@ boot_openrel(char *relname)
        closerel(NULL);
 
    elog(DEBUG4, "open relation %s, attrsize %d",
-        relname ? relname : "(null)",
-        (int) ATTRIBUTE_TUPLE_SIZE);
+        relname, (int) ATTRIBUTE_TUPLE_SIZE);
 
-   boot_reldesc = heap_openr(relname, NoLock);
+   boot_reldesc = heap_openrv(makeRangeVar(NULL, relname), NoLock);
    numattr = boot_reldesc->rd_rel->relnatts;
    for (i = 0; i < numattr; i++)
    {
@@ -641,7 +639,7 @@ closerel(char *name)
        {
            if (strcmp(RelationGetRelationName(boot_reldesc), name) != 0)
                elog(ERROR, "close of %s when %s was expected",
-                    name, relname ? relname : "(null)");
+                    name, RelationGetRelationName(boot_reldesc));
        }
        else
            elog(ERROR, "close of %s before any relation was opened",
@@ -652,7 +650,8 @@ closerel(char *name)
        elog(ERROR, "no open relation to close");
    else
    {
-       elog(DEBUG4, "close relation %s", relname ? relname : "(null)");
+       elog(DEBUG4, "close relation %s",
+            RelationGetRelationName(boot_reldesc));
        heap_close(boot_reldesc, NoLock);
        boot_reldesc = NULL;
    }
@@ -676,7 +675,7 @@ DefineAttr(char *name, char *type, int attnum)
    if (boot_reldesc != NULL)
    {
        elog(WARNING, "no open relations allowed with CREATE command");
-       closerel(relname);
+       closerel(NULL);
    }
 
    if (attrtypes[attnum] == NULL)
@@ -933,7 +932,7 @@ gettype(char *type)
                return i;
        }
        elog(DEBUG4, "external type: %s", type);
-       rel = heap_openr(TypeRelationName, NoLock);
+       rel = heap_open(TypeRelationId, NoLock);
        scan = heap_beginscan(rel, SnapshotNow, 0, NULL);
        i = 0;
        while ((tup = heap_getnext(scan, ForwardScanDirection)) != NULL)
index d1c33f57ad524b5b2aefb996d35782ded04df7a5..dba7beee2677122ba632091fa6b81f39f946c6d0 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.110 2005/01/27 23:36:06 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.111 2005/04/14 20:03:23 tgl Exp $
  *
  * NOTES
  *   See acl.h.
@@ -19,7 +19,6 @@
 
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_conversion.h"
@@ -270,7 +269,7 @@ ExecuteGrantStmt_Relation(GrantStmt *stmt)
        char        replaces[Natts_pg_class];
 
        /* open pg_class */
-       relation = heap_openr(RelationRelationName, RowExclusiveLock);
+       relation = heap_open(RelationRelationId, RowExclusiveLock);
        relOid = RangeVarGetRelid(relvar, false);
        tuple = SearchSysCache(RELOID,
                               ObjectIdGetDatum(relOid),
@@ -438,7 +437,7 @@ ExecuteGrantStmt_Database(GrantStmt *stmt)
        char        nulls[Natts_pg_database];
        char        replaces[Natts_pg_database];
 
-       relation = heap_openr(DatabaseRelationName, RowExclusiveLock);
+       relation = heap_open(DatabaseRelationId, RowExclusiveLock);
        ScanKeyInit(&entry[0],
                    Anum_pg_database_datname,
                    BTEqualStrategyNumber, F_NAMEEQ,
@@ -597,7 +596,7 @@ ExecuteGrantStmt_Function(GrantStmt *stmt)
 
        oid = LookupFuncNameTypeNames(func->funcname, func->funcargs, false);
 
-       relation = heap_openr(ProcedureRelationName, RowExclusiveLock);
+       relation = heap_open(ProcedureRelationId, RowExclusiveLock);
        tuple = SearchSysCache(PROCOID,
                               ObjectIdGetDatum(oid),
                               0, 0, 0);
@@ -748,7 +747,7 @@ ExecuteGrantStmt_Language(GrantStmt *stmt)
        char        nulls[Natts_pg_language];
        char        replaces[Natts_pg_language];
 
-       relation = heap_openr(LanguageRelationName, RowExclusiveLock);
+       relation = heap_open(LanguageRelationId, RowExclusiveLock);
        tuple = SearchSysCache(LANGNAME,
                               PointerGetDatum(langname),
                               0, 0, 0);
@@ -911,7 +910,7 @@ ExecuteGrantStmt_Namespace(GrantStmt *stmt)
        char        nulls[Natts_pg_namespace];
        char        replaces[Natts_pg_namespace];
 
-       relation = heap_openr(NamespaceRelationName, RowExclusiveLock);
+       relation = heap_open(NamespaceRelationId, RowExclusiveLock);
        tuple = SearchSysCache(NAMESPACENAME,
                               CStringGetDatum(nspname),
                               0, 0, 0);
@@ -1067,7 +1066,7 @@ ExecuteGrantStmt_Tablespace(GrantStmt *stmt)
        char        nulls[Natts_pg_tablespace];
        char        replaces[Natts_pg_tablespace];
 
-       relation = heap_openr(TableSpaceRelationName, RowExclusiveLock);
+       relation = heap_open(TableSpaceRelationId, RowExclusiveLock);
        ScanKeyInit(&entry[0],
                    Anum_pg_tablespace_spcname,
                    BTEqualStrategyNumber, F_NAMEEQ,
@@ -1455,7 +1454,7 @@ pg_database_aclmask(Oid db_oid, AclId userid,
     *
     * There's no syscache for pg_database, so must look the hard way
     */
-   pg_database = heap_openr(DatabaseRelationName, AccessShareLock);
+   pg_database = heap_open(DatabaseRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
@@ -1726,7 +1725,7 @@ pg_tablespace_aclmask(Oid spc_oid, AclId userid,
     *
     * There's no syscache for pg_tablespace, so must look the hard way
     */
-   pg_tablespace = heap_openr(TableSpaceRelationName, AccessShareLock);
+   pg_tablespace = heap_open(TableSpaceRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
@@ -2002,7 +2001,7 @@ pg_tablespace_ownercheck(Oid spc_oid, AclId userid)
        return true;
 
    /* There's no syscache for pg_tablespace, so must look the hard way */
-   pg_tablespace = heap_openr(TableSpaceRelationName, AccessShareLock);
+   pg_tablespace = heap_open(TableSpaceRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
@@ -2070,7 +2069,7 @@ pg_database_ownercheck(Oid db_oid, AclId userid)
        return true;
 
    /* There's no syscache for pg_database, so must look the hard way */
-   pg_database = heap_openr(DatabaseRelationName, AccessShareLock);
+   pg_database = heap_open(DatabaseRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
index d73fa46c27b75ef467e4549fd04300c2dcc214d1..9e08e2120bb41ff47dea08a1d97d7a8ff4ed4f84 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/catalog.c,v 1.58 2005/03/07 04:15:34 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/catalog.c,v 1.59 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -18,7 +18,6 @@
 
 #include "access/transam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_tablespace.h"
 #include "miscadmin.h"
index 4090eb3a911703021a00a8e38b4aa564415ebdd7..febd0b42dcfc0b347252e653860a6112364af25f 100644 (file)
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.43 2005/04/14 01:38:15 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.44 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -28,7 +27,9 @@
 #include "catalog/pg_conversion.h"
 #include "catalog/pg_depend.h"
 #include "catalog/pg_language.h"
+#include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
+#include "catalog/pg_operator.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_rewrite.h"
 #include "catalog/pg_trigger.h"
@@ -65,14 +66,25 @@ typedef struct
    List       *rtables;        /* list of rangetables to resolve Vars */
 } find_expr_references_context;
 
-
 /*
- * Because not all system catalogs have predetermined OIDs, we build a table
- * mapping between ObjectClasses and OIDs. This is done at most once per
- * backend run, to minimize lookup overhead.
+ * This constant table maps ObjectClasses to the corresponding catalog OIDs.
+ * See also getObjectClass().
  */
-static bool object_classes_initialized = false;
-static Oid object_classes[MAX_OCLASS];
+static const Oid object_classes[MAX_OCLASS] = {
+   RelationRelationId,         /* OCLASS_CLASS */
+   ProcedureRelationId,        /* OCLASS_PROC */
+   TypeRelationId,             /* OCLASS_TYPE */
+   CastRelationId,             /* OCLASS_CAST */
+   ConstraintRelationId,       /* OCLASS_CONSTRAINT */
+   ConversionRelationId,       /* OCLASS_CONVERSION */
+   AttrDefaultRelationId,      /* OCLASS_DEFAULT */
+   LanguageRelationId,         /* OCLASS_LANGUAGE */
+   OperatorRelationId,         /* OCLASS_OPERATOR */
+   OperatorClassRelationId,    /* OCLASS_OPCLASS */
+   RewriteRelationId,          /* OCLASS_REWRITE */
+   TriggerRelationId,          /* OCLASS_TRIGGER */
+   NamespaceRelationId         /* OCLASS_SCHEMA */
+};
 
 
 static void findAutoDeletableObjects(const ObjectAddress *object,
@@ -103,7 +115,6 @@ static void add_exact_object_address(const ObjectAddress *object,
 static bool object_address_present(const ObjectAddress *object,
                       ObjectAddresses *addrs);
 static void term_object_addresses(ObjectAddresses *addrs);
-static void init_object_classes(void);
 static void getRelationDescription(StringInfo buffer, Oid relid);
 
 
@@ -135,7 +146,7 @@ performDeletion(const ObjectAddress *object,
     * We save some cycles by opening pg_depend just once and passing the
     * Relation pointer down to all the recursive deletion steps.
     */
-   depRel = heap_openr(DependRelationName, RowExclusiveLock);
+   depRel = heap_open(DependRelationId, RowExclusiveLock);
 
    /*
     * Construct a list of objects that are reachable by AUTO or INTERNAL
@@ -189,7 +200,7 @@ deleteWhatDependsOn(const ObjectAddress *object,
     * We save some cycles by opening pg_depend just once and passing the
     * Relation pointer down to all the recursive deletion steps.
     */
-   depRel = heap_openr(DependRelationName, RowExclusiveLock);
+   depRel = heap_open(DependRelationId, RowExclusiveLock);
 
    /*
     * Construct a list of objects that are reachable by AUTO or INTERNAL
@@ -282,7 +293,7 @@ findAutoDeletableObjects(const ObjectAddress *object,
    else
        nkeys = 2;
 
-   scan = systable_beginscan(depRel, DependReferenceIndex, true,
+   scan = systable_beginscan(depRel, DependReferenceIndexId, true,
                              SnapshotNow, nkeys, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -417,7 +428,7 @@ recursiveDeletion(const ObjectAddress *object,
    else
        nkeys = 2;
 
-   scan = systable_beginscan(depRel, DependDependerIndex, true,
+   scan = systable_beginscan(depRel, DependDependerIndexId, true,
                              SnapshotNow, nkeys, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -650,7 +661,7 @@ deleteDependentObjects(const ObjectAddress *object,
    else
        nkeys = 2;
 
-   scan = systable_beginscan(depRel, DependReferenceIndex, true,
+   scan = systable_beginscan(depRel, DependReferenceIndexId, true,
                              SnapshotNow, nkeys, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -1203,11 +1214,6 @@ init_object_addresses(ObjectAddresses *addrs)
    addrs->maxrefs = 32;        /* arbitrary initial array size */
    addrs->refs = (ObjectAddress *)
        palloc(addrs->maxrefs * sizeof(ObjectAddress));
-
-   /* Initialize object_classes[] if not done yet */
-   /* This will be needed by add_object_address() */
-   if (!object_classes_initialized)
-       init_object_classes();
 }
 
 /*
@@ -1297,42 +1303,15 @@ term_object_addresses(ObjectAddresses *addrs)
    pfree(addrs->refs);
 }
 
-/*
- * Initialize the object_classes[] table.
- *
- * Although some of these OIDs aren't compile-time constants, they surely
- * shouldn't change during a backend's run.  So, we look them up the
- * first time through and then cache them.
- */
-static void
-init_object_classes(void)
-{
-   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);
-   object_classes[OCLASS_DEFAULT] = get_system_catalog_relid(AttrDefaultRelationName);
-   object_classes[OCLASS_LANGUAGE] = get_system_catalog_relid(LanguageRelationName);
-   object_classes[OCLASS_OPERATOR] = get_system_catalog_relid(OperatorRelationName);
-   object_classes[OCLASS_OPCLASS] = get_system_catalog_relid(OperatorClassRelationName);
-   object_classes[OCLASS_REWRITE] = get_system_catalog_relid(RewriteRelationName);
-   object_classes[OCLASS_TRIGGER] = get_system_catalog_relid(TriggerRelationName);
-   object_classes[OCLASS_SCHEMA] = get_system_catalog_relid(NamespaceRelationName);
-   object_classes_initialized = true;
-}
-
 /*
  * Determine the class of a given object identified by objectAddress.
  *
- * This function is needed just because some of the system catalogs do
- * not have hardwired-at-compile-time OIDs.
+ * This function is essentially the reverse mapping for the object_classes[]
+ * table.  We implement it as a function because the OIDs aren't consecutive.
  */
 ObjectClass
 getObjectClass(const ObjectAddress *object)
 {
-   /* Easy for the bootstrapped catalogs... */
    switch (object->classId)
    {
        case RelationRelationId:
@@ -1346,65 +1325,49 @@ getObjectClass(const ObjectAddress *object)
        case TypeRelationId:
            Assert(object->objectSubId == 0);
            return OCLASS_TYPE;
-   }
 
-   /*
-    * Handle cases where catalog's OID is not hardwired.
-    */
-   if (!object_classes_initialized)
-       init_object_classes();
+       case CastRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_CAST;
 
-   if (object->classId == object_classes[OCLASS_CAST])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_CAST;
-   }
-   if (object->classId == object_classes[OCLASS_CONSTRAINT])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_CONSTRAINT;
-   }
-   if (object->classId == object_classes[OCLASS_CONVERSION])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_CONVERSION;
-   }
-   if (object->classId == object_classes[OCLASS_DEFAULT])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_DEFAULT;
-   }
-   if (object->classId == object_classes[OCLASS_LANGUAGE])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_LANGUAGE;
-   }
-   if (object->classId == object_classes[OCLASS_OPERATOR])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_OPERATOR;
-   }
-   if (object->classId == object_classes[OCLASS_OPCLASS])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_OPCLASS;
-   }
-   if (object->classId == object_classes[OCLASS_REWRITE])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_REWRITE;
-   }
-   if (object->classId == object_classes[OCLASS_TRIGGER])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_TRIGGER;
-   }
-   if (object->classId == object_classes[OCLASS_SCHEMA])
-   {
-       Assert(object->objectSubId == 0);
-       return OCLASS_SCHEMA;
+       case ConstraintRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_CONSTRAINT;
+
+       case ConversionRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_CONVERSION;
+
+       case AttrDefaultRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_DEFAULT;
+
+       case LanguageRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_LANGUAGE;
+
+       case OperatorRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_OPERATOR;
+
+       case OperatorClassRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_OPCLASS;
+
+       case RewriteRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_REWRITE;
+
+       case TriggerRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_TRIGGER;
+
+       case NamespaceRelationId:
+           Assert(object->objectSubId == 0);
+           return OCLASS_SCHEMA;
    }
 
+   /* shouldn't get here */
    elog(ERROR, "unrecognized object class: %u", object->classId);
    return OCLASS_CLASS;        /* keep compiler quiet */
 }
@@ -1449,14 +1412,14 @@ getObjectDescription(const ObjectAddress *object)
                HeapTuple   tup;
                Form_pg_cast castForm;
 
-               castDesc = heap_openr(CastRelationName, AccessShareLock);
+               castDesc = heap_open(CastRelationId, AccessShareLock);
 
                ScanKeyInit(&skey[0],
                            ObjectIdAttributeNumber,
                            BTEqualStrategyNumber, F_OIDEQ,
                            ObjectIdGetDatum(object->objectId));
 
-               rcscan = systable_beginscan(castDesc, CastOidIndex, true,
+               rcscan = systable_beginscan(castDesc, CastOidIndexId, true,
                                            SnapshotNow, 1, skey);
 
                tup = systable_getnext(rcscan);
@@ -1484,14 +1447,14 @@ getObjectDescription(const ObjectAddress *object)
                HeapTuple   tup;
                Form_pg_constraint con;
 
-               conDesc = heap_openr(ConstraintRelationName, AccessShareLock);
+               conDesc = heap_open(ConstraintRelationId, AccessShareLock);
 
                ScanKeyInit(&skey[0],
                            ObjectIdAttributeNumber,
                            BTEqualStrategyNumber, F_OIDEQ,
                            ObjectIdGetDatum(object->objectId));
 
-               rcscan = systable_beginscan(conDesc, ConstraintOidIndex, true,
+               rcscan = systable_beginscan(conDesc, ConstraintOidIndexId, true,
                                            SnapshotNow, 1, skey);
 
                tup = systable_getnext(rcscan);
@@ -1544,14 +1507,14 @@ getObjectDescription(const ObjectAddress *object)
                Form_pg_attrdef attrdef;
                ObjectAddress colobject;
 
-               attrdefDesc = heap_openr(AttrDefaultRelationName, AccessShareLock);
+               attrdefDesc = heap_open(AttrDefaultRelationId, AccessShareLock);
 
                ScanKeyInit(&skey[0],
                            ObjectIdAttributeNumber,
                            BTEqualStrategyNumber, F_OIDEQ,
                            ObjectIdGetDatum(object->objectId));
 
-               adscan = systable_beginscan(attrdefDesc, AttrDefaultOidIndex,
+               adscan = systable_beginscan(attrdefDesc, AttrDefaultOidIndexId,
                                            true, SnapshotNow, 1, skey);
 
                tup = systable_getnext(adscan);
@@ -1643,14 +1606,14 @@ getObjectDescription(const ObjectAddress *object)
                HeapTuple   tup;
                Form_pg_rewrite rule;
 
-               ruleDesc = heap_openr(RewriteRelationName, AccessShareLock);
+               ruleDesc = heap_open(RewriteRelationId, AccessShareLock);
 
                ScanKeyInit(&skey[0],
                            ObjectIdAttributeNumber,
                            BTEqualStrategyNumber, F_OIDEQ,
                            ObjectIdGetDatum(object->objectId));
 
-               rcscan = systable_beginscan(ruleDesc, RewriteOidIndex, true,
+               rcscan = systable_beginscan(ruleDesc, RewriteOidIndexId, true,
                                            SnapshotNow, 1, skey);
 
                tup = systable_getnext(rcscan);
@@ -1678,14 +1641,14 @@ getObjectDescription(const ObjectAddress *object)
                HeapTuple   tup;
                Form_pg_trigger trig;
 
-               trigDesc = heap_openr(TriggerRelationName, AccessShareLock);
+               trigDesc = heap_open(TriggerRelationId, AccessShareLock);
 
                ScanKeyInit(&skey[0],
                            ObjectIdAttributeNumber,
                            BTEqualStrategyNumber, F_OIDEQ,
                            ObjectIdGetDatum(object->objectId));
 
-               tgscan = systable_beginscan(trigDesc, TriggerOidIndex, true,
+               tgscan = systable_beginscan(trigDesc, TriggerOidIndexId, true,
                                            SnapshotNow, 1, skey);
 
                tup = systable_getnext(tgscan);
index d53970fd7a27e7ddfe2d30cf6b7d9be0294588f1..92a3ac5eeccca31c364c33a88ce7c22ae0ad3afa 100644 (file)
@@ -6,11 +6,12 @@
 #    files.  These .bki files are used to initialize the postgres template
 #    database.
 #
-# Copyright (c) 1994, Regents of the University of California
+# Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+# Portions Copyright (c) 1994, Regents of the University of California
 #
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.35 2005/04/14 01:38:16 tgl Exp $
+#    $PostgreSQL: pgsql/src/backend/catalog/genbki.sh,v 1.36 2005/04/14 20:03:23 tgl Exp $
 #
 # NOTES
 #    non-essential whitespace is removed from the generated file.
@@ -230,10 +231,10 @@ comment_level > 0 { next; }
    iname = substr(data, 1, pos-1);
    data = substr(data, pos+1, length(data)-pos);
    pos = index(data, ",");
-   ioid = substr(data, 1, pos-1);
+   oid = substr(data, 1, pos-1);
    data = substr(data, pos+1, length(data)-pos);
 
-   print "declare index " iname " " ioid " " data
+   print "declare index " iname " " oid " " data
 }
 
 /^DECLARE_UNIQUE_INDEX\(/ {
@@ -250,10 +251,10 @@ comment_level > 0 { next; }
    iname = substr(data, 1, pos-1);
    data = substr(data, pos+1, length(data)-pos);
    pos = index(data, ",");
-   ioid = substr(data, 1, pos-1);
+   oid = substr(data, 1, pos-1);
    data = substr(data, pos+1, length(data)-pos);
 
-   print "declare unique index " iname " " ioid " " data
+   print "declare unique index " iname " " oid " " data
 }
 
 /^BUILD_INDICES/   { print "build indices"; }
@@ -277,7 +278,7 @@ comment_level > 0 { next; }
    catalogandoid = substr($1,9,pos-9);
    pos = index(catalogandoid, ",");
    catalog = substr(catalogandoid, 1, pos-1);
-   catalogoid = substr(catalogandoid, pos+1, length(catalogandoid)-pos);
+   oid = substr(catalogandoid, pos+1, length(catalogandoid)-pos);
 
    if ($0 ~ /BKI_BOOTSTRAP/) {
        bootstrap = "bootstrap ";
@@ -296,7 +297,7 @@ comment_level > 0 { next; }
 }
 
 # ----------------
-#  process the contents of the catalog definition
+#  process the columns of the catalog definition
 #
 #  attname[ x ] contains the attribute name for attribute x
 #  atttype[ x ] contains the attribute type fot attribute x
@@ -312,7 +313,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 " " catalogoid;
+       print "create " bootstrap shared_relation without_oids catalog " " oid;
        print "\t(";
 
        for (j=1; j
@@ -335,7 +336,7 @@ inside == 1 {
    }
 
 # ----
-#  if we are inside the catalog definition, then keep sucking up
+#  we are inside the catalog definition, so keep sucking up
 #  attribute names and types
 # ----
    if ($2 ~ /\[.*\]/) {            # array attribute
index 578a4121dbdd9bb0e3a7fa05c88fd7470299e723..530cca8be86a20bd3d68a3047331529f3c0b35ed 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.283 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/heap.c,v 1.284 2005/04/14 20:03:23 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -32,7 +32,6 @@
 #include "access/heapam.h"
 #include "access/genam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -40,6 +39,7 @@
 #include "catalog/pg_attrdef.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_inherits.h"
+#include "catalog/pg_namespace.h"
 #include "catalog/pg_statistic.h"
 #include "catalog/pg_type.h"
 #include "commands/tablecmds.h"
@@ -452,7 +452,7 @@ AddNewAttributeTuples(Oid new_rel_oid,
    /*
     * open pg_attribute and its indexes.
     */
-   rel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   rel = heap_open(AttributeRelationId, RowExclusiveLock);
 
    indstate = CatalogOpenIndexes(rel);
 
@@ -723,7 +723,7 @@ heap_create_with_catalog(const char *relname,
     * is creating the same relation name in parallel but hadn't committed
     * yet when we checked for a duplicate name above.
     */
-   pg_class_desc = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class_desc = heap_open(RelationRelationId, RowExclusiveLock);
 
    AddNewRelationTuple(pg_class_desc,
                        new_rel_desc,
@@ -764,7 +764,7 @@ heap_create_with_catalog(const char *relname,
        myself.classId = RelationRelationId;
        myself.objectId = new_rel_oid;
        myself.objectSubId = 0;
-       referenced.classId = get_system_catalog_relid(NamespaceRelationName);
+       referenced.classId = NamespaceRelationId;
        referenced.objectId = relnamespace;
        referenced.objectSubId = 0;
        recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -814,14 +814,14 @@ RelationRemoveInheritance(Oid relid)
    ScanKeyData key;
    HeapTuple   tuple;
 
-   catalogRelation = heap_openr(InheritsRelationName, RowExclusiveLock);
+   catalogRelation = heap_open(InheritsRelationId, RowExclusiveLock);
 
    ScanKeyInit(&key,
                Anum_pg_inherits_inhrelid,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(relid));
 
-   scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndex, true,
+   scan = systable_beginscan(catalogRelation, InheritsRelidSeqnoIndexId, true,
                              SnapshotNow, 1, &key);
 
    while (HeapTupleIsValid(tuple = systable_getnext(scan)))
@@ -846,7 +846,7 @@ DeleteRelationTuple(Oid relid)
    HeapTuple   tup;
 
    /* Grab an appropriate lock on the pg_class relation */
-   pg_class_desc = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class_desc = heap_open(RelationRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(RELOID,
                         ObjectIdGetDatum(relid),
@@ -879,7 +879,7 @@ DeleteAttributeTuples(Oid relid)
    HeapTuple   atttup;
 
    /* Grab an appropriate lock on the pg_attribute relation */
-   attrel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrel = heap_open(AttributeRelationId, RowExclusiveLock);
 
    /* Use the index to scan only attributes of the target relation */
    ScanKeyInit(&key[0],
@@ -887,7 +887,7 @@ DeleteAttributeTuples(Oid relid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(relid));
 
-   scan = systable_beginscan(attrel, AttributeRelidNumIndex, true,
+   scan = systable_beginscan(attrel, AttributeRelidNumIndexId, true,
                              SnapshotNow, 1, key);
 
    /* Delete all the matching tuples */
@@ -925,7 +925,7 @@ RemoveAttributeById(Oid relid, AttrNumber attnum)
     */
    rel = relation_open(relid, AccessExclusiveLock);
 
-   attr_rel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attr_rel = heap_open(AttributeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopy(ATTNUM,
                               ObjectIdGetDatum(relid),
@@ -1010,7 +1010,7 @@ RemoveAttrDefault(Oid relid, AttrNumber attnum,
    HeapTuple   tuple;
    bool        found = false;
 
-   attrdef_rel = heap_openr(AttrDefaultRelationName, RowExclusiveLock);
+   attrdef_rel = heap_open(AttrDefaultRelationId, RowExclusiveLock);
 
    ScanKeyInit(&scankeys[0],
                Anum_pg_attrdef_adrelid,
@@ -1021,7 +1021,7 @@ RemoveAttrDefault(Oid relid, AttrNumber attnum,
                BTEqualStrategyNumber, F_INT2EQ,
                Int16GetDatum(attnum));
 
-   scan = systable_beginscan(attrdef_rel, AttrDefaultIndex, true,
+   scan = systable_beginscan(attrdef_rel, AttrDefaultIndexId, true,
                              SnapshotNow, 2, scankeys);
 
    /* There should be at most one matching tuple, but we loop anyway */
@@ -1029,7 +1029,7 @@ RemoveAttrDefault(Oid relid, AttrNumber attnum,
    {
        ObjectAddress object;
 
-       object.classId = RelationGetRelid(attrdef_rel);
+       object.classId = AttrDefaultRelationId;
        object.objectId = HeapTupleGetOid(tuple);
        object.objectSubId = 0;
 
@@ -1066,7 +1066,7 @@ RemoveAttrDefaultById(Oid attrdefId)
    AttrNumber  myattnum;
 
    /* Grab an appropriate lock on the pg_attrdef relation */
-   attrdef_rel = heap_openr(AttrDefaultRelationName, RowExclusiveLock);
+   attrdef_rel = heap_open(AttrDefaultRelationId, RowExclusiveLock);
 
    /* Find the pg_attrdef tuple */
    ScanKeyInit(&scankeys[0],
@@ -1074,7 +1074,7 @@ RemoveAttrDefaultById(Oid attrdefId)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(attrdefId));
 
-   scan = systable_beginscan(attrdef_rel, AttrDefaultOidIndex, true,
+   scan = systable_beginscan(attrdef_rel, AttrDefaultOidIndexId, true,
                              SnapshotNow, 1, scankeys);
 
    tuple = systable_getnext(scan);
@@ -1094,7 +1094,7 @@ RemoveAttrDefaultById(Oid attrdefId)
    heap_close(attrdef_rel, RowExclusiveLock);
 
    /* Fix the pg_attribute row */
-   attr_rel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attr_rel = heap_open(AttributeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopy(ATTNUM,
                               ObjectIdGetDatum(myrelid),
@@ -1236,14 +1236,14 @@ StoreAttrDefault(Relation rel, AttrNumber attnum, char *adbin)
    values[Anum_pg_attrdef_adsrc - 1] = DirectFunctionCall1(textin,
                                                 CStringGetDatum(adsrc));
 
-   adrel = heap_openr(AttrDefaultRelationName, RowExclusiveLock);
+   adrel = heap_open(AttrDefaultRelationId, RowExclusiveLock);
 
    tuple = heap_formtuple(adrel->rd_att, values, nulls);
    attrdefOid = simple_heap_insert(adrel, tuple);
 
    CatalogUpdateIndexes(adrel, tuple);
 
-   defobject.classId = RelationGetRelid(adrel);
+   defobject.classId = AttrDefaultRelationId;
    defobject.objectId = attrdefOid;
    defobject.objectSubId = 0;
 
@@ -1259,7 +1259,7 @@ StoreAttrDefault(Relation rel, AttrNumber attnum, char *adbin)
     * Update the pg_attribute entry for the column to show that a default
     * exists.
     */
-   attrrel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrrel = heap_open(AttributeRelationId, RowExclusiveLock);
    atttup = SearchSysCacheCopy(ATTNUM,
                                ObjectIdGetDatum(RelationGetRelid(rel)),
                                Int16GetDatum(attnum),
@@ -1666,7 +1666,7 @@ SetRelationNumChecks(Relation rel, int numchecks)
    HeapTuple   reltup;
    Form_pg_class relStruct;
 
-   relrel = heap_openr(RelationRelationName, RowExclusiveLock);
+   relrel = heap_open(RelationRelationId, RowExclusiveLock);
    reltup = SearchSysCacheCopy(RELOID,
                                ObjectIdGetDatum(RelationGetRelid(rel)),
                                0, 0, 0);
@@ -1797,7 +1797,7 @@ RemoveRelConstraints(Relation rel, const char *constrName,
    HeapTuple   contup;
 
    /* Grab an appropriate lock on the pg_constraint relation */
-   conrel = heap_openr(ConstraintRelationName, RowExclusiveLock);
+   conrel = heap_open(ConstraintRelationId, RowExclusiveLock);
 
    /* Use the index to scan only constraints of the target relation */
    ScanKeyInit(&key[0],
@@ -1805,7 +1805,7 @@ RemoveRelConstraints(Relation rel, const char *constrName,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(rel)));
 
-   conscan = systable_beginscan(conrel, ConstraintRelidIndex, true,
+   conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true,
                                 SnapshotNow, 1, key);
 
    /*
@@ -1819,7 +1819,7 @@ RemoveRelConstraints(Relation rel, const char *constrName,
        {
            ObjectAddress conobj;
 
-           conobj.classId = RelationGetRelid(conrel);
+           conobj.classId = ConstraintRelationId;
            conobj.objectId = HeapTupleGetOid(contup);
            conobj.objectSubId = 0;
 
@@ -1852,7 +1852,7 @@ RemoveStatistics(Oid relid, AttrNumber attnum)
    int         nkeys;
    HeapTuple   tuple;
 
-   pgstatistic = heap_openr(StatisticRelationName, RowExclusiveLock);
+   pgstatistic = heap_open(StatisticRelationId, RowExclusiveLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_statistic_starelid,
@@ -1870,7 +1870,7 @@ RemoveStatistics(Oid relid, AttrNumber attnum)
        nkeys = 2;
    }
 
-   scan = systable_beginscan(pgstatistic, StatisticRelidAttnumIndex, true,
+   scan = systable_beginscan(pgstatistic, StatisticRelidAttnumIndexId, true,
                              SnapshotNow, nkeys, key);
 
    while (HeapTupleIsValid(tuple = systable_getnext(scan)))
@@ -2036,9 +2036,9 @@ heap_truncate_check_FKs(List *relations, bool tempTables)
     * Otherwise, must scan pg_constraint.  Right now, it is a seqscan
     * because there is no available index on confrelid.
     */
-   fkeyRel = heap_openr(ConstraintRelationName, AccessShareLock);
+   fkeyRel = heap_open(ConstraintRelationId, AccessShareLock);
 
-   fkeyScan = systable_beginscan(fkeyRel, NULL, false,
+   fkeyScan = systable_beginscan(fkeyRel, InvalidOid, false,
                                  SnapshotNow, 0, NULL);
 
    while (HeapTupleIsValid(tuple = systable_getnext(fkeyScan)))
index 28562661bdfba3294a2681d49dcab9986c89bbe9..e3f3ab67045752af8c1abcccd7fbd051c9931f60 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.251 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.252 2005/04/14 20:03:23 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -27,7 +27,6 @@
 #include "access/heapam.h"
 #include "bootstrap/bootstrap.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -245,7 +244,7 @@ UpdateRelationRelation(Relation indexRelation)
    Relation    pg_class;
    HeapTuple   tuple;
 
-   pg_class = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class = heap_open(RelationRelationId, RowExclusiveLock);
 
    /* XXX Natts_pg_class_fixed is a hack - see pg_class.h */
    tuple = heap_addheader(Natts_pg_class_fixed,
@@ -301,7 +300,7 @@ AppendAttributeTuples(Relation indexRelation, int numatts)
    /*
     * open the attribute relation and its indexes
     */
-   pg_attribute = heap_openr(AttributeRelationName, RowExclusiveLock);
+   pg_attribute = heap_open(AttributeRelationId, RowExclusiveLock);
 
    indstate = CatalogOpenIndexes(pg_attribute);
 
@@ -400,7 +399,7 @@ UpdateIndexRelation(Oid indexoid,
    /*
     * open the system catalog index relation
     */
-   pg_index = heap_openr(IndexRelationName, RowExclusiveLock);
+   pg_index = heap_open(IndexRelationId, RowExclusiveLock);
 
    /*
     * Build a pg_index tuple
@@ -649,7 +648,7 @@ index_create(Oid heapRelationId,
                                           NULL,
                                           NULL);
 
-           referenced.classId = get_system_catalog_relid(ConstraintRelationName);
+           referenced.classId = ConstraintRelationId;
            referenced.objectId = conOid;
            referenced.objectSubId = 0;
 
@@ -672,9 +671,9 @@ index_create(Oid heapRelationId,
        }
 
        /* Store dependency on operator classes */
-       referenced.classId = get_system_catalog_relid(OperatorClassRelationName);
        for (i = 0; i < indexInfo->ii_NumIndexAttrs; i++)
        {
+           referenced.classId = OperatorClassRelationId;
            referenced.objectId = classObjectId[i];
            referenced.objectSubId = 0;
 
@@ -797,7 +796,7 @@ index_drop(Oid indexId)
    /*
     * fix INDEX relation, and check for expressional index
     */
-   indexRelation = heap_openr(IndexRelationName, RowExclusiveLock);
+   indexRelation = heap_open(IndexRelationId, RowExclusiveLock);
 
    tuple = SearchSysCache(INDEXRELID,
                           ObjectIdGetDatum(indexId),
@@ -997,7 +996,7 @@ setRelhasindex(Oid relid, bool hasindex, bool isprimary, Oid reltoastidxid)
     * use heap_update, so cheat and overwrite the tuple in-place.  In
     * normal processing, make a copy to scribble on.
     */
-   pg_class = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class = heap_open(RelationRelationId, RowExclusiveLock);
 
    if (!IsBootstrapProcessingMode())
    {
@@ -1110,7 +1109,7 @@ setNewRelfilenode(Relation relation)
     * Find the pg_class tuple for the given relation.  This is not used
     * during bootstrap, so okay to use heap_update always.
     */
-   pg_class = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class = heap_open(RelationRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopy(RELOID,
                            ObjectIdGetDatum(RelationGetRelid(relation)),
@@ -1202,10 +1201,10 @@ UpdateStats(Oid relid, double reltuples)
     * case the stats updates will not be WAL-logged and so could be lost
     * in a crash.  This seems OK considering VACUUM does the same thing.
     */
-   pg_class = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class = heap_open(RelationRelationId, RowExclusiveLock);
 
    in_place_upd = IsBootstrapProcessingMode() ||
-       ReindexIsProcessingHeap(RelationGetRelid(pg_class));
+       ReindexIsProcessingHeap(RelationRelationId);
 
    if (!in_place_upd)
    {
index ac47d23bf12cc43ab7ab4932c02d03b45b0a96c9..3cfcc6f9b46b97f2e8d5b7aeb5e49b0a52d5d925 100644 (file)
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.74 2005/03/29 00:16:56 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/namespace.c,v 1.75 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/xact.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_conversion.h"
@@ -1783,7 +1782,7 @@ RemoveTempRelations(Oid tempNamespaceId)
     * be a waste of cycles).  We do this by finding everything that has a
     * dependency on the namespace.
     */
-   object.classId = get_system_catalog_relid(NamespaceRelationName);
+   object.classId = NamespaceRelationId;
    object.objectId = tempNamespaceId;
    object.objectSubId = 0;
 
index 8a08f69cbf73e271b01d4d5fd19a149e5bb642d4..26491e22a15391772a7bf77038abdfea75be643b 100644 (file)
@@ -8,19 +8,19 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.74 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_aggregate.c,v 1.75 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_aggregate.h"
 #include "catalog/pg_language.h"
+#include "catalog/pg_operator.h"
 #include "catalog/pg_proc.h"
 #include "miscadmin.h"
 #include "optimizer/cost.h"
@@ -224,7 +224,7 @@ AggregateCreate(const char *aggName,
    else
        nulls[Anum_pg_aggregate_agginitval - 1] = 'n';
 
-   aggdesc = heap_openr(AggregateRelationName, RowExclusiveLock);
+   aggdesc = heap_open(AggregateRelationId, RowExclusiveLock);
    tupDesc = aggdesc->rd_att;
 
    tup = heap_formtuple(tupDesc, values, nulls);
@@ -262,7 +262,7 @@ AggregateCreate(const char *aggName,
    /* Depends on sort operator, if any */
    if (OidIsValid(sortop))
    {
-       referenced.classId = get_system_catalog_relid(OperatorRelationName);
+       referenced.classId = OperatorRelationId;
        referenced.objectId = sortop;
        referenced.objectSubId = 0;
        recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
index 5c53bfb5e85bfe28dd70fab37a7e75ab5e7bb906..a383647a9380302a0f9b8292d7dfa2f84b3fbbf7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.24 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_constraint.c,v 1.25 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "access/heapam.h"
 #include "access/genam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_constraint.h"
 #include "catalog/pg_depend.h"
+#include "catalog/pg_trigger.h"
 #include "catalog/pg_type.h"
 #include "commands/defrem.h"
 #include "miscadmin.h"
@@ -72,7 +72,7 @@ CreateConstraintEntry(const char *constraintName,
    int         i;
    ObjectAddress conobject;
 
-   conDesc = heap_openr(ConstraintRelationName, RowExclusiveLock);
+   conDesc = heap_open(ConstraintRelationId, RowExclusiveLock);
 
    Assert(constraintName);
    namestrcpy(&cname, constraintName);
@@ -160,7 +160,7 @@ CreateConstraintEntry(const char *constraintName,
    /* update catalog indexes */
    CatalogUpdateIndexes(conDesc, tup);
 
-   conobject.classId = RelationGetRelid(conDesc);
+   conobject.classId = ConstraintRelationId;
    conobject.objectId = conOid;
    conobject.objectSubId = 0;
 
@@ -286,7 +286,7 @@ ConstraintNameIsUsed(ConstraintCategory conCat, Oid objId,
    ScanKeyData skey[2];
    HeapTuple   tup;
 
-   conDesc = heap_openr(ConstraintRelationName, AccessShareLock);
+   conDesc = heap_open(ConstraintRelationId, AccessShareLock);
 
    found = false;
 
@@ -300,7 +300,7 @@ ConstraintNameIsUsed(ConstraintCategory conCat, Oid objId,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(objNamespace));
 
-   conscan = systable_beginscan(conDesc, ConstraintNameNspIndex, true,
+   conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true,
                                 SnapshotNow, 2, skey);
 
    while (HeapTupleIsValid(tup = systable_getnext(conscan)))
@@ -362,7 +362,7 @@ ChooseConstraintName(const char *name1, const char *name2,
    bool        found;
    ListCell   *l;
 
-   conDesc = heap_openr(ConstraintRelationName, AccessShareLock);
+   conDesc = heap_open(ConstraintRelationId, AccessShareLock);
 
    /* try the unmodified label first */
    StrNCpy(modlabel, label, sizeof(modlabel));
@@ -394,7 +394,7 @@ ChooseConstraintName(const char *name1, const char *name2,
                        BTEqualStrategyNumber, F_OIDEQ,
                        ObjectIdGetDatum(namespace));
 
-           conscan = systable_beginscan(conDesc, ConstraintNameNspIndex, true,
+           conscan = systable_beginscan(conDesc, ConstraintNameNspIndexId, true,
                                         SnapshotNow, 2, skey);
 
            found = (HeapTupleIsValid(systable_getnext(conscan)));
@@ -427,14 +427,14 @@ RemoveConstraintById(Oid conId)
    HeapTuple   tup;
    Form_pg_constraint con;
 
-   conDesc = heap_openr(ConstraintRelationName, RowExclusiveLock);
+   conDesc = heap_open(ConstraintRelationId, RowExclusiveLock);
 
    ScanKeyInit(&skey[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(conId));
 
-   conscan = systable_beginscan(conDesc, ConstraintOidIndex, true,
+   conscan = systable_beginscan(conDesc, ConstraintOidIndexId, true,
                                 SnapshotNow, 1, skey);
 
    tup = systable_getnext(conscan);
@@ -466,7 +466,7 @@ RemoveConstraintById(Oid conId)
            HeapTuple   relTup;
            Form_pg_class classForm;
 
-           pgrel = heap_openr(RelationRelationName, RowExclusiveLock);
+           pgrel = heap_open(RelationRelationId, RowExclusiveLock);
            relTup = SearchSysCacheCopy(RELOID,
                                        ObjectIdGetDatum(con->conrelid),
                                        0, 0, 0);
@@ -524,42 +524,37 @@ GetConstraintNameForTrigger(Oid triggerId)
 {
    char       *result;
    Oid         constraintId = InvalidOid;
-   Oid         pg_trigger_id;
-   Oid         pg_constraint_id;
    Relation    depRel;
    Relation    conRel;
    ScanKeyData key[2];
    SysScanDesc scan;
    HeapTuple   tup;
 
-   pg_trigger_id = get_system_catalog_relid(TriggerRelationName);
-   pg_constraint_id = get_system_catalog_relid(ConstraintRelationName);
-
    /*
     * We must grovel through pg_depend to find the owning constraint.
     * Perhaps pg_trigger should have a column for the owning constraint ...
     * but right now this is not performance-critical code.
     */
-   depRel = heap_openr(DependRelationName, AccessShareLock);
+   depRel = heap_open(DependRelationId, AccessShareLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_depend_classid,
                BTEqualStrategyNumber, F_OIDEQ,
-               ObjectIdGetDatum(pg_trigger_id));
+               ObjectIdGetDatum(TriggerRelationId));
    ScanKeyInit(&key[1],
                Anum_pg_depend_objid,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(triggerId));
    /* assume we can ignore objsubid for a trigger */
 
-   scan = systable_beginscan(depRel, DependDependerIndex, true,
+   scan = systable_beginscan(depRel, DependDependerIndexId, true,
                              SnapshotNow, 2, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
    {
        Form_pg_depend foundDep = (Form_pg_depend) GETSTRUCT(tup);
 
-       if (foundDep->refclassid == pg_constraint_id &&
+       if (foundDep->refclassid == ConstraintRelationId &&
            foundDep->deptype == DEPENDENCY_INTERNAL)
        {
            constraintId = foundDep->refobjid;
@@ -574,14 +569,14 @@ GetConstraintNameForTrigger(Oid triggerId)
    if (!OidIsValid(constraintId))
        return NULL;                /* no owning constraint found */
 
-   conRel = heap_openr(ConstraintRelationName, AccessShareLock);
+   conRel = heap_open(ConstraintRelationId, AccessShareLock);
 
    ScanKeyInit(&key[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(constraintId));
 
-   scan = systable_beginscan(conRel, ConstraintOidIndex, true,
+   scan = systable_beginscan(conRel, ConstraintOidIndexId, true,
                              SnapshotNow, 1, key);
 
    tup = systable_getnext(scan);
index a62e133a640d0d6fb72b87304f79a470419a7e36..57d125aed53b98cbff5a6aa7c145ad51241db3d1 100644 (file)
@@ -8,14 +8,13 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.21 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.22 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_conversion.h"
@@ -82,7 +81,7 @@ ConversionCreate(const char *conname, Oid connamespace,
    }
 
    /* open pg_conversion */
-   rel = heap_openr(ConversionRelationName, RowExclusiveLock);
+   rel = heap_open(ConversionRelationId, RowExclusiveLock);
    tupDesc = rel->rd_att;
 
    /* initialize nulls and values */
@@ -111,7 +110,7 @@ ConversionCreate(const char *conname, Oid connamespace,
    /* update the index if any */
    CatalogUpdateIndexes(rel, tup);
 
-   myself.classId = RelationGetRelid(rel);
+   myself.classId = ConversionRelationId;
    myself.objectId = HeapTupleGetOid(tup);
    myself.objectSubId = 0;
 
@@ -154,7 +153,7 @@ ConversionDrop(Oid conversionOid, DropBehavior behavior)
    /*
     * Do the deletion
     */
-   object.classId = get_system_catalog_relid(ConversionRelationName);
+   object.classId = ConversionRelationId;
    object.objectId = conversionOid;
    object.objectSubId = 0;
 
@@ -182,7 +181,7 @@ RemoveConversionById(Oid conversionOid)
                ObjectIdGetDatum(conversionOid));
 
    /* open pg_conversion */
-   rel = heap_openr(ConversionRelationName, RowExclusiveLock);
+   rel = heap_open(ConversionRelationId, RowExclusiveLock);
    tupDesc = rel->rd_att;
 
    scan = heap_beginscan(rel, SnapshotNow,
index 2d8040ddc603a1d83983302ab3ed8216aa0ea14d..6a7b54e88a4da0c824552b8d37e16d2b2b0181db 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_depend.c,v 1.12 2004/12/31 21:59:38 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_depend.c,v 1.13 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/dependency.h"
 #include "catalog/pg_depend.h"
@@ -69,7 +68,7 @@ recordMultipleDependencies(const ObjectAddress *depender,
    if (IsBootstrapProcessingMode())
        return;
 
-   dependDesc = heap_openr(DependRelationName, RowExclusiveLock);
+   dependDesc = heap_open(DependRelationId, RowExclusiveLock);
 
    /* Don't open indexes unless we need to make an update */
    indstate = NULL;
@@ -136,7 +135,7 @@ deleteDependencyRecordsFor(Oid classId, Oid objectId)
    SysScanDesc scan;
    HeapTuple   tup;
 
-   depRel = heap_openr(DependRelationName, RowExclusiveLock);
+   depRel = heap_open(DependRelationId, RowExclusiveLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_depend_classid,
@@ -147,7 +146,7 @@ deleteDependencyRecordsFor(Oid classId, Oid objectId)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(objectId));
 
-   scan = systable_beginscan(depRel, DependDependerIndex, true,
+   scan = systable_beginscan(depRel, DependDependerIndexId, true,
                              SnapshotNow, 2, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -190,7 +189,7 @@ isObjectPinned(const ObjectAddress *object, Relation rel)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(object->objectId));
 
-   scan = systable_beginscan(rel, DependReferenceIndex, true,
+   scan = systable_beginscan(rel, DependReferenceIndexId, true,
                              SnapshotNow, 2, key);
 
    /*
index bce3a47b93128165675d440f7554333a4bfad2fc..d8e3eae6c33a5458d16c53ca6a479548afdece4b 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_largeobject.c,v 1.23 2005/02/23 23:27:54 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_largeobject.c,v 1.24 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_largeobject.h"
 #include "miscadmin.h"
@@ -40,7 +39,7 @@ LargeObjectCreate(Oid loid)
    char        nulls[Natts_pg_largeobject];
    int         i;
 
-   pg_largeobject = heap_openr(LargeObjectRelationName, RowExclusiveLock);
+   pg_largeobject = heap_open(LargeObjectRelationId, RowExclusiveLock);
 
    /*
     * Form new tuple
@@ -86,9 +85,9 @@ LargeObjectDrop(Oid loid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(loid));
 
-   pg_largeobject = heap_openr(LargeObjectRelationName, RowExclusiveLock);
+   pg_largeobject = heap_open(LargeObjectRelationId, RowExclusiveLock);
 
-   sd = systable_beginscan(pg_largeobject, LargeObjectLOidPNIndex, true,
+   sd = systable_beginscan(pg_largeobject, LargeObjectLOidPNIndexId, true,
                            SnapshotNow, 1, skey);
 
    while ((tuple = systable_getnext(sd)) != NULL)
@@ -123,9 +122,9 @@ LargeObjectExists(Oid loid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(loid));
 
-   pg_largeobject = heap_openr(LargeObjectRelationName, AccessShareLock);
+   pg_largeobject = heap_open(LargeObjectRelationId, AccessShareLock);
 
-   sd = systable_beginscan(pg_largeobject, LargeObjectLOidPNIndex, true,
+   sd = systable_beginscan(pg_largeobject, LargeObjectLOidPNIndexId, true,
                            SnapshotNow, 1, skey);
 
    if (systable_getnext(sd) != NULL)
index 91aec71a8af9487e84ad9da4b6229af943e5b6e9..c2266f22d4dfa4fbbcd9d331dc2d138527aded4f 100644 (file)
@@ -8,14 +8,13 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_namespace.c,v 1.12 2004/12/31 21:59:38 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_namespace.c,v 1.13 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_namespace.h"
 #include "utils/builtins.h"
@@ -61,7 +60,7 @@ NamespaceCreate(const char *nspName, int32 ownerSysId)
    values[Anum_pg_namespace_nspowner - 1] = Int32GetDatum(ownerSysId);
    nulls[Anum_pg_namespace_nspacl - 1] = 'n';
 
-   nspdesc = heap_openr(NamespaceRelationName, RowExclusiveLock);
+   nspdesc = heap_open(NamespaceRelationId, RowExclusiveLock);
    tupDesc = nspdesc->rd_att;
 
    tup = heap_formtuple(tupDesc, values, nulls);
index 0a69411d7517500ab267ab86436c4f34e9589ac8..6f50e4dabddb969fa3b5a9836cbbf437896e9887 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.90 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.91 2005/04/14 20:03:23 tgl Exp $
  *
  * NOTES
  *   these routines moved here from commands/define.c and somewhat cleaned up.
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_namespace.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
@@ -58,7 +58,7 @@ static Oid get_other_operator(List *otherOp,
                   Oid leftTypeId, Oid rightTypeId,
                   bool isCommutator);
 
-static void makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid);
+static void makeOperatorDependencies(HeapTuple tuple);
 
 
 /*
@@ -254,7 +254,7 @@ OperatorShellMake(const char *operatorName,
    /*
     * open pg_operator
     */
-   pg_operator_desc = heap_openr(OperatorRelationName, RowExclusiveLock);
+   pg_operator_desc = heap_open(OperatorRelationId, RowExclusiveLock);
    tupDesc = pg_operator_desc->rd_att;
 
    /*
@@ -270,7 +270,7 @@ OperatorShellMake(const char *operatorName,
    CatalogUpdateIndexes(pg_operator_desc, tup);
 
    /* Add dependencies for the entry */
-   makeOperatorDependencies(tup, RelationGetRelid(pg_operator_desc));
+   makeOperatorDependencies(tup);
 
    heap_freetuple(tup);
 
@@ -620,7 +620,7 @@ OperatorCreate(const char *operatorName,
    values[i++] = ObjectIdGetDatum(restOid);    /* oprrest */
    values[i++] = ObjectIdGetDatum(joinOid);    /* oprjoin */
 
-   pg_operator_desc = heap_openr(OperatorRelationName, RowExclusiveLock);
+   pg_operator_desc = heap_open(OperatorRelationId, RowExclusiveLock);
 
    /*
     * If we are adding to an operator shell, update; else insert
@@ -654,7 +654,7 @@ OperatorCreate(const char *operatorName,
    CatalogUpdateIndexes(pg_operator_desc, tup);
 
    /* Add dependencies for the entry */
-   makeOperatorDependencies(tup, RelationGetRelid(pg_operator_desc));
+   makeOperatorDependencies(tup);
 
    heap_close(pg_operator_desc, RowExclusiveLock);
 
@@ -773,7 +773,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
     */
    CommandCounterIncrement();
 
-   pg_operator_desc = heap_openr(OperatorRelationName, RowExclusiveLock);
+   pg_operator_desc = heap_open(OperatorRelationId, RowExclusiveLock);
 
    tup = SearchSysCacheCopy(OPEROID,
                             ObjectIdGetDatum(commId),
@@ -877,13 +877,13 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
  * the given operator is a shell.
  */
 static void
-makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
+makeOperatorDependencies(HeapTuple tuple)
 {
    Form_pg_operator oper = (Form_pg_operator) GETSTRUCT(tuple);
    ObjectAddress myself,
                referenced;
 
-   myself.classId = pg_operator_relid;
+   myself.classId = OperatorRelationId;
    myself.objectId = HeapTupleGetOid(tuple);
    myself.objectSubId = 0;
 
@@ -893,7 +893,7 @@ makeOperatorDependencies(HeapTuple tuple, Oid pg_operator_relid)
    /* Dependency on namespace */
    if (OidIsValid(oper->oprnamespace))
    {
-       referenced.classId = get_system_catalog_relid(NamespaceRelationName);
+       referenced.classId = NamespaceRelationId;
        referenced.objectId = oper->oprnamespace;
        referenced.objectSubId = 0;
        recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
index b144f935cd58b9284b8e2c2f62f44a042398bdca..1f8b3388db21f8f3fdf47a7aeccd08d0bcb41f69 100644 (file)
@@ -8,16 +8,17 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.127 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.128 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
+#include "catalog/pg_language.h"
+#include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "executor/functions.h"
@@ -226,7 +227,7 @@ ProcedureCreate(const char *procedureName,
    /* start out with empty permissions */
    nulls[Anum_pg_proc_proacl - 1] = 'n';
 
-   rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(ProcedureRelationId, RowExclusiveLock);
    tupDesc = RelationGetDescr(rel);
 
    /* Check for pre-existing definition */
@@ -336,13 +337,13 @@ ProcedureCreate(const char *procedureName,
    myself.objectSubId = 0;
 
    /* dependency on namespace */
-   referenced.classId = get_system_catalog_relid(NamespaceRelationName);
+   referenced.classId = NamespaceRelationId;
    referenced.objectId = procNamespace;
    referenced.objectSubId = 0;
    recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
 
    /* dependency on implementation language */
-   referenced.classId = get_system_catalog_relid(LanguageRelationName);
+   referenced.classId = LanguageRelationId;
    referenced.objectId = languageObjectId;
    referenced.objectSubId = 0;
    recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
index 9bbc19c5f5bccca6956b76437b125c6421709486..acadded40d782de1006cf62477726233dc57fdee 100644 (file)
@@ -8,16 +8,16 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.99 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.100 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
+#include "catalog/pg_namespace.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_type.h"
 #include "miscadmin.h"
@@ -56,7 +56,7 @@ TypeShellMake(const char *typeName, Oid typeNamespace)
    /*
     * open pg_type
     */
-   pg_type_desc = heap_openr(TypeRelationName, RowExclusiveLock);
+   pg_type_desc = heap_open(TypeRelationId, RowExclusiveLock);
    tupDesc = pg_type_desc->rd_att;
 
    /*
@@ -274,7 +274,7 @@ TypeCreate(const char *typeName,
     * NOTE: updating will not work correctly in bootstrap mode; but we don't
     * expect to be overwriting any shell types in bootstrap mode.
     */
-   pg_type_desc = heap_openr(TypeRelationName, RowExclusiveLock);
+   pg_type_desc = heap_open(TypeRelationId, RowExclusiveLock);
 
    tup = SearchSysCacheCopy(TYPENAMENSP,
                             CStringGetDatum(typeName),
@@ -389,7 +389,7 @@ GenerateTypeDependencies(Oid typeNamespace,
    /* skip for relation rowtype, since we have indirect dependency */
    if (!OidIsValid(relationOid))
    {
-       referenced.classId = get_system_catalog_relid(NamespaceRelationName);
+       referenced.classId = NamespaceRelationId;
        referenced.objectId = typeNamespace;
        referenced.objectSubId = 0;
        recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -502,7 +502,7 @@ TypeRename(const char *oldTypeName, Oid typeNamespace,
    Relation    pg_type_desc;
    HeapTuple   tuple;
 
-   pg_type_desc = heap_openr(TypeRelationName, RowExclusiveLock);
+   pg_type_desc = heap_open(TypeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopy(TYPENAMENSP,
                               CStringGetDatum(oldTypeName),
index 95c81b1aac4b574697c713e27f57677219616dc2..9833937b705ec6189d2d744cdd000abd4bc78598 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.25 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/aggregatecmds.c,v 1.26 2005/04/14 20:03:23 tgl Exp $
  *
  * DESCRIPTION
  *   The "DefineFoo" routines take the parse tree and pick out the
@@ -23,7 +23,6 @@
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
@@ -236,7 +235,7 @@ RenameAggregate(List *name, TypeName *basetype, const char *newname)
    else
        basetypeOid = ANYOID;
 
-   rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    procOid = find_aggregate_func(name, basetypeOid, false);
 
@@ -315,7 +314,7 @@ AlterAggregateOwner(List *name, TypeName *basetype, AclId newOwnerSysId)
    else
        basetypeOid = ANYOID;
 
-   rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    procOid = find_aggregate_func(name, basetypeOid, false);
 
index 94e1971a4dfefa3d99f553dee4fad10a8d986d1d..34bb0be1516110a8c72ef459654b736f55ba3edd 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.84 2005/03/21 01:24:02 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.85 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,6 @@
 #include "access/heapam.h"
 #include "access/tuptoaster.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/index.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
@@ -187,8 +186,7 @@ analyze_rel(Oid relid, VacuumStmt *vacstmt)
    /*
     * We can ANALYZE any table except pg_statistic. See update_attstats
     */
-   if (IsSystemNamespace(RelationGetNamespace(onerel)) &&
-    strcmp(RelationGetRelationName(onerel), StatisticRelationName) == 0)
+   if (RelationGetRelid(onerel) == StatisticRelationId)
    {
        relation_close(onerel, AccessShareLock);
        return;
@@ -1091,7 +1089,7 @@ update_attstats(Oid relid, int natts, VacAttrStats **vacattrstats)
    if (natts <= 0)
        return;                 /* nothing to do */
 
-   sd = heap_openr(StatisticRelationName, RowExclusiveLock);
+   sd = heap_open(StatisticRelationId, RowExclusiveLock);
 
    for (attno = 0; attno < natts; attno++)
    {
index 11ad8c69bcec811e862d94dedd38f238251d0ba0..3ddb9ae1a7c6df8a856ee010f317e47e32ad8e8d 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.120 2005/03/20 23:40:24 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.121 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -79,7 +79,6 @@
 #include 
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/pg_listener.h"
 #include "commands/async.h"
 #include "libpq/libpq.h"
@@ -205,7 +204,7 @@ Async_Listen(char *relname, int pid)
    if (Trace_notify)
        elog(DEBUG1, "Async_Listen(%s,%d)", relname, pid);
 
-   lRel = heap_openr(ListenerRelationName, ExclusiveLock);
+   lRel = heap_open(ListenerRelationId, ExclusiveLock);
 
    /* Detect whether we are already listening on this relname */
    scan = heap_beginscan(lRel, SnapshotNow, 0, NULL);
@@ -299,7 +298,7 @@ Async_Unlisten(char *relname, int pid)
    if (Trace_notify)
        elog(DEBUG1, "Async_Unlisten(%s,%d)", relname, pid);
 
-   lRel = heap_openr(ListenerRelationName, ExclusiveLock);
+   lRel = heap_open(ListenerRelationId, ExclusiveLock);
 
    scan = heap_beginscan(lRel, SnapshotNow, 0, NULL);
    while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
@@ -357,7 +356,7 @@ Async_UnlistenAll(void)
    if (Trace_notify)
        elog(DEBUG1, "Async_UnlistenAll");
 
-   lRel = heap_openr(ListenerRelationName, ExclusiveLock);
+   lRel = heap_open(ListenerRelationId, ExclusiveLock);
    tdesc = RelationGetDescr(lRel);
 
    /* Find and delete all entries with my listenerPID */
@@ -466,7 +465,7 @@ AtCommit_Notify(void)
    value[0] = value[1] = value[2] = (Datum) 0;
    value[Anum_pg_listener_notify - 1] = Int32GetDatum(MyProcPid);
 
-   lRel = heap_openr(ListenerRelationName, ExclusiveLock);
+   lRel = heap_open(ListenerRelationId, ExclusiveLock);
    tdesc = RelationGetDescr(lRel);
    scan = heap_beginscan(lRel, SnapshotNow, 0, NULL);
 
@@ -902,7 +901,7 @@ ProcessIncomingNotify(void)
 
    StartTransactionCommand();
 
-   lRel = heap_openr(ListenerRelationName, ExclusiveLock);
+   lRel = heap_open(ListenerRelationId, ExclusiveLock);
    tdesc = RelationGetDescr(lRel);
 
    /* Scan only entries with my listenerPID */
index 553a842069902aac4058cf648f378fb7654113aa..e1c5a0ef7789aa1eb3ed9ae201aef26292efd3c1 100644 (file)
@@ -11,7 +11,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.135 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.136 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -20,7 +20,6 @@
 #include "access/genam.h"
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -434,7 +433,7 @@ mark_index_clustered(Relation rel, Oid indexOid)
    /*
     * Check each index of the relation and set/clear the bit as needed.
     */
-   pg_index = heap_openr(IndexRelationName, RowExclusiveLock);
+   pg_index = heap_open(IndexRelationId, RowExclusiveLock);
 
    foreach(index, RelationGetIndexList(rel))
    {
@@ -719,7 +718,7 @@ swap_relation_files(Oid r1, Oid r2)
    CatalogIndexState indstate;
 
    /* We need writable copies of both pg_class tuples. */
-   relRelation = heap_openr(RelationRelationName, RowExclusiveLock);
+   relRelation = heap_open(RelationRelationId, RowExclusiveLock);
 
    reltup1 = SearchSysCacheCopy(RELOID,
                                 ObjectIdGetDatum(r1),
@@ -883,7 +882,7 @@ get_tables_to_cluster(MemoryContext cluster_context)
     * ever have indisclustered set, because CLUSTER will refuse to set it
     * when called with one of them as argument.
     */
-   indRelation = relation_openr(IndexRelationName, AccessShareLock);
+   indRelation = heap_open(IndexRelationId, AccessShareLock);
    ScanKeyInit(&entry,
                Anum_pg_index_indisclustered,
                BTEqualStrategyNumber, F_BOOLEQ,
index 68d498641b8df4f28d08fc010538b69a71002321..8177e39c71c1f4236f089ef5cc4d623fe19bc460 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (c) 1996-2005, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.82 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.83 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_cast.h"
 #include "catalog/pg_constraint.h"
+#include "catalog/pg_conversion.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_description.h"
+#include "catalog/pg_language.h"
 #include "catalog/pg_largeobject.h"
+#include "catalog/pg_namespace.h"
+#include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_proc.h"
 #include "catalog/pg_rewrite.h"
@@ -192,9 +196,9 @@ CreateComments(Oid oid, Oid classoid, int32 subid, char *comment)
                BTEqualStrategyNumber, F_INT4EQ,
                Int32GetDatum(subid));
 
-   description = heap_openr(DescriptionRelationName, RowExclusiveLock);
+   description = heap_open(DescriptionRelationId, RowExclusiveLock);
 
-   sd = systable_beginscan(description, DescriptionObjIndex, true,
+   sd = systable_beginscan(description, DescriptionObjIndexId, true,
                            SnapshotNow, 3, skey);
 
    while ((oldtuple = systable_getnext(sd)) != NULL)
@@ -274,9 +278,9 @@ DeleteComments(Oid oid, Oid classoid, int32 subid)
    else
        nkeys = 2;
 
-   description = heap_openr(DescriptionRelationName, RowExclusiveLock);
+   description = heap_open(DescriptionRelationId, RowExclusiveLock);
 
-   sd = systable_beginscan(description, DescriptionObjIndex, true,
+   sd = systable_beginscan(description, DescriptionObjIndexId, true,
                            SnapshotNow, nkeys, skey);
 
    while ((oldtuple = systable_getnext(sd)) != NULL)
@@ -353,8 +357,8 @@ CommentRelation(int objtype, List *relname, char *comment)
    }
 
    /* Create the comment using the relation's oid */
-
-   CreateComments(RelationGetRelid(relation), RelationRelationId, 0, comment);
+   CreateComments(RelationGetRelid(relation), RelationRelationId,
+                  0, comment);
 
    /* Done, but hold lock until commit */
    relation_close(relation, NoLock);
@@ -407,7 +411,6 @@ CommentAttribute(List *qualname, char *comment)
                        attrname, RelationGetRelationName(relation))));
 
    /* Create the comment using the relation's oid */
-
    CreateComments(RelationGetRelid(relation), RelationRelationId,
                   (int32) attnum, comment);
 
@@ -476,7 +479,7 @@ CommentDatabase(List *qualname, char *comment)
        aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_DATABASE,
                       database);
 
-   /* Create the comment with the pg_database oid */
+   /* Call CreateComments() to create/drop the comments */
    CreateComments(oid, DatabaseRelationId, 0, comment);
 }
 
@@ -493,7 +496,6 @@ static void
 CommentNamespace(List *qualname, char *comment)
 {
    Oid         oid;
-   Oid         classoid;
    char       *namespace;
 
    if (list_length(qualname) != 1)
@@ -515,11 +517,8 @@ CommentNamespace(List *qualname, char *comment)
        aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_NAMESPACE,
                       namespace);
 
-   /* pg_namespace doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(NamespaceRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(oid, classoid, 0, comment);
+   CreateComments(oid, NamespaceRelationId, 0, comment);
 }
 
 /*
@@ -547,7 +546,6 @@ CommentRule(List *qualname, char *comment)
    HeapTuple   tuple;
    Oid         reloid;
    Oid         ruleoid;
-   Oid         classoid;
    AclResult   aclcheck;
 
    /* Separate relname and trig name */
@@ -567,7 +565,7 @@ CommentRule(List *qualname, char *comment)
                    BTEqualStrategyNumber, F_NAMEEQ,
                    PointerGetDatum(rulename));
 
-       RewriteRelation = heap_openr(RewriteRelationName, AccessShareLock);
+       RewriteRelation = heap_open(RewriteRelationId, AccessShareLock);
        scanDesc = heap_beginscan(RewriteRelation, SnapshotNow,
                                  1, &scanKeyData);
 
@@ -631,11 +629,8 @@ CommentRule(List *qualname, char *comment)
        aclcheck_error(aclcheck, ACL_KIND_CLASS,
                       get_rel_name(reloid));
 
-   /* pg_rewrite doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(RewriteRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(ruleoid, classoid, 0, comment);
+   CreateComments(ruleoid, RewriteRelationId, 0, comment);
 
    heap_close(relation, NoLock);
 }
@@ -671,7 +666,6 @@ CommentType(List *typename, char *comment)
                       TypeNameToString(tname));
 
    /* Call CreateComments() to create/drop the comments */
-
    CreateComments(oid, TypeRelationId, 0, comment);
 }
 
@@ -707,7 +701,6 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
                       NameListToString(aggregate));
 
    /* Call CreateComments() to create/drop the comments */
-
    CreateComments(oid, ProcedureRelationId, 0, comment);
 }
 
@@ -736,7 +729,6 @@ CommentProc(List *function, List *arguments, char *comment)
                       NameListToString(function));
 
    /* Call CreateComments() to create/drop the comments */
-
    CreateComments(oid, ProcedureRelationId, 0, comment);
 }
 
@@ -756,7 +748,6 @@ CommentOperator(List *opername, List *arguments, char *comment)
    TypeName   *typenode1 = (TypeName *) linitial(arguments);
    TypeName   *typenode2 = (TypeName *) lsecond(arguments);
    Oid         oid;
-   Oid         classoid;
 
    /* Look up the operator */
    oid = LookupOperNameTypeNames(opername, typenode1, typenode2, false);
@@ -766,11 +757,8 @@ CommentOperator(List *opername, List *arguments, char *comment)
        aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_OPER,
                       NameListToString(opername));
 
-   /* pg_operator doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(OperatorRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(oid, classoid, 0, comment);
+   CreateComments(oid, OperatorRelationId, 0, comment);
 }
 
 /*
@@ -817,7 +805,7 @@ CommentTrigger(List *qualname, char *comment)
     * Fetch the trigger tuple from pg_trigger.  There can be only one
     * because of the unique index.
     */
-   pg_trigger = heap_openr(TriggerRelationName, AccessShareLock);
+   pg_trigger = heap_open(TriggerRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                Anum_pg_trigger_tgrelid,
                BTEqualStrategyNumber, F_OIDEQ,
@@ -826,7 +814,7 @@ CommentTrigger(List *qualname, char *comment)
                Anum_pg_trigger_tgname,
                BTEqualStrategyNumber, F_NAMEEQ,
                CStringGetDatum(trigname));
-   scan = systable_beginscan(pg_trigger, TriggerRelidNameIndex, true,
+   scan = systable_beginscan(pg_trigger, TriggerRelidNameIndexId, true,
                              SnapshotNow, 2, entry);
    triggertuple = systable_getnext(scan);
 
@@ -842,9 +830,8 @@ CommentTrigger(List *qualname, char *comment)
 
    systable_endscan(scan);
 
-   /* Create the comment with the pg_trigger oid */
-
-   CreateComments(oid, RelationGetRelid(pg_trigger), 0, comment);
+   /* Call CreateComments() to create/drop the comments */
+   CreateComments(oid, TriggerRelationId, 0, comment);
 
    /* Done, but hold lock on relation */
 
@@ -896,14 +883,14 @@ CommentConstraint(List *qualname, char *comment)
     * than one match, because constraints are not required to have unique
     * names; if so, error out.
     */
-   pg_constraint = heap_openr(ConstraintRelationName, AccessShareLock);
+   pg_constraint = heap_open(ConstraintRelationId, AccessShareLock);
 
    ScanKeyInit(&skey[0],
                Anum_pg_constraint_conrelid,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(relation)));
 
-   scan = systable_beginscan(pg_constraint, ConstraintRelidIndex, true,
+   scan = systable_beginscan(pg_constraint, ConstraintRelidIndexId, true,
                              SnapshotNow, 1, skey);
 
    while (HeapTupleIsValid(tuple = systable_getnext(scan)))
@@ -930,8 +917,8 @@ CommentConstraint(List *qualname, char *comment)
              errmsg("constraint \"%s\" for table \"%s\" does not exist",
                     conName, RelationGetRelationName(relation))));
 
-   /* Create the comment with the pg_constraint oid */
-   CreateComments(conOid, RelationGetRelid(pg_constraint), 0, comment);
+   /* Call CreateComments() to create/drop the comments */
+   CreateComments(conOid, ConstraintRelationId, 0, comment);
 
    /* Done, but hold lock on relation */
    heap_close(pg_constraint, AccessShareLock);
@@ -951,7 +938,6 @@ static void
 CommentConversion(List *qualname, char *comment)
 {
    Oid         conversionOid;
-   Oid         classoid;
 
    conversionOid = FindConversionByName(qualname);
    if (!OidIsValid(conversionOid))
@@ -965,11 +951,8 @@ CommentConversion(List *qualname, char *comment)
        aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CONVERSION,
                       NameListToString(qualname));
 
-   /* pg_conversion doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(ConversionRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(conversionOid, classoid, 0, comment);
+   CreateComments(conversionOid, ConversionRelationId, 0, comment);
 }
 
 /*
@@ -985,7 +968,6 @@ static void
 CommentLanguage(List *qualname, char *comment)
 {
    Oid         oid;
-   Oid         classoid;
    char       *language;
 
    if (list_length(qualname) != 1)
@@ -1008,11 +990,8 @@ CommentLanguage(List *qualname, char *comment)
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
         errmsg("must be superuser to comment on procedural language")));
 
-   /* pg_language doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(LanguageRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(oid, classoid, 0, comment);
+   CreateComments(oid, LanguageRelationId, 0, comment);
 }
 
 /*
@@ -1032,7 +1011,6 @@ CommentOpClass(List *qualname, List *arguments, char *comment)
    char       *opcname;
    Oid         amID;
    Oid         opcID;
-   Oid         classoid;
    HeapTuple   tuple;
 
    Assert(list_length(arguments) == 1);
@@ -1098,11 +1076,8 @@ CommentOpClass(List *qualname, List *arguments, char *comment)
 
    ReleaseSysCache(tuple);
 
-   /* pg_opclass doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(OperatorClassRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(opcID, classoid, 0, comment);
+   CreateComments(opcID, OperatorClassRelationId, 0, comment);
 }
 
 /*
@@ -1118,7 +1093,6 @@ static void
 CommentLargeObject(List *qualname, char *comment)
 {
    Oid         loid;
-   Oid         classoid;
    Node       *node;
 
    Assert(list_length(qualname) == 1);
@@ -1152,11 +1126,8 @@ CommentLargeObject(List *qualname, char *comment)
                (errcode(ERRCODE_UNDEFINED_OBJECT),
                 errmsg("large object %u does not exist", loid)));
 
-   /* pg_largeobject doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(LargeObjectRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(loid, classoid, 0, comment);
+   CreateComments(loid, LargeObjectRelationId, 0, comment);
 }
 
 /*
@@ -1178,7 +1149,6 @@ CommentCast(List *qualname, List *arguments, char *comment)
    Oid         targettypeid;
    HeapTuple   tuple;
    Oid         castOid;
-   Oid         classoid;
 
    Assert(list_length(qualname) == 1);
    sourcetype = (TypeName *) linitial(qualname);
@@ -1226,9 +1196,6 @@ CommentCast(List *qualname, List *arguments, char *comment)
 
    ReleaseSysCache(tuple);
 
-   /* pg_cast doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(CastRelationName);
-
    /* Call CreateComments() to create/drop the comments */
-   CreateComments(castOid, classoid, 0, comment);
+   CreateComments(castOid, CastRelationId, 0, comment);
 }
index 2f87caf3a8eb8afd6523a26cd6c486d32b17a9f6..c42580d624b730e35b1e94f5298995e2626d64f7 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.16 2004/12/31 21:59:41 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/conversioncmds.c,v 1.17 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -17,7 +17,6 @@
 #include "catalog/pg_conversion.h"
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_type.h"
@@ -124,7 +123,7 @@ RenameConversion(List *name, const char *newname)
    Relation    rel;
    AclResult   aclresult;
 
-   rel = heap_openr(ConversionRelationName, RowExclusiveLock);
+   rel = heap_open(ConversionRelationId, RowExclusiveLock);
 
    conversionOid = FindConversionByName(name);
    if (!OidIsValid(conversionOid))
@@ -183,7 +182,7 @@ AlterConversionOwner(List *name, AclId newOwnerSysId)
    Relation    rel;
    Form_pg_conversion convForm;
 
-   rel = heap_openr(ConversionRelationName, RowExclusiveLock);
+   rel = heap_open(ConversionRelationId, RowExclusiveLock);
 
    conversionOid = FindConversionByName(name);
    if (!OidIsValid(conversionOid))
index 3713a039b4fd3e54f3300ea398c5f4b4f12846ec..26c270926d8ea6193a36a02ca0d3e32529966d76 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.239 2005/03/25 21:57:57 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.240 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -22,7 +22,6 @@
 #include "access/genam.h"
 #include "access/heapam.h"
 #include "access/printtup.h"
-#include "catalog/catname.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_index.h"
index 3473e98cde07a62f6fe9d32736d7cfd0704ea6f9..ec04619175bdd34e9a92e853610ecfe8d6f2a8a8 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.155 2005/03/23 00:03:28 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.156 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -27,7 +27,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/catalog.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_shadow.h"
@@ -364,7 +363,7 @@ createdb(const CreatedbStmt *stmt)
     * Iterate through all tablespaces of the template database, and copy
     * each one to the new database.
     */
-   rel = heap_openr(TableSpaceRelationName, AccessShareLock);
+   rel = heap_open(TableSpaceRelationId, AccessShareLock);
    scan = heap_beginscan(rel, SnapshotNow, 0, NULL);
    while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
    {
@@ -459,7 +458,7 @@ createdb(const CreatedbStmt *stmt)
    /*
     * Now OK to grab exclusive lock on pg_database.
     */
-   pg_database_rel = heap_openr(DatabaseRelationName, ExclusiveLock);
+   pg_database_rel = heap_open(DatabaseRelationId, ExclusiveLock);
 
    /* Check to see if someone else created same DB name meanwhile. */
    if (get_db_info(dbname, NULL, NULL, NULL,
@@ -557,7 +556,7 @@ dropdb(const char *dbname)
     * since ReverifyMyDatabase takes RowShareLock.  This allows ordinary
     * readers of pg_database to proceed in parallel.
     */
-   pgdbrel = heap_openr(DatabaseRelationName, ExclusiveLock);
+   pgdbrel = heap_open(DatabaseRelationId, ExclusiveLock);
 
    if (!get_db_info(dbname, &db_id, &db_owner, NULL,
                     &db_istemplate, NULL, NULL, NULL, NULL, NULL))
@@ -596,7 +595,7 @@ dropdb(const char *dbname)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(db_id));
 
-   pgdbscan = systable_beginscan(pgdbrel, DatabaseOidIndex, true,
+   pgdbscan = systable_beginscan(pgdbrel, DatabaseOidIndexId, true,
                                  SnapshotNow, 1, &key);
 
    tup = systable_getnext(pgdbscan);
@@ -621,7 +620,7 @@ dropdb(const char *dbname)
     * NOTE: this is probably dead code since any such comments should have
     * been in that database, not mine.
     */
-   DeleteComments(db_id, RelationGetRelid(pgdbrel), 0);
+   DeleteComments(db_id, DatabaseRelationId, 0);
 
    /*
     * Drop pages for this database that are in the shared buffer cache.
@@ -676,13 +675,13 @@ RenameDatabase(const char *oldname, const char *newname)
     * Obtain ExclusiveLock so that no new session gets started
     * while the rename is in progress.
     */
-   rel = heap_openr(DatabaseRelationName, ExclusiveLock);
+   rel = heap_open(DatabaseRelationId, ExclusiveLock);
 
    ScanKeyInit(&key,
                Anum_pg_database_datname,
                BTEqualStrategyNumber, F_NAMEEQ,
                NameGetDatum(oldname));
-   scan = systable_beginscan(rel, DatabaseNameIndex, true,
+   scan = systable_beginscan(rel, DatabaseNameIndexId, true,
                              SnapshotNow, 1, &key);
 
    tup = systable_getnext(scan);
@@ -717,7 +716,7 @@ RenameDatabase(const char *oldname, const char *newname)
                Anum_pg_database_datname,
                BTEqualStrategyNumber, F_NAMEEQ,
                NameGetDatum(newname));
-   scan2 = systable_beginscan(rel, DatabaseNameIndex, true,
+   scan2 = systable_beginscan(rel, DatabaseNameIndexId, true,
                               SnapshotNow, 1, &key2);
    if (HeapTupleIsValid(systable_getnext(scan2)))
        ereport(ERROR,
@@ -776,12 +775,12 @@ AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
     * We don't need ExclusiveLock since we aren't updating the
     * flat file.
     */
-   rel = heap_openr(DatabaseRelationName, RowExclusiveLock);
+   rel = heap_open(DatabaseRelationId, RowExclusiveLock);
    ScanKeyInit(&scankey,
                Anum_pg_database_datname,
                BTEqualStrategyNumber, F_NAMEEQ,
                NameGetDatum(stmt->dbname));
-   scan = systable_beginscan(rel, DatabaseNameIndex, true,
+   scan = systable_beginscan(rel, DatabaseNameIndexId, true,
                              SnapshotNow, 1, &scankey);
    tuple = systable_getnext(scan);
    if (!HeapTupleIsValid(tuple))
@@ -861,12 +860,12 @@ AlterDatabaseOwner(const char *dbname, AclId newOwnerSysId)
     * We don't need ExclusiveLock since we aren't updating the
     * flat file.
     */
-   rel = heap_openr(DatabaseRelationName, RowExclusiveLock);
+   rel = heap_open(DatabaseRelationId, RowExclusiveLock);
    ScanKeyInit(&scankey,
                Anum_pg_database_datname,
                BTEqualStrategyNumber, F_NAMEEQ,
                NameGetDatum(dbname));
-   scan = systable_beginscan(rel, DatabaseNameIndex, true,
+   scan = systable_beginscan(rel, DatabaseNameIndexId, true,
                              SnapshotNow, 1, &scankey);
    tuple = systable_getnext(scan);
    if (!HeapTupleIsValid(tuple))
@@ -958,14 +957,14 @@ get_db_info(const char *name, Oid *dbIdP, int4 *ownerIdP,
    AssertArg(name);
 
    /* Caller may wish to grab a better lock on pg_database beforehand... */
-   relation = heap_openr(DatabaseRelationName, AccessShareLock);
+   relation = heap_open(DatabaseRelationId, AccessShareLock);
 
    ScanKeyInit(&scanKey,
                Anum_pg_database_datname,
                BTEqualStrategyNumber, F_NAMEEQ,
                NameGetDatum(name));
 
-   scan = systable_beginscan(relation, DatabaseNameIndex, true,
+   scan = systable_beginscan(relation, DatabaseNameIndexId, true,
                              SnapshotNow, 1, &scanKey);
 
    tuple = systable_getnext(scan);
@@ -1041,7 +1040,7 @@ remove_dbtablespaces(Oid db_id)
    HeapScanDesc scan;
    HeapTuple   tuple;
 
-   rel = heap_openr(TableSpaceRelationName, AccessShareLock);
+   rel = heap_open(TableSpaceRelationId, AccessShareLock);
    scan = heap_beginscan(rel, SnapshotNow, 0, NULL);
    while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
    {
@@ -1108,12 +1107,12 @@ get_database_oid(const char *dbname)
    Oid         oid;
 
    /* There's no syscache for pg_database, so must look the hard way */
-   pg_database = heap_openr(DatabaseRelationName, AccessShareLock);
+   pg_database = heap_open(DatabaseRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                Anum_pg_database_datname,
                BTEqualStrategyNumber, F_NAMEEQ,
                CStringGetDatum(dbname));
-   scan = systable_beginscan(pg_database, DatabaseNameIndex, true,
+   scan = systable_beginscan(pg_database, DatabaseNameIndexId, true,
                              SnapshotNow, 1, entry);
 
    dbtuple = systable_getnext(scan);
@@ -1148,12 +1147,12 @@ get_database_name(Oid dbid)
    char       *result;
 
    /* There's no syscache for pg_database, so must look the hard way */
-   pg_database = heap_openr(DatabaseRelationName, AccessShareLock);
+   pg_database = heap_open(DatabaseRelationId, AccessShareLock);
    ScanKeyInit(&entry[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(dbid));
-   scan = systable_beginscan(pg_database, DatabaseOidIndex, true,
+   scan = systable_beginscan(pg_database, DatabaseOidIndexId, true,
                              SnapshotNow, 1, entry);
 
    dbtuple = systable_getnext(scan);
index fc00b45baec5001eb1697281a812f076b7ae51b7..ea3c381183713a8745a50cbe0567dbd0f32f46e1 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.60 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.61 2005/04/14 20:03:23 tgl Exp $
  *
  * DESCRIPTION
  *   These routines take the parse tree and pick out the
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
+#include "catalog/pg_aggregate.h"
 #include "catalog/pg_cast.h"
 #include "catalog/pg_language.h"
 #include "catalog/pg_proc.h"
@@ -742,7 +742,7 @@ RemoveFunctionById(Oid funcOid)
    /*
     * Delete the pg_proc tuple.
     */
-   relation = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   relation = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(PROCOID,
                         ObjectIdGetDatum(funcOid),
@@ -763,7 +763,7 @@ RemoveFunctionById(Oid funcOid)
     */
    if (isagg)
    {
-       relation = heap_openr(AggregateRelationName, RowExclusiveLock);
+       relation = heap_open(AggregateRelationId, RowExclusiveLock);
 
        tup = SearchSysCache(AGGFNOID,
                             ObjectIdGetDatum(funcOid),
@@ -793,7 +793,7 @@ RenameFunction(List *name, List *argtypes, const char *newname)
    Relation    rel;
    AclResult   aclresult;
 
-   rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    procOid = LookupFuncNameTypeNames(name, argtypes, false);
 
@@ -860,7 +860,7 @@ AlterFunctionOwner(List *name, List *argtypes, AclId newOwnerSysId)
    Form_pg_proc procForm;
    Relation    rel;
 
-   rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    procOid = LookupFuncNameTypeNames(name, argtypes, false);
 
@@ -948,7 +948,7 @@ AlterFunction(AlterFunctionStmt *stmt)
    DefElem *strict_item = NULL;
    DefElem *security_def_item = NULL;
 
-   rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    funcOid = LookupFuncNameTypeNames(stmt->func->funcname,
                                      stmt->func->funcargs,
@@ -1014,7 +1014,7 @@ SetFunctionReturnType(Oid funcOid, Oid newRetType)
    HeapTuple   tup;
    Form_pg_proc procForm;
 
-   pg_proc_rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   pg_proc_rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    tup = SearchSysCacheCopy(PROCOID,
                             ObjectIdGetDatum(funcOid),
@@ -1050,7 +1050,7 @@ SetFunctionArgType(Oid funcOid, int argIndex, Oid newArgType)
    HeapTuple   tup;
    Form_pg_proc procForm;
 
-   pg_proc_rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
+   pg_proc_rel = heap_open(ProcedureRelationId, RowExclusiveLock);
 
    tup = SearchSysCacheCopy(PROCOID,
                             ObjectIdGetDatum(funcOid),
@@ -1266,7 +1266,7 @@ CreateCast(CreateCastStmt *stmt)
            break;
    }
 
-   relation = heap_openr(CastRelationName, RowExclusiveLock);
+   relation = heap_open(CastRelationId, RowExclusiveLock);
 
    /*
     * Check for duplicate.  This is just to give a friendly error
@@ -1299,7 +1299,7 @@ CreateCast(CreateCastStmt *stmt)
    CatalogUpdateIndexes(relation, tuple);
 
    /* make dependency entries */
-   myself.classId = RelationGetRelid(relation);
+   myself.classId = CastRelationId;
    myself.objectId = HeapTupleGetOid(tuple);
    myself.objectSubId = 0;
 
@@ -1379,7 +1379,7 @@ DropCast(DropCastStmt *stmt)
    /*
     * Do the deletion
     */
-   object.classId = get_system_catalog_relid(CastRelationName);
+   object.classId = CastRelationId;
    object.objectId = HeapTupleGetOid(tuple);
    object.objectSubId = 0;
 
@@ -1397,13 +1397,13 @@ DropCastById(Oid castOid)
    SysScanDesc scan;
    HeapTuple   tuple;
 
-   relation = heap_openr(CastRelationName, RowExclusiveLock);
+   relation = heap_open(CastRelationId, RowExclusiveLock);
 
    ScanKeyInit(&scankey,
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(castOid));
-   scan = systable_beginscan(relation, CastOidIndex, true,
+   scan = systable_beginscan(relation, CastOidIndexId, true,
                              SnapshotNow, 1, &scankey);
 
    tuple = systable_getnext(scan);
index 01e3396efa5fe373bc4d49b6fc8f98f9ccab5ef3..93bdab2440dd50e6d5c90c45a451564068189594 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.129 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/indexcmds.c,v 1.130 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -17,7 +17,6 @@
 
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -1039,7 +1038,7 @@ ReindexDatabase(const char *dbname, bool force /* currently unused */ ,
     * We only consider plain relations here (toast rels will be processed
     * indirectly by reindex_relation).
     */
-   relationRelation = heap_openr(RelationRelationName, AccessShareLock);
+   relationRelation = heap_open(RelationRelationId, AccessShareLock);
    scan = heap_beginscan(relationRelation, SnapshotNow, 0, NULL);
    while ((tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
    {
index 5d5ae51a82c4c1bcdd1a55aaa4ce3908d62bc1ad..e64924c43a7385b31fc54fcd9e6c368d4bc7f9f9 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.31 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/opclasscmds.c,v 1.32 2005/04/14 20:03:23 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_am.h"
 #include "catalog/pg_amop.h"
 #include "catalog/pg_amproc.h"
+#include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_proc.h"
@@ -255,7 +255,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
        }
    }
 
-   rel = heap_openr(OperatorClassRelationName, RowExclusiveLock);
+   rel = heap_open(OperatorClassRelationId, RowExclusiveLock);
 
    /*
     * Make sure there is no existing opclass of this name (this is just
@@ -287,7 +287,7 @@ DefineOpClass(CreateOpClassStmt *stmt)
                    BTEqualStrategyNumber, F_OIDEQ,
                    ObjectIdGetDatum(amoid));
 
-       scan = systable_beginscan(rel, OpclassAmNameNspIndex, true,
+       scan = systable_beginscan(rel, OpclassAmNameNspIndexId, true,
                                  SnapshotNow, 1, skey);
 
        while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -345,12 +345,12 @@ DefineOpClass(CreateOpClassStmt *stmt)
     * Create dependencies.  Note: we do not create a dependency link to
     * the AM, because we don't currently support DROP ACCESS METHOD.
     */
-   myself.classId = RelationGetRelid(rel);
+   myself.classId = OperatorClassRelationId;
    myself.objectId = opclassoid;
    myself.objectSubId = 0;
 
    /* dependency on namespace */
-   referenced.classId = get_system_catalog_relid(NamespaceRelationName);
+   referenced.classId = NamespaceRelationId;
    referenced.objectId = namespaceoid;
    referenced.objectSubId = 0;
    recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -371,11 +371,11 @@ DefineOpClass(CreateOpClassStmt *stmt)
    }
 
    /* dependencies on operators */
-   referenced.classId = get_system_catalog_relid(OperatorRelationName);
    foreach(l, operators)
    {
        OpClassMember *op = (OpClassMember *) lfirst(l);
 
+       referenced.classId = OperatorRelationId;
        referenced.objectId = op->object;
        referenced.objectSubId = 0;
        recordDependencyOn(&myself, &referenced, DEPENDENCY_NORMAL);
@@ -547,7 +547,7 @@ storeOperators(Oid opclassoid, List *operators)
    ListCell   *l;
    int         i;
 
-   rel = heap_openr(AccessMethodOperatorRelationName, RowExclusiveLock);
+   rel = heap_open(AccessMethodOperatorRelationId, RowExclusiveLock);
 
    foreach(l, operators)
    {
@@ -591,7 +591,7 @@ storeProcedures(Oid opclassoid, List *procedures)
    ListCell   *l;
    int         i;
 
-   rel = heap_openr(AccessMethodProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(AccessMethodProcedureRelationId, RowExclusiveLock);
 
    foreach(l, procedures)
    {
@@ -701,7 +701,7 @@ RemoveOpClass(RemoveOpClassStmt *stmt)
    /*
     * Do the deletion
     */
-   object.classId = get_system_catalog_relid(OperatorClassRelationName);
+   object.classId = OperatorClassRelationId;
    object.objectId = opcID;
    object.objectSubId = 0;
 
@@ -722,7 +722,7 @@ RemoveOpClassById(Oid opclassOid)
    /*
     * First remove the pg_opclass entry itself.
     */
-   rel = heap_openr(OperatorClassRelationName, RowExclusiveLock);
+   rel = heap_open(OperatorClassRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(CLAOID,
                         ObjectIdGetDatum(opclassOid),
@@ -744,9 +744,9 @@ RemoveOpClassById(Oid opclassOid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(opclassOid));
 
-   rel = heap_openr(AccessMethodOperatorRelationName, RowExclusiveLock);
+   rel = heap_open(AccessMethodOperatorRelationId, RowExclusiveLock);
 
-   scan = systable_beginscan(rel, AccessMethodStrategyIndex, true,
+   scan = systable_beginscan(rel, AccessMethodStrategyIndexId, true,
                              SnapshotNow, 1, skey);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -763,9 +763,9 @@ RemoveOpClassById(Oid opclassOid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(opclassOid));
 
-   rel = heap_openr(AccessMethodProcedureRelationName, RowExclusiveLock);
+   rel = heap_open(AccessMethodProcedureRelationId, RowExclusiveLock);
 
-   scan = systable_beginscan(rel, AccessMethodProcedureIndex, true,
+   scan = systable_beginscan(rel, AccessMethodProcedureIndexId, true,
                              SnapshotNow, 1, skey);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -800,7 +800,7 @@ RenameOpClass(List *name, const char *access_method, const char *newname)
                 errmsg("access method \"%s\" does not exist",
                        access_method)));
 
-   rel = heap_openr(OperatorClassRelationName, RowExclusiveLock);
+   rel = heap_open(OperatorClassRelationId, RowExclusiveLock);
 
    /*
     * Look up the opclass
@@ -900,7 +900,7 @@ AlterOpClassOwner(List *name, const char *access_method, AclId newOwnerSysId)
                 errmsg("access method \"%s\" does not exist",
                        access_method)));
 
-   rel = heap_openr(OperatorClassRelationName, RowExclusiveLock);
+   rel = heap_open(OperatorClassRelationId, RowExclusiveLock);
 
    /*
     * Look up the opclass
index bd93b1ea8dcd58797921f366c84610147237f1ca..45dc1eafeaa427a58f7f60b89a0e2cc53cf3baf4 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.20 2004/12/31 21:59:41 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/operatorcmds.c,v 1.21 2005/04/14 20:03:24 tgl Exp $
  *
  * DESCRIPTION
  *   The "DefineFoo" routines take the parse tree and pick out the
@@ -35,7 +35,6 @@
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
@@ -234,7 +233,7 @@ RemoveOperator(RemoveOperStmt *stmt)
    /*
     * Do the deletion
     */
-   object.classId = get_system_catalog_relid(OperatorRelationName);
+   object.classId = OperatorRelationId;
    object.objectId = operOid;
    object.objectSubId = 0;
 
@@ -250,7 +249,7 @@ RemoveOperatorById(Oid operOid)
    Relation    relation;
    HeapTuple   tup;
 
-   relation = heap_openr(OperatorRelationName, RowExclusiveLock);
+   relation = heap_open(OperatorRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(OPEROID,
                         ObjectIdGetDatum(operOid),
@@ -277,7 +276,7 @@ AlterOperatorOwner(List *name, TypeName *typeName1, TypeName *typeName2,
    Relation    rel;
    Form_pg_operator oprForm;
 
-   rel = heap_openr(OperatorRelationName, RowExclusiveLock);
+   rel = heap_open(OperatorRelationId, RowExclusiveLock);
 
    operOid = LookupOperNameTypeNames(name, typeName1, typeName2,
                                      false);
index e94d5b4b288ed1fbb1850ff768c5864c5ec1e38a..3b90b4158be34cdf048f8fedb43afc6fe2dbbd3e 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.59 2005/04/14 01:38:16 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/proclang.c,v 1.60 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,6 @@
 #include 
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
@@ -132,7 +131,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
    values[i++] = ObjectIdGetDatum(valProcOid); /* lanvalidator */
    nulls[i] = 'n';             /* lanacl */
 
-   rel = heap_openr(LanguageRelationName, RowExclusiveLock);
+   rel = heap_open(LanguageRelationId, RowExclusiveLock);
 
    tupDesc = rel->rd_att;
    tup = heap_formtuple(tupDesc, values, nulls);
@@ -144,7 +143,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
    /*
     * Create dependencies for language
     */
-   myself.classId = RelationGetRelid(rel);
+   myself.classId = LanguageRelationId;
    myself.objectId = HeapTupleGetOid(tup);
    myself.objectSubId = 0;
 
@@ -200,7 +199,7 @@ DropProceduralLanguage(DropPLangStmt *stmt)
                (errcode(ERRCODE_UNDEFINED_OBJECT),
                 errmsg("language \"%s\" does not exist", languageName)));
 
-   object.classId = get_system_catalog_relid(LanguageRelationName);
+   object.classId = LanguageRelationId;
    object.objectId = HeapTupleGetOid(langTup);
    object.objectSubId = 0;
 
@@ -221,7 +220,7 @@ DropProceduralLanguageById(Oid langOid)
    Relation    rel;
    HeapTuple   langTup;
 
-   rel = heap_openr(LanguageRelationName, RowExclusiveLock);
+   rel = heap_open(LanguageRelationId, RowExclusiveLock);
 
    langTup = SearchSysCache(LANGOID,
                             ObjectIdGetDatum(langOid),
@@ -245,7 +244,7 @@ RenameLanguage(const char *oldname, const char *newname)
    HeapTuple   tup;
    Relation    rel;
 
-   rel = heap_openr(LanguageRelationName, RowExclusiveLock);
+   rel = heap_open(LanguageRelationId, RowExclusiveLock);
 
    tup = SearchSysCacheCopy(LANGNAME,
                             CStringGetDatum(oldname),
index f6c7a624beada5f0c67fbfc05cd033393f3c0101..678169b18a5f658127df0fcd64e012030f5cc1f1 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/schemacmds.c,v 1.28 2005/01/27 23:23:55 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/schemacmds.c,v 1.29 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,6 @@
 
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
@@ -189,7 +188,7 @@ RemoveSchema(List *names, DropBehavior behavior)
     * Do the deletion.  Objects contained in the schema are removed by
     * means of their dependency links to the schema.
     */
-   object.classId = get_system_catalog_relid(NamespaceRelationName);
+   object.classId = NamespaceRelationId;
    object.objectId = namespaceId;
    object.objectSubId = 0;
 
@@ -206,7 +205,7 @@ RemoveSchemaById(Oid schemaOid)
    Relation    relation;
    HeapTuple   tup;
 
-   relation = heap_openr(NamespaceRelationName, RowExclusiveLock);
+   relation = heap_open(NamespaceRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(NAMESPACEOID,
                         ObjectIdGetDatum(schemaOid),
@@ -232,7 +231,7 @@ RenameSchema(const char *oldname, const char *newname)
    Relation    rel;
    AclResult   aclresult;
 
-   rel = heap_openr(NamespaceRelationName, RowExclusiveLock);
+   rel = heap_open(NamespaceRelationId, RowExclusiveLock);
 
    tup = SearchSysCacheCopy(NAMESPACENAME,
                             CStringGetDatum(oldname),
@@ -287,7 +286,7 @@ AlterSchemaOwner(const char *name, AclId newOwnerSysId)
    Relation    rel;
    Form_pg_namespace nspForm;
 
-   rel = heap_openr(NamespaceRelationName, RowExclusiveLock);
+   rel = heap_open(NamespaceRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(NAMESPACENAME,
                         CStringGetDatum(name),
index 3a88ea520b81d99352a15aceb4c7789bda293c7f..446a6b9aed380f7213c4d3e9c303a43b38772531 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.154 2005/04/14 01:38:17 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.155 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -17,7 +17,6 @@
 #include "access/genam.h"
 #include "access/tuptoaster.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -1133,7 +1132,7 @@ StoreCatalogInheritance(Oid relationId, List *supers)
     * and then entered into pg_ipl.  Since that catalog doesn't exist
     * anymore, there's no need to look for indirect ancestors.)
     */
-   relation = heap_openr(InheritsRelationName, RowExclusiveLock);
+   relation = heap_open(InheritsRelationId, RowExclusiveLock);
    desc = RelationGetDescr(relation);
 
    seqNumber = 1;
@@ -1224,7 +1223,7 @@ setRelhassubclassInRelation(Oid relationId, bool relhassubclass)
     * If the tuple already has the right relhassubclass setting, we don't
     * need to update it, but we still need to issue an SI inval message.
     */
-   relationRelation = heap_openr(RelationRelationName, RowExclusiveLock);
+   relationRelation = heap_open(RelationRelationId, RowExclusiveLock);
    tuple = SearchSysCacheCopy(RELOID,
                               ObjectIdGetDatum(relationId),
                               0, 0, 0);
@@ -1347,7 +1346,7 @@ renameatt(Oid myrelid,
                            oldattname)));
    }
 
-   attrelation = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrelation = heap_open(AttributeRelationId, RowExclusiveLock);
 
    atttup = SearchSysCacheCopyAttName(myrelid, oldattname);
    if (!HeapTupleIsValid(atttup))
@@ -1514,7 +1513,7 @@ renamerel(Oid myrelid, const char *newrelname)
     * Find relation's pg_class tuple, and make sure newrelname isn't in
     * use.
     */
-   relrelation = heap_openr(RelationRelationName, RowExclusiveLock);
+   relrelation = heap_open(RelationRelationId, RowExclusiveLock);
 
    reltup = SearchSysCacheCopy(RELOID,
                                PointerGetDatum(myrelid),
@@ -1626,14 +1625,14 @@ update_ri_trigger_args(Oid relid,
    char        nulls[Natts_pg_trigger];
    char        replaces[Natts_pg_trigger];
 
-   tgrel = heap_openr(TriggerRelationName, RowExclusiveLock);
+   tgrel = heap_open(TriggerRelationId, RowExclusiveLock);
    if (fk_scan)
    {
        ScanKeyInit(&skey[0],
                    Anum_pg_trigger_tgconstrrelid,
                    BTEqualStrategyNumber, F_OIDEQ,
                    ObjectIdGetDatum(relid));
-       trigscan = systable_beginscan(tgrel, TriggerConstrRelidIndex,
+       trigscan = systable_beginscan(tgrel, TriggerConstrRelidIndexId,
                                      true, SnapshotNow,
                                      1, skey);
    }
@@ -1643,7 +1642,7 @@ update_ri_trigger_args(Oid relid,
                    Anum_pg_trigger_tgrelid,
                    BTEqualStrategyNumber, F_OIDEQ,
                    ObjectIdGetDatum(relid));
-       trigscan = systable_beginscan(tgrel, TriggerRelidNameIndex,
+       trigscan = systable_beginscan(tgrel, TriggerRelidNameIndexId,
                                      true, SnapshotNow,
                                      1, skey);
    }
@@ -2772,7 +2771,7 @@ find_composite_type_dependencies(Oid typeOid, const char *origTblName)
     * We scan pg_depend to find those things that depend on the rowtype.
     * (We assume we can ignore refobjsubid for a rowtype.)
     */
-   depRel = relation_openr(DependRelationName, AccessShareLock);
+   depRel = heap_open(DependRelationId, AccessShareLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_depend_refclassid,
@@ -2783,7 +2782,7 @@ find_composite_type_dependencies(Oid typeOid, const char *origTblName)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(typeOid));
 
-   depScan = systable_beginscan(depRel, DependReferenceIndex, true,
+   depScan = systable_beginscan(depRel, DependReferenceIndexId, true,
                                 SnapshotNow, 2, key);
 
    while (HeapTupleIsValid(depTup = systable_getnext(depScan)))
@@ -2894,7 +2893,7 @@ ATExecAddColumn(AlteredTableInfo *tab, Relation rel,
    Form_pg_type tform;
    Expr       *defval;
 
-   attrdesc = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrdesc = heap_open(AttributeRelationId, RowExclusiveLock);
 
    /*
     * Are we adding the column to a recursion child?  If so, check
@@ -2935,7 +2934,7 @@ ATExecAddColumn(AlteredTableInfo *tab, Relation rel,
        }
    }
 
-   pgclass = heap_openr(RelationRelationName, RowExclusiveLock);
+   pgclass = heap_open(RelationRelationId, RowExclusiveLock);
 
    reltup = SearchSysCacheCopy(RELOID,
                                ObjectIdGetDatum(myrelid),
@@ -3155,7 +3154,7 @@ ATExecDropNotNull(Relation rel, const char *colName)
    /*
     * lookup the attribute
     */
-   attr_rel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attr_rel = heap_open(AttributeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopyAttName(RelationGetRelid(rel), colName);
 
@@ -3248,7 +3247,7 @@ ATExecSetNotNull(AlteredTableInfo *tab, Relation rel,
    /*
     * lookup the attribute
     */
-   attr_rel = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attr_rel = heap_open(AttributeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopyAttName(RelationGetRelid(rel), colName);
 
@@ -3396,7 +3395,7 @@ ATExecSetStatistics(Relation rel, const char *colName, Node *newValue)
                        newtarget)));
    }
 
-   attrelation = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrelation = heap_open(AttributeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopyAttName(RelationGetRelid(rel), colName);
 
@@ -3457,7 +3456,7 @@ ATExecSetStorage(Relation rel, const char *colName, Node *newValue)
        newstorage = 0;         /* keep compiler quiet */
    }
 
-   attrelation = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrelation = heap_open(AttributeRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopyAttName(RelationGetRelid(rel), colName);
 
@@ -3564,7 +3563,7 @@ ATExecDropColumn(Relation rel, const char *colName,
        Relation    attr_rel;
        ListCell   *child;
 
-       attr_rel = heap_openr(AttributeRelationName, RowExclusiveLock);
+       attr_rel = heap_open(AttributeRelationId, RowExclusiveLock);
        foreach(child, children)
        {
            Oid         childrelid = lfirst_oid(child);
@@ -3652,7 +3651,7 @@ ATExecDropColumn(Relation rel, const char *colName,
        Relation    class_rel;
        Form_pg_class tuple_class;
 
-       class_rel = heap_openr(RelationRelationName, RowExclusiveLock);
+       class_rel = heap_open(RelationRelationId, RowExclusiveLock);
 
        tuple = SearchSysCacheCopy(RELOID,
                                 ObjectIdGetDatum(RelationGetRelid(rel)),
@@ -4404,10 +4403,10 @@ createForeignKeyTriggers(Relation rel, FkConstraint *fkconstraint,
    /*
     * Preset objectAddress fields
     */
-   constrobj.classId = get_system_catalog_relid(ConstraintRelationName);
+   constrobj.classId = ConstraintRelationId;
    constrobj.objectId = constrOid;
    constrobj.objectSubId = 0;
-   trigobj.classId = get_system_catalog_relid(TriggerRelationName);
+   trigobj.classId = TriggerRelationId;
    trigobj.objectSubId = 0;
 
    /* Make changes-so-far visible */
@@ -4820,7 +4819,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
    SysScanDesc scan;
    HeapTuple   depTup;
 
-   attrelation = heap_openr(AttributeRelationName, RowExclusiveLock);
+   attrelation = heap_open(AttributeRelationId, RowExclusiveLock);
 
    /* Look up the target column */
    heapTup = SearchSysCacheCopyAttName(RelationGetRelid(rel), colName);
@@ -4891,7 +4890,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
     * index that implements a constraint will not show a direct
     * dependency on the column.
     */
-   depRel = heap_openr(DependRelationName, RowExclusiveLock);
+   depRel = heap_open(DependRelationId, RowExclusiveLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_depend_refclassid,
@@ -4906,7 +4905,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
                BTEqualStrategyNumber, F_INT4EQ,
                Int32GetDatum((int32) attnum));
 
-   scan = systable_beginscan(depRel, DependReferenceIndex, true,
+   scan = systable_beginscan(depRel, DependReferenceIndexId, true,
                              SnapshotNow, 3, key);
 
    while (HeapTupleIsValid(depTup = systable_getnext(scan)))
@@ -5030,7 +5029,7 @@ ATExecAlterColumnType(AlteredTableInfo *tab, Relation rel,
                BTEqualStrategyNumber, F_INT4EQ,
                Int32GetDatum((int32) attnum));
 
-   scan = systable_beginscan(depRel, DependDependerIndex, true,
+   scan = systable_beginscan(depRel, DependDependerIndexId, true,
                              SnapshotNow, 3, key);
 
    while (HeapTupleIsValid(depTup = systable_getnext(scan)))
@@ -5136,18 +5135,17 @@ ATPostAlterTypeCleanup(List **wqueue, AlteredTableInfo *tab)
     * It should be okay to use DROP_RESTRICT here, since nothing else
     * should be depending on these objects.
     */
-   if (tab->changedConstraintOids)
-       obj.classId = get_system_catalog_relid(ConstraintRelationName);
    foreach(l, tab->changedConstraintOids)
    {
+       obj.classId = ConstraintRelationId;
        obj.objectId = lfirst_oid(l);
        obj.objectSubId = 0;
        performDeletion(&obj, DROP_RESTRICT);
    }
 
-   obj.classId = RelationRelationId;
    foreach(l, tab->changedIndexOids)
    {
+       obj.classId = RelationRelationId;
        obj.objectId = lfirst_oid(l);
        obj.objectSubId = 0;
        performDeletion(&obj, DROP_RESTRICT);
@@ -5266,7 +5264,7 @@ ATExecChangeOwner(Oid relationOid, int32 newOwnerSysId)
    target_rel = relation_open(relationOid, AccessExclusiveLock);
 
    /* Get its pg_class tuple, too */
-   class_rel = heap_openr(RelationRelationName, RowExclusiveLock);
+   class_rel = heap_open(RelationRelationId, RowExclusiveLock);
 
    tuple = SearchSysCache(RELOID,
                           ObjectIdGetDatum(relationOid),
@@ -5396,7 +5394,7 @@ change_owner_recurse_to_sequences(Oid relationOid, int32 newOwnerSysId)
     * SERIAL sequences are those having an internal dependency on one
     * of the table's columns (we don't care *which* column, exactly).
     */
-   depRel = heap_openr(DependRelationName, AccessShareLock);
+   depRel = heap_open(DependRelationId, AccessShareLock);
 
    ScanKeyInit(&key[0],
            Anum_pg_depend_refclassid,
@@ -5408,7 +5406,7 @@ change_owner_recurse_to_sequences(Oid relationOid, int32 newOwnerSysId)
            ObjectIdGetDatum(relationOid));
    /* we leave refobjsubid unspecified */
 
-   scan = systable_beginscan(depRel, DependReferenceIndex, true,
+   scan = systable_beginscan(depRel, DependReferenceIndexId, true,
                              SnapshotNow, 2, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
@@ -5587,7 +5585,7 @@ ATExecSetTableSpace(Oid tableOid, Oid newTableSpace)
    reltoastidxid = rel->rd_rel->reltoastidxid;
 
    /* Get a modifiable copy of the relation's pg_class row */
-   pg_class = heap_openr(RelationRelationName, RowExclusiveLock);
+   pg_class = heap_open(RelationRelationId, RowExclusiveLock);
 
    tuple = SearchSysCacheCopy(RELOID,
                               ObjectIdGetDatum(tableOid),
@@ -5909,7 +5907,7 @@ AlterTableCreateToastTable(Oid relOid, bool silent)
    /*
     * Store the toast table's OID in the parent relation's pg_class row
     */
-   class_rel = heap_openr(RelationRelationName, RowExclusiveLock);
+   class_rel = heap_open(RelationRelationId, RowExclusiveLock);
 
    reltup = SearchSysCacheCopy(RELOID,
                                ObjectIdGetDatum(relOid),
index f59cd84e0eb9760bf96c61338851f8cbe2bdefa4..9a18fd6e83986d1eb5728ba045bc025b6bf7bc52 100644 (file)
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.16 2005/01/27 23:23:55 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.17 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -50,7 +50,6 @@
 
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_tablespace.h"
@@ -125,7 +124,7 @@ TablespaceCreateDbspace(Oid spcNode, Oid dbNode, bool isRedo)
            Relation    rel;
 
            if (!isRedo)
-               rel = heap_openr(TableSpaceRelationName, ExclusiveLock);
+               rel = heap_open(TableSpaceRelationId, ExclusiveLock);
            else
                rel = NULL;
 
@@ -291,7 +290,7 @@ CreateTableSpace(CreateTableSpaceStmt *stmt)
     * is to lock the proposed tablename against other would-be creators.
     * The insertion will roll back if we find problems below.
     */
-   rel = heap_openr(TableSpaceRelationName, RowExclusiveLock);
+   rel = heap_open(TableSpaceRelationId, RowExclusiveLock);
 
    MemSet(nulls, ' ', Natts_pg_tablespace);
 
@@ -407,7 +406,7 @@ DropTableSpace(DropTableSpaceStmt *stmt)
     * is trying to do DROP TABLESPACE or TablespaceCreateDbspace
     * concurrently.
     */
-   rel = heap_openr(TableSpaceRelationName, ExclusiveLock);
+   rel = heap_open(TableSpaceRelationId, ExclusiveLock);
 
    /*
     * Find the target tuple
@@ -736,7 +735,7 @@ RenameTableSpace(const char *oldname, const char *newname)
    Form_pg_tablespace newform;
 
    /* Search pg_tablespace */
-   rel = heap_openr(TableSpaceRelationName, RowExclusiveLock);
+   rel = heap_open(TableSpaceRelationId, RowExclusiveLock);
 
    ScanKeyInit(&entry[0],
                Anum_pg_tablespace_spcname,
@@ -803,7 +802,7 @@ AlterTableSpaceOwner(const char *name, AclId newOwnerSysId)
    HeapTuple   tup;
 
    /* Search pg_tablespace */
-   rel = heap_openr(TableSpaceRelationName, RowExclusiveLock);
+   rel = heap_open(TableSpaceRelationId, RowExclusiveLock);
 
    ScanKeyInit(&entry[0],
                Anum_pg_tablespace_spcname,
@@ -952,7 +951,7 @@ get_tablespace_oid(const char *tablespacename)
    ScanKeyData entry[1];
 
    /* Search pg_tablespace */
-   rel = heap_openr(TableSpaceRelationName, AccessShareLock);
+   rel = heap_open(TableSpaceRelationId, AccessShareLock);
 
    ScanKeyInit(&entry[0],
                Anum_pg_tablespace_spcname,
@@ -987,7 +986,7 @@ get_tablespace_name(Oid spc_oid)
    ScanKeyData entry[1];
 
    /* Search pg_tablespace */
-   rel = heap_openr(TableSpaceRelationName, AccessShareLock);
+   rel = heap_open(TableSpaceRelationId, AccessShareLock);
 
    ScanKeyInit(&entry[0],
                ObjectIdAttributeNumber,
index 851aed3b6d8cb669b9adc2cafe2ff1dca187463c..c298cba3047e68e1d088d549803ae472c89995dd 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.185 2005/04/14 01:38:17 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/trigger.c,v 1.186 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -17,7 +17,6 @@
 #include "access/heapam.h"
 #include "access/xact.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
@@ -252,12 +251,12 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
     * NOTE that this is cool only because we have AccessExclusiveLock on the
     * relation, so the trigger set won't be changing underneath us.
     */
-   tgrel = heap_openr(TriggerRelationName, RowExclusiveLock);
+   tgrel = heap_open(TriggerRelationId, RowExclusiveLock);
    ScanKeyInit(&key,
                Anum_pg_trigger_tgrelid,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(rel)));
-   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndex, true,
+   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true,
                                SnapshotNow, 1, &key);
    while (HeapTupleIsValid(tuple = systable_getnext(tgscan)))
    {
@@ -374,7 +373,7 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
 
    CatalogUpdateIndexes(tgrel, tuple);
 
-   myself.classId = RelationGetRelid(tgrel);
+   myself.classId = TriggerRelationId;
    myself.objectId = trigoid;
    myself.objectSubId = 0;
 
@@ -389,7 +388,7 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
     * backends (and this one too!) are sent SI message to make them
     * rebuild relcache entries.
     */
-   pgrel = heap_openr(RelationRelationName, RowExclusiveLock);
+   pgrel = heap_open(RelationRelationId, RowExclusiveLock);
    tuple = SearchSysCacheCopy(RELOID,
                               ObjectIdGetDatum(RelationGetRelid(rel)),
                               0, 0, 0);
@@ -463,7 +462,7 @@ DropTrigger(Oid relid, const char *trigname, DropBehavior behavior)
    /*
     * Find the trigger, verify permissions, set up object address
     */
-   tgrel = heap_openr(TriggerRelationName, AccessShareLock);
+   tgrel = heap_open(TriggerRelationId, AccessShareLock);
 
    ScanKeyInit(&skey[0],
                Anum_pg_trigger_tgrelid,
@@ -475,7 +474,7 @@ DropTrigger(Oid relid, const char *trigname, DropBehavior behavior)
                BTEqualStrategyNumber, F_NAMEEQ,
                CStringGetDatum(trigname));
 
-   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndex, true,
+   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true,
                                SnapshotNow, 2, skey);
 
    tup = systable_getnext(tgscan);
@@ -490,7 +489,7 @@ DropTrigger(Oid relid, const char *trigname, DropBehavior behavior)
        aclcheck_error(ACLCHECK_NOT_OWNER, ACL_KIND_CLASS,
                       get_rel_name(relid));
 
-   object.classId = RelationGetRelid(tgrel);
+   object.classId = TriggerRelationId;
    object.objectId = HeapTupleGetOid(tup);
    object.objectSubId = 0;
 
@@ -519,7 +518,7 @@ RemoveTriggerById(Oid trigOid)
    HeapTuple   tuple;
    Form_pg_class classForm;
 
-   tgrel = heap_openr(TriggerRelationName, RowExclusiveLock);
+   tgrel = heap_open(TriggerRelationId, RowExclusiveLock);
 
    /*
     * Find the trigger to delete.
@@ -529,7 +528,7 @@ RemoveTriggerById(Oid trigOid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(trigOid));
 
-   tgscan = systable_beginscan(tgrel, TriggerOidIndex, true,
+   tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true,
                                SnapshotNow, 1, skey);
 
    tup = systable_getnext(tgscan);
@@ -572,7 +571,7 @@ RemoveTriggerById(Oid trigOid)
     * so no one else is creating/deleting triggers on this rel at the
     * same time.
     */
-   pgrel = heap_openr(RelationRelationName, RowExclusiveLock);
+   pgrel = heap_open(RelationRelationId, RowExclusiveLock);
    tuple = SearchSysCacheCopy(RELOID,
                               ObjectIdGetDatum(relid),
                               0, 0, 0);
@@ -636,7 +635,7 @@ renametrig(Oid relid,
     * NOTE that this is cool only because we have AccessExclusiveLock on the
     * relation, so the trigger set won't be changing underneath us.
     */
-   tgrel = heap_openr(TriggerRelationName, RowExclusiveLock);
+   tgrel = heap_open(TriggerRelationId, RowExclusiveLock);
 
    /*
     * First pass -- look for name conflict
@@ -649,7 +648,7 @@ renametrig(Oid relid,
                Anum_pg_trigger_tgname,
                BTEqualStrategyNumber, F_NAMEEQ,
                PointerGetDatum(newname));
-   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndex, true,
+   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true,
                                SnapshotNow, 2, key);
    if (HeapTupleIsValid(tuple = systable_getnext(tgscan)))
        ereport(ERROR,
@@ -669,7 +668,7 @@ renametrig(Oid relid,
                Anum_pg_trigger_tgname,
                BTEqualStrategyNumber, F_NAMEEQ,
                PointerGetDatum(oldname));
-   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndex, true,
+   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true,
                                SnapshotNow, 2, key);
    if (HeapTupleIsValid(tuple = systable_getnext(tgscan)))
    {
@@ -739,7 +738,7 @@ RelationBuildTriggers(Relation relation)
    triggers = (Trigger *) palloc(ntrigs * sizeof(Trigger));
 
    /*
-    * Note: since we scan the triggers using TriggerRelidNameIndex, we
+    * Note: since we scan the triggers using TriggerRelidNameIndexId, we
     * will be reading the triggers in name order, except possibly during
     * emergency-recovery operations (ie, IsIgnoringSystemIndexes). This
     * in turn ensures that triggers will be fired in name order.
@@ -749,8 +748,8 @@ RelationBuildTriggers(Relation relation)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(relation)));
 
-   tgrel = heap_openr(TriggerRelationName, AccessShareLock);
-   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndex, true,
+   tgrel = heap_open(TriggerRelationId, AccessShareLock);
+   tgscan = systable_beginscan(tgrel, TriggerRelidNameIndexId, true,
                                SnapshotNow, 1, &skey);
 
    while (HeapTupleIsValid(htup = systable_getnext(tgscan)))
@@ -2802,7 +2801,7 @@ AfterTriggerSetState(ConstraintsSetStmt *stmt)
         * First lookup all trigger Oid's for the constraint names.
         * ----------
         */
-       tgrel = heap_openr(TriggerRelationName, AccessShareLock);
+       tgrel = heap_open(TriggerRelationId, AccessShareLock);
 
        foreach(l, stmt->constraints)
        {
@@ -2828,7 +2827,7 @@ AfterTriggerSetState(ConstraintsSetStmt *stmt)
                        BTEqualStrategyNumber, F_NAMEEQ,
                        PointerGetDatum(cname));
 
-           tgscan = systable_beginscan(tgrel, TriggerConstrNameIndex, true,
+           tgscan = systable_beginscan(tgrel, TriggerConstrNameIndexId, true,
                                        SnapshotNow, 1, &skey);
 
            /*
index 0af04f86f5427abacf30c5fa600746cb0a0c5bd1..1ec9621000ee234c40a712bb0ef6167f0684bbb9 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.69 2005/04/14 01:38:17 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.70 2005/04/14 20:03:24 tgl Exp $
  *
  * DESCRIPTION
  *   The "DefineFoo" routines take the parse tree and pick out the
@@ -33,7 +33,6 @@
 
 #include "access/heapam.h"
 #include "access/genam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/indexing.h"
@@ -458,7 +457,7 @@ RemoveTypeById(Oid typeOid)
    Relation    relation;
    HeapTuple   tup;
 
-   relation = heap_openr(TypeRelationName, RowExclusiveLock);
+   relation = heap_open(TypeRelationId, RowExclusiveLock);
 
    tup = SearchSysCache(TYPEOID,
                         ObjectIdGetDatum(typeOid),
@@ -1143,7 +1142,7 @@ AlterDomainDefault(List *names, Node *defaultRaw)
    typename->arrayBounds = NIL;
 
    /* Lock the domain in the type table */
-   rel = heap_openr(TypeRelationName, RowExclusiveLock);
+   rel = heap_open(TypeRelationId, RowExclusiveLock);
 
    /* Use LookupTypeName here so that shell types can be removed. */
    domainoid = LookupTypeName(typename);
@@ -1265,7 +1264,7 @@ AlterDomainNotNull(List *names, bool notNull)
    typename->arrayBounds = NIL;
 
    /* Lock the type table */
-   typrel = heap_openr(TypeRelationName, RowExclusiveLock);
+   typrel = heap_open(TypeRelationId, RowExclusiveLock);
 
    /* Use LookupTypeName here so that shell types can be found (why?). */
    domainoid = LookupTypeName(typename);
@@ -1377,7 +1376,7 @@ AlterDomainDropConstraint(List *names, const char *constrName, DropBehavior beha
    typename->arrayBounds = NIL;
 
    /* Lock the type table */
-   rel = heap_openr(TypeRelationName, RowExclusiveLock);
+   rel = heap_open(TypeRelationId, RowExclusiveLock);
 
    /* Use LookupTypeName here so that shell types can be removed. */
    domainoid = LookupTypeName(typename);
@@ -1397,7 +1396,7 @@ AlterDomainDropConstraint(List *names, const char *constrName, DropBehavior beha
    domainOwnerCheck(tup, typename);
 
    /* Grab an appropriate lock on the pg_constraint relation */
-   conrel = heap_openr(ConstraintRelationName, RowExclusiveLock);
+   conrel = heap_open(ConstraintRelationId, RowExclusiveLock);
 
    /* Use the index to scan only constraints of the target relation */
    ScanKeyInit(&key[0],
@@ -1405,7 +1404,7 @@ AlterDomainDropConstraint(List *names, const char *constrName, DropBehavior beha
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(HeapTupleGetOid(tup)));
 
-   conscan = systable_beginscan(conrel, ConstraintTypidIndex, true,
+   conscan = systable_beginscan(conrel, ConstraintTypidIndexId, true,
                                 SnapshotNow, 1, key);
 
    typTup = (Form_pg_type) GETSTRUCT(tup);
@@ -1421,7 +1420,7 @@ AlterDomainDropConstraint(List *names, const char *constrName, DropBehavior beha
        {
            ObjectAddress conobj;
 
-           conobj.classId = RelationGetRelid(conrel);
+           conobj.classId = ConstraintRelationId;
            conobj.objectId = HeapTupleGetOid(contup);
            conobj.objectSubId = 0;
 
@@ -1464,7 +1463,7 @@ AlterDomainAddConstraint(List *names, Node *newConstraint)
    typename->arrayBounds = NIL;
 
    /* Lock the type table */
-   typrel = heap_openr(TypeRelationName, RowExclusiveLock);
+   typrel = heap_open(TypeRelationId, RowExclusiveLock);
 
    /* Use LookupTypeName here so that shell types can be found (why?). */
    domainoid = LookupTypeName(typename);
@@ -1650,7 +1649,7 @@ get_rels_with_domain(Oid domainOid, LOCKMODE lockmode)
     * We scan pg_depend to find those things that depend on the domain.
     * (We assume we can ignore refobjsubid for a domain.)
     */
-   depRel = relation_openr(DependRelationName, AccessShareLock);
+   depRel = heap_open(DependRelationId, AccessShareLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_depend_refclassid,
@@ -1661,7 +1660,7 @@ get_rels_with_domain(Oid domainOid, LOCKMODE lockmode)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(domainOid));
 
-   depScan = systable_beginscan(depRel, DependReferenceIndex, true,
+   depScan = systable_beginscan(depRel, DependReferenceIndexId, true,
                                 SnapshotNow, 2, key);
 
    while (HeapTupleIsValid(depTup = systable_getnext(depScan)))
@@ -1927,7 +1926,7 @@ GetDomainConstraints(Oid typeOid)
    bool        notNull = false;
    Relation    conRel;
 
-   conRel = heap_openr(ConstraintRelationName, AccessShareLock);
+   conRel = heap_open(ConstraintRelationId, AccessShareLock);
 
    for (;;)
    {
@@ -1961,7 +1960,7 @@ GetDomainConstraints(Oid typeOid)
                    BTEqualStrategyNumber, F_OIDEQ,
                    ObjectIdGetDatum(typeOid));
 
-       scan = systable_beginscan(conRel, ConstraintTypidIndex, true,
+       scan = systable_beginscan(conRel, ConstraintTypidIndexId, true,
                                  SnapshotNow, 1, key);
 
        while (HeapTupleIsValid(conTup = systable_getnext(scan)))
@@ -2052,7 +2051,7 @@ AlterTypeOwner(List *names, AclId newOwnerSysId)
    typename->arrayBounds = NIL;
 
    /* Lock the type table */
-   rel = heap_openr(TypeRelationName, RowExclusiveLock);
+   rel = heap_open(TypeRelationId, RowExclusiveLock);
 
    /* Use LookupTypeName here so that shell types can be processed (why?) */
    typeOid = LookupTypeName(typename);
index 12dd14ff1b97e82332ce5b1f78c577e31809de38..3c70c579785e6fb27b905313e6cfe4dd3da2fa77 100644 (file)
@@ -6,14 +6,13 @@
  * 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.150 2005/04/14 01:38:17 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.151 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_group.h"
@@ -180,7 +179,7 @@ CreateUser(CreateUserStmt *stmt)
     * to be sure of what the next usesysid should be, and we need to
     * protect our eventual update of the flat password file.
     */
-   pg_shadow_rel = heap_openr(ShadowRelationName, ExclusiveLock);
+   pg_shadow_rel = heap_open(ShadowRelationId, ExclusiveLock);
    pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
 
    scan = heap_beginscan(pg_shadow_rel, SnapshotNow, 0, NULL);
@@ -401,7 +400,7 @@ AlterUser(AlterUserStmt *stmt)
     * secure exclusive lock to protect our update of the flat password
     * file.
     */
-   pg_shadow_rel = heap_openr(ShadowRelationName, ExclusiveLock);
+   pg_shadow_rel = heap_open(ShadowRelationId, ExclusiveLock);
    pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
 
    tuple = SearchSysCache(SHADOWNAME,
@@ -516,7 +515,7 @@ AlterUserSet(AlterUserSetStmt *stmt)
     * RowExclusiveLock is sufficient, because we don't need to update the
     * flat password file.
     */
-   rel = heap_openr(ShadowRelationName, RowExclusiveLock);
+   rel = heap_open(ShadowRelationId, RowExclusiveLock);
    oldtuple = SearchSysCache(SHADOWNAME,
                              PointerGetDatum(stmt->user),
                              0, 0, 0);
@@ -594,7 +593,7 @@ DropUser(DropUserStmt *stmt)
     * deleted.  Note we secure exclusive lock, because we need to protect
     * our update of the flat password file.
     */
-   pg_shadow_rel = heap_openr(ShadowRelationName, ExclusiveLock);
+   pg_shadow_rel = heap_open(ShadowRelationId, ExclusiveLock);
    pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
 
    foreach(item, stmt->users)
@@ -635,7 +634,7 @@ DropUser(DropUserStmt *stmt)
         * don't read the manual, it doesn't seem to be the behaviour one
         * would expect either.) -- petere 2000/01/14)
         */
-       pg_rel = heap_openr(DatabaseRelationName, AccessShareLock);
+       pg_rel = heap_open(DatabaseRelationId, AccessShareLock);
        pg_dsc = RelationGetDescr(pg_rel);
 
        ScanKeyInit(&scankey,
@@ -677,7 +676,7 @@ DropUser(DropUserStmt *stmt)
         *
         * try calling alter group drop user for every group
         */
-       pg_rel = heap_openr(GroupRelationName, ExclusiveLock);
+       pg_rel = heap_open(GroupRelationId, ExclusiveLock);
        pg_dsc = RelationGetDescr(pg_rel);
        scan = heap_beginscan(pg_rel, SnapshotNow, 0, NULL);
        while ((tmp_tuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
@@ -734,7 +733,7 @@ RenameUser(const char *oldname, const char *newname)
    int         i;
 
    /* ExclusiveLock because we need to update the password file */
-   rel = heap_openr(ShadowRelationName, ExclusiveLock);
+   rel = heap_open(ShadowRelationId, ExclusiveLock);
    dsc = RelationGetDescr(rel);
 
    oldtuple = SearchSysCache(SHADOWNAME,
@@ -819,13 +818,17 @@ CheckPgUserAclNotNull(void)
        elog(ERROR, "cache lookup failed for relation %u", ShadowRelationId);
 
    if (heap_attisnull(htup, Anum_pg_class_relacl))
+   {
+       Form_pg_class classForm = (Form_pg_class) GETSTRUCT(htup);
+
        ereport(ERROR,
                (errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
-       errmsg("before using passwords you must revoke privileges on %s",
-              ShadowRelationName),
+                errmsg("before using passwords you must revoke privileges on %s",
+                       NameStr(classForm->relname)),
                 errdetail("This restriction is to prevent unprivileged users from reading the passwords."),
                 errhint("Try REVOKE ALL ON \"%s\" FROM PUBLIC.",
-                        ShadowRelationName)));
+                        NameStr(classForm->relname))));
+   }
 
    ReleaseSysCache(htup);
 }
@@ -914,7 +917,7 @@ CreateGroup(CreateGroupStmt *stmt)
     * to be sure of what the next grosysid should be, and we need to
     * protect our eventual update of the flat group file.
     */
-   pg_group_rel = heap_openr(GroupRelationName, ExclusiveLock);
+   pg_group_rel = heap_open(GroupRelationId, ExclusiveLock);
    pg_group_dsc = RelationGetDescr(pg_group_rel);
 
    scan = heap_beginscan(pg_group_rel, SnapshotNow, 0, NULL);
@@ -1032,7 +1035,7 @@ AlterGroup(AlterGroupStmt *stmt, const char *tag)
    /*
     * Secure exclusive lock to protect our update of the flat group file.
     */
-   pg_group_rel = heap_openr(GroupRelationName, ExclusiveLock);
+   pg_group_rel = heap_open(GroupRelationId, ExclusiveLock);
    pg_group_dsc = RelationGetDescr(pg_group_rel);
 
    /*
@@ -1271,7 +1274,7 @@ DropGroup(DropGroupStmt *stmt)
    /*
     * Secure exclusive lock to protect our update of the flat group file.
     */
-   pg_group_rel = heap_openr(GroupRelationName, ExclusiveLock);
+   pg_group_rel = heap_open(GroupRelationId, ExclusiveLock);
 
    /* Find and delete the group. */
 
@@ -1308,7 +1311,7 @@ RenameGroup(const char *oldname, const char *newname)
    Relation    rel;
 
    /* ExclusiveLock because we need to update the flat group file */
-   rel = heap_openr(GroupRelationName, ExclusiveLock);
+   rel = heap_open(GroupRelationId, ExclusiveLock);
 
    tup = SearchSysCacheCopy(GRONAME,
                             CStringGetDatum(oldname),
index b2b39c5a58c03d81b1e090a7fee65ac8cb39b008..f52e9ecb3c2a2843f32ce4702ee19a31bc6bf920 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.305 2005/03/20 22:00:52 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.306 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -28,7 +28,6 @@
 #include "access/subtrans.h"
 #include "access/xlog.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_index.h"
@@ -542,7 +541,7 @@ get_rel_oids(const RangeVar *vacrel, const char *stmttype)
                    BTEqualStrategyNumber, F_CHAREQ,
                    CharGetDatum(RELKIND_RELATION));
 
-       pgclass = heap_openr(RelationRelationName, AccessShareLock);
+       pgclass = heap_open(RelationRelationId, AccessShareLock);
 
        scan = heap_beginscan(pgclass, SnapshotNow, 1, &key);
 
@@ -642,7 +641,7 @@ vac_update_relstats(Oid relid, BlockNumber num_pages, double num_tuples,
    /*
     * update number of tuples and number of pages in pg_class
     */
-   rd = heap_openr(RelationRelationName, RowExclusiveLock);
+   rd = heap_open(RelationRelationId, RowExclusiveLock);
 
    ctup = SearchSysCache(RELOID,
                          ObjectIdGetDatum(relid),
@@ -718,7 +717,7 @@ vac_update_dbstats(Oid dbid,
    HeapTuple   tuple;
    Form_pg_database dbform;
 
-   relation = heap_openr(DatabaseRelationName, RowExclusiveLock);
+   relation = heap_open(DatabaseRelationId, RowExclusiveLock);
 
    /* Must use a heap scan, since there's no syscache for pg_database */
    ScanKeyInit(&entry[0],
@@ -792,7 +791,7 @@ vac_truncate_clog(TransactionId vacuumXID, TransactionId frozenXID)
     * Note: the "already wrapped" cases should now be impossible due to the
     * defenses in GetNewTransactionId, but we keep them anyway.
     */
-   relation = heap_openr(DatabaseRelationName, AccessShareLock);
+   relation = heap_open(DatabaseRelationId, AccessShareLock);
 
    scan = heap_beginscan(relation, SnapshotNow, 0, NULL);
 
index 820c04291329b070c0278ef070ed2d8bba2d7c13..040e9dcaef08691b0d8c8c69be60784b30c3dcc5 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.120 2005/04/06 16:34:04 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.121 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -40,7 +40,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/index.h"
 #include "catalog/catalog.h"
 #include "catalog/pg_index.h"
index e01a1d76a597befded661a356ee629cc7df202c6..b908f320a5fbb9a2fc71c4c1e259757dd36c04c7 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.104 2005/04/06 16:34:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.105 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/pg_amop.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_index.h"
@@ -509,7 +508,7 @@ find_inheritance_children(Oid inhparent)
                Anum_pg_inherits_inhparent,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(inhparent));
-   relation = heap_openr(InheritsRelationName, AccessShareLock);
+   relation = heap_open(InheritsRelationId, AccessShareLock);
    scan = heap_beginscan(relation, SnapshotNow, 1, key);
    while ((inheritsTuple = heap_getnext(scan, ForwardScanDirection)) != NULL)
    {
index 03f53db2c961468dd26dc4244d0771bde2ad6881..3cb64dc8249f0250aad1efc002e7f7e200f313b9 100644 (file)
@@ -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/parser/analyze.c,v 1.319 2005/04/13 16:50:54 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/analyze.c,v 1.320 2005/04/14 20:03:24 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -14,7 +14,6 @@
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
 #include "catalog/namespace.h"
index 64a325f10b773e395393c33eeb971a91e923c434..dd91b4b4d33f8b183130a7c28490a0ffdfc0e2a3 100644 (file)
@@ -8,14 +8,13 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/parser/parse_func.c,v 1.177 2005/03/31 22:46:13 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/parser/parse_func.c,v 1.178 2005/04/14 20:03:25 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/pg_inherits.h"
 #include "catalog/pg_proc.h"
 #include "funcapi.h"
@@ -922,7 +921,7 @@ find_inheritors(Oid relid, Oid **supervec)
    queue = list_make1_oid(relid);
    visited = NIL;
 
-   inhrel = heap_openr(InheritsRelationName, AccessShareLock);
+   inhrel = heap_open(InheritsRelationId, AccessShareLock);
 
    /*
     * Use queue to do a breadth-first traversal of the inheritance graph
index 08042ea6cf5c24ed9ce6a45882acc7235c69eb98..ce4dc45f3d9cb5685edee078f924762b7d63e01a 100644 (file)
@@ -13,7 +13,7 @@
  *
  * Copyright (c) 2001-2005, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.90 2005/04/08 00:55:07 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.91 2005/04/14 20:03:25 tgl Exp $
  * ----------
  */
 #include "postgres.h"
@@ -33,7 +33,6 @@
 
 #include "access/heapam.h"
 #include "access/xact.h"
-#include "catalog/catname.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_shadow.h"
 #include "libpq/libpq.h"
@@ -865,7 +864,7 @@ pgstat_vacuum_tabstat(void)
    dbidused = 0;
    dbidlist = (Oid *) palloc(sizeof(Oid) * dbidalloc);
 
-   dbrel = heap_openr(DatabaseRelationName, AccessShareLock);
+   dbrel = heap_open(DatabaseRelationId, AccessShareLock);
    dbscan = heap_beginscan(dbrel, SnapshotNow, 0, NULL);
    while ((dbtup = heap_getnext(dbscan, ForwardScanDirection)) != NULL)
    {
index 8c94ab3175ae64acbf0ee4c16ee560f1551b9373..c793cabd2a9afc107c6045e6a2bec39c88c4d6a6 100644 (file)
@@ -8,14 +8,13 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.103 2005/04/14 01:38:17 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.104 2005/04/14 20:03:25 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_rewrite.h"
@@ -87,7 +86,7 @@ InsertRule(char *rulname,
    /*
     * Ready to store new pg_rewrite tuple
     */
-   pg_rewrite_desc = heap_openr(RewriteRelationName, RowExclusiveLock);
+   pg_rewrite_desc = heap_open(RewriteRelationId, RowExclusiveLock);
 
    /*
     * Check to see if we are replacing an existing tuple
@@ -139,8 +138,7 @@ InsertRule(char *rulname,
 
    /* If replacing, get rid of old dependencies and make new ones */
    if (is_update)
-       deleteDependencyRecordsFor(RelationGetRelid(pg_rewrite_desc),
-                                  rewriteObjectId);
+       deleteDependencyRecordsFor(RewriteRelationId, rewriteObjectId);
 
    /*
     * Install dependency on rule's relation to ensure it will go away on
@@ -570,7 +568,7 @@ RenameRewriteRule(Oid owningRel, const char *oldName,
    Relation    pg_rewrite_desc;
    HeapTuple   ruletup;
 
-   pg_rewrite_desc = heap_openr(RewriteRelationName, RowExclusiveLock);
+   pg_rewrite_desc = heap_open(RewriteRelationId, RowExclusiveLock);
 
    ruletup = SearchSysCacheCopy(RULERELNAME,
                                 ObjectIdGetDatum(owningRel),
index 033953702a2f5dc3299b9b57c92b7f6be11c5005..f06d23cc3223ba4df75aa220efdee761345ec005 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteRemove.c,v 1.61 2004/12/31 22:00:46 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteRemove.c,v 1.62 2005/04/14 20:03:25 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -16,7 +16,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_rewrite.h"
@@ -72,7 +71,7 @@ RemoveRewriteRule(Oid owningRel, const char *ruleName, DropBehavior behavior)
    /*
     * Do the deletion
     */
-   object.classId = get_system_catalog_relid(RewriteRelationName);
+   object.classId = RewriteRelationId;
    object.objectId = HeapTupleGetOid(tuple);
    object.objectSubId = 0;
 
@@ -99,7 +98,7 @@ RemoveRewriteRuleById(Oid ruleOid)
    /*
     * Open the pg_rewrite relation.
     */
-   RewriteRelation = heap_openr(RewriteRelationName, RowExclusiveLock);
+   RewriteRelation = heap_open(RewriteRelationId, RowExclusiveLock);
 
    /*
     * Find the tuple for the target rule.
@@ -109,7 +108,7 @@ RemoveRewriteRuleById(Oid ruleOid)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(ruleOid));
 
-   rcscan = systable_beginscan(RewriteRelation, RewriteOidIndex, true,
+   rcscan = systable_beginscan(RewriteRelation, RewriteOidIndexId, true,
                                SnapshotNow, 1, skey);
 
    tuple = systable_getnext(rcscan);
index 67e34916e705b9458853afb5b67aba00b2f434a2..8fd3bba7cde4e750406417c9a2ae3b355b38b26b 100644 (file)
@@ -8,14 +8,13 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteSupport.c,v 1.60 2004/12/31 22:00:46 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/rewrite/rewriteSupport.c,v 1.61 2005/04/14 20:03:25 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #include "postgres.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "rewrite/rewriteSupport.h"
 #include "utils/inval.h"
@@ -60,7 +59,7 @@ SetRelationRuleStatus(Oid relationId, bool relHasRules,
     * Find the tuple to update in pg_class, using syscache for the
     * lookup.
     */
-   relationRelation = heap_openr(RelationRelationName, RowExclusiveLock);
+   relationRelation = heap_open(RelationRelationId, RowExclusiveLock);
    tuple = SearchSysCacheCopy(RELOID,
                               ObjectIdGetDatum(relationId),
                               0, 0, 0);
index 34129265796cdccb8e0a7e67a5ca1e8d77bb7fd9..299e0756d1f92b8909c73652af59a8b80aed7123 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.109 2005/01/27 23:24:09 neilc Exp $
+ *   $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.110 2005/04/14 20:03:25 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -19,7 +19,6 @@
 #include "access/heapam.h"
 #include "access/tuptoaster.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_largeobject.h"
 #include "commands/comment.h"
@@ -60,9 +59,9 @@ open_lo_relation(void)
 
        /* Use RowExclusiveLock since we might either read or write */
        if (lo_heap_r == NULL)
-           lo_heap_r = heap_openr(LargeObjectRelationName, RowExclusiveLock);
+           lo_heap_r = heap_open(LargeObjectRelationId, RowExclusiveLock);
        if (lo_index_r == NULL)
-           lo_index_r = index_openr(LargeObjectLOidPNIndex);
+           lo_index_r = index_open(LargeObjectLOidPNIndexId);
    }
    PG_CATCH();
    {
@@ -230,15 +229,10 @@ inv_close(LargeObjectDesc *obj_desc)
 int
 inv_drop(Oid lobjId)
 {
-   Oid         classoid;
-
    LargeObjectDrop(lobjId);
 
-   /* pg_largeobject doesn't have a hard-coded OID, so must look it up */
-   classoid = get_system_catalog_relid(LargeObjectRelationName);
-
    /* Delete any comments on the large object */
-   DeleteComments(lobjId, classoid, 0);
+   DeleteComments(lobjId, LargeObjectRelationId, 0);
 
    /*
     * Advance command counter so that tuple removal will be seen by later
index 42fddeb8d2292fde6201061bf744271ffb78496f..3f150010273358f8a60e7ec86e0deb2f73e7d110 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/regproc.c,v 1.93 2005/03/29 00:17:08 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/regproc.c,v 1.94 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -23,7 +23,6 @@
 
 #include "access/genam.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_operator.h"
@@ -97,8 +96,8 @@ regprocin(PG_FUNCTION_ARGS)
                    BTEqualStrategyNumber, F_NAMEEQ,
                    CStringGetDatum(pro_name_or_oid));
 
-       hdesc = heap_openr(ProcedureRelationName, AccessShareLock);
-       sysscan = systable_beginscan(hdesc, ProcedureNameArgsNspIndex, true,
+       hdesc = heap_open(ProcedureRelationId, AccessShareLock);
+       sysscan = systable_beginscan(hdesc, ProcedureNameArgsNspIndexId, true,
                                     SnapshotNow, 1, skey);
 
        while (HeapTupleIsValid(tuple = systable_getnext(sysscan)))
@@ -447,8 +446,8 @@ regoperin(PG_FUNCTION_ARGS)
                    BTEqualStrategyNumber, F_NAMEEQ,
                    CStringGetDatum(opr_name_or_oid));
 
-       hdesc = heap_openr(OperatorRelationName, AccessShareLock);
-       sysscan = systable_beginscan(hdesc, OperatorNameNspIndex, true,
+       hdesc = heap_open(OperatorRelationId, AccessShareLock);
+       sysscan = systable_beginscan(hdesc, OperatorNameNspIndexId, true,
                                     SnapshotNow, 1, skey);
 
        while (HeapTupleIsValid(tuple = systable_getnext(sysscan)))
@@ -825,8 +824,8 @@ regclassin(PG_FUNCTION_ARGS)
                    BTEqualStrategyNumber, F_NAMEEQ,
                    CStringGetDatum(class_name_or_oid));
 
-       hdesc = heap_openr(RelationRelationName, AccessShareLock);
-       sysscan = systable_beginscan(hdesc, ClassNameNspIndex, true,
+       hdesc = heap_open(RelationRelationId, AccessShareLock);
+       sysscan = systable_beginscan(hdesc, ClassNameNspIndexId, true,
                                     SnapshotNow, 1, skey);
 
        if (HeapTupleIsValid(tuple = systable_getnext(sysscan)))
@@ -991,8 +990,8 @@ regtypein(PG_FUNCTION_ARGS)
                    BTEqualStrategyNumber, F_NAMEEQ,
                    CStringGetDatum(typ_name_or_oid));
 
-       hdesc = heap_openr(TypeRelationName, AccessShareLock);
-       sysscan = systable_beginscan(hdesc, TypeNameNspIndex, true,
+       hdesc = heap_open(TypeRelationId, AccessShareLock);
+       sysscan = systable_beginscan(hdesc, TypeNameNspIndexId, true,
                                     SnapshotNow, 1, skey);
 
        if (HeapTupleIsValid(tuple = systable_getnext(sysscan)))
index af840cdf971af4d160e36d50232102beb0713357..37f3687688ced4da02f4a59f267f441fd878a5c4 100644 (file)
@@ -3,7 +3,7 @@
  *             back to source text
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.192 2005/04/14 01:38:19 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.193 2005/04/14 20:03:26 tgl Exp $
  *
  *   This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -41,7 +41,6 @@
 #include 
 
 #include "access/genam.h"
-#include "catalog/catname.h"
 #include "catalog/dependency.h"
 #include "catalog/heap.h"
 #include "catalog/index.h"
@@ -469,14 +468,14 @@ pg_get_triggerdef(PG_FUNCTION_ARGS)
    /*
     * Fetch the pg_trigger tuple by the Oid of the trigger
     */
-   tgrel = heap_openr(TriggerRelationName, AccessShareLock);
+   tgrel = heap_open(TriggerRelationId, AccessShareLock);
 
    ScanKeyInit(&skey[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(trigid));
 
-   tgscan = systable_beginscan(tgrel, TriggerOidIndex, true,
+   tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true,
                                SnapshotNow, 1, skey);
 
    ht_trig = systable_getnext(tgscan);
@@ -867,14 +866,14 @@ pg_get_constraintdef_worker(Oid constraintId, bool fullCommand,
     * Fetch the pg_constraint row.  There's no syscache for pg_constraint
     * so we must do it the hard way.
     */
-   conDesc = heap_openr(ConstraintRelationName, AccessShareLock);
+   conDesc = heap_open(ConstraintRelationId, AccessShareLock);
 
    ScanKeyInit(&skey[0],
                ObjectIdAttributeNumber,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(constraintId));
 
-   conscan = systable_beginscan(conDesc, ConstraintOidIndex, true,
+   conscan = systable_beginscan(conDesc, ConstraintOidIndexId, true,
                                 SnapshotNow, 1, skey);
 
    tup = systable_getnext(conscan);
@@ -1269,7 +1268,7 @@ pg_get_serial_sequence(PG_FUNCTION_ARGS)
                        column, tablerv->relname)));
 
    /* Search the dependency table for the dependent sequence */
-   depRel = heap_openr(DependRelationName, AccessShareLock);
+   depRel = heap_open(DependRelationId, AccessShareLock);
 
    ScanKeyInit(&key[0],
                Anum_pg_depend_refclassid,
@@ -1284,7 +1283,7 @@ pg_get_serial_sequence(PG_FUNCTION_ARGS)
                BTEqualStrategyNumber, F_INT4EQ,
                Int32GetDatum(attnum));
 
-   scan = systable_beginscan(depRel, DependReferenceIndex, true,
+   scan = systable_beginscan(depRel, DependReferenceIndexId, true,
                              SnapshotNow, 3, key);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
index c35890bfdc2d08a71b8116eaef65672b48a137c9..a36cdb76f7a46b5b4a3d41615da0cd881d77e866 100644 (file)
@@ -15,7 +15,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.176 2005/04/01 20:31:50 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.177 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -79,7 +79,6 @@
 #include "access/heapam.h"
 #include "access/nbtree.h"
 #include "access/tuptoaster.h"
-#include "catalog/catname.h"
 #include "catalog/pg_namespace.h"
 #include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
index 44ef1de6eee2505e14bbadb9fc703298273ccb00..13711b22416176d4db461cc4446059b9bf9ee4f1 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.119 2005/03/25 18:30:27 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/catcache.c,v 1.120 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -21,7 +21,6 @@
 #include "catalog/pg_opclass.h"
 #include "catalog/pg_operator.h"
 #include "catalog/pg_type.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "miscadmin.h"
 #ifdef CATCACHE_STATS
@@ -35,7 +34,7 @@
 #include "utils/syscache.h"
 
 
- /* #define CACHEDEBUG */  /* turns DEBUG elogs on */
+/* #define CACHEDEBUG */   /* turns DEBUG elogs on */
 
 /*
  * Constants related to size of the catcache.
@@ -297,9 +296,9 @@ CatCachePrintStats(void)
    {
        if (cache->cc_ntup == 0 && cache->cc_searches == 0)
            continue;           /* don't print unused caches */
-       elog(DEBUG2, "catcache %s/%s: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %ld discards, %ld lsrch, %ld lhits",
+       elog(DEBUG2, "catcache %s/%u: %d tup, %ld srch, %ld+%ld=%ld hits, %ld+%ld=%ld loads, %ld invals, %ld discards, %ld lsrch, %ld lhits",
             cache->cc_relname,
-            cache->cc_indname,
+            cache->cc_indexoid,
             cache->cc_ntup,
             cache->cc_searches,
             cache->cc_hits,
@@ -763,8 +762,9 @@ CatalogCacheFlushRelation(Oid relId)
 #ifdef CACHEDEBUG
 #define InitCatCache_DEBUG2 \
 do { \
-   elog(DEBUG2, "InitCatCache: rel=%s id=%d nkeys=%d size=%d", \
-       cp->cc_relname, cp->id, cp->cc_nkeys, cp->cc_nbuckets); \
+   elog(DEBUG2, "InitCatCache: rel=%u ind=%u id=%d nkeys=%d size=%d", \
+        cp->cc_reloid, cp->cc_indexoid, cp->id, \
+        cp->cc_nkeys, cp->cc_nbuckets); \
 } while(0)
 
 #else
@@ -773,8 +773,8 @@ do { \
 
 CatCache *
 InitCatCache(int id,
-            const char *relname,
-            const char *indname,
+            Oid reloid,
+            Oid indexoid,
             int reloidattr,
             int nkeys,
             const int *key)
@@ -821,9 +821,9 @@ InitCatCache(int id,
     * other internal fields.  But don't open the relation yet.
     */
    cp->id = id;
-   cp->cc_relname = relname;
-   cp->cc_indname = indname;
-   cp->cc_reloid = InvalidOid; /* temporary */
+   cp->cc_relname = "(not known yet)";
+   cp->cc_reloid = reloid;
+   cp->cc_indexoid = indexoid;
    cp->cc_relisshared = false; /* temporary */
    cp->cc_tupdesc = (TupleDesc) NULL;
    cp->cc_reloidattr = reloidattr;
@@ -861,9 +861,9 @@ InitCatCache(int id,
  * that the relcache entry can be opened at this point!
  */
 #ifdef CACHEDEBUG
-#define CatalogCacheInitializeCache_DEBUG2 \
-   elog(DEBUG2, "CatalogCacheInitializeCache: cache @%p %s", cache, \
-        cache->cc_relname)
+#define CatalogCacheInitializeCache_DEBUG1 \
+   elog(DEBUG2, "CatalogCacheInitializeCache: cache @%p rel=%u", cache, \
+        cache->cc_reloid)
 
 #define CatalogCacheInitializeCache_DEBUG2 \
 do { \
@@ -878,7 +878,7 @@ do { \
 } while(0)
 
 #else
-#define CatalogCacheInitializeCache_DEBUG2
+#define CatalogCacheInitializeCache_DEBUG1
 #define CatalogCacheInitializeCache_DEBUG2
 #endif
 
@@ -890,13 +890,13 @@ CatalogCacheInitializeCache(CatCache *cache)
    TupleDesc   tupdesc;
    int         i;
 
-   CatalogCacheInitializeCache_DEBUG2;
+   CatalogCacheInitializeCache_DEBUG1;
 
    /*
     * Open the relation without locking --- we only need the tupdesc,
     * which we assume will never change ...
     */
-   relation = heap_openr(cache->cc_relname, NoLock);
+   relation = heap_open(cache->cc_reloid, NoLock);
    Assert(RelationIsValid(relation));
 
    /*
@@ -913,9 +913,10 @@ CatalogCacheInitializeCache(CatCache *cache)
    tupdesc = CreateTupleDescCopyConstr(RelationGetDescr(relation));
 
    /*
-    * get the relation's OID and relisshared flag, too
+    * save the relation's name and relisshared flag, too (cc_relname
+    * is used only for debugging purposes)
     */
-   cache->cc_reloid = RelationGetRelid(relation);
+   cache->cc_relname = pstrdup(RelationGetRelationName(relation));
    cache->cc_relisshared = RelationGetForm(relation)->relisshared;
 
    /*
@@ -999,7 +1000,7 @@ InitCatCachePhase2(CatCache *cache)
    {
        Relation    idesc;
 
-       idesc = index_openr(cache->cc_indname);
+       idesc = index_open(cache->cc_indexoid);
        index_close(idesc);
    }
 }
@@ -1202,7 +1203,7 @@ SearchCatCache(CatCache *cache,
    relation = heap_open(cache->cc_reloid, AccessShareLock);
 
    scandesc = systable_beginscan(relation,
-                                 cache->cc_indname,
+                                 cache->cc_indexoid,
                                  IndexScanOK(cache, cur_skey),
                                  SnapshotNow,
                                  cache->cc_nkeys,
@@ -1230,9 +1231,17 @@ SearchCatCache(CatCache *cache,
     * If tuple was not found, we need to build a negative cache entry
     * containing a fake tuple.  The fake tuple has the correct key
     * columns, but nulls everywhere else.
+    *
+    * In bootstrap mode, we don't build negative entries, because the
+    * cache invalidation mechanism isn't alive and can't clear them
+    * if the tuple gets created later.  (Bootstrap doesn't do UPDATEs,
+    * so it doesn't need cache inval for that.)
     */
    if (ct == NULL)
    {
+       if (IsBootstrapProcessingMode())
+           return NULL;
+
        ntp = build_dummy_tuple(cache, cache->cc_nkeys, cur_skey);
        ct = CatalogCacheCreateEntry(cache, ntp,
                                     hashValue, hashIndex,
@@ -1427,7 +1436,7 @@ SearchCatCacheList(CatCache *cache,
    relation = heap_open(cache->cc_reloid, AccessShareLock);
 
    scandesc = systable_beginscan(relation,
-                                 cache->cc_indname,
+                                 cache->cc_indexoid,
                                  true,
                                  SnapshotNow,
                                  nkeys,
index 2c4d20576a5552da22c9e6912c261d646a711798..e46825212e1ad53212aa1bff4a97023141b3edd0 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.123 2005/04/11 23:06:56 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.124 2005/04/14 20:03:26 tgl Exp $
  *
  * NOTES
  *   Eventually, the index information should go through here, too.
@@ -931,25 +931,6 @@ get_relname_relid(const char *relname, Oid relnamespace)
                          0, 0);
 }
 
-/*
- * get_system_catalog_relid
- *     Get the OID of a system catalog identified by name.
- */
-Oid
-get_system_catalog_relid(const char *catname)
-{
-   Oid         relid;
-
-   relid = GetSysCacheOid(RELNAMENSP,
-                          PointerGetDatum(catname),
-                          ObjectIdGetDatum(PG_CATALOG_NAMESPACE),
-                          0, 0);
-   if (!OidIsValid(relid))
-       elog(ERROR, "cache lookup failed for system relation %s", catname);
-
-   return relid;
-}
-
 #ifdef NOT_USED
 /*
  * get_relnatts
index e6c59b1815bafb503f051f92518bc095f68df196..ab773de9c80607f881b1cd165345ac38b581df8a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.219 2005/04/14 01:38:19 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.220 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -17,7 +17,6 @@
  *     RelationCacheInitialize         - initialize relcache
  *     RelationCacheInitializePhase2   - finish initializing relcache
  *     RelationIdGetRelation           - get a reldesc by relation id
- *     RelationSysNameGetRelation      - get a reldesc by system rel name
  *     RelationIdCacheGetRelation      - get a cached reldesc by relid
  *     RelationClose                   - close an open relation
  *
@@ -34,7 +33,6 @@
 #include "access/genam.h"
 #include "access/heapam.h"
 #include "catalog/catalog.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_amop.h"
@@ -85,14 +83,16 @@ static FormData_pg_attribute Desc_pg_index[Natts_pg_index] = {Schema_pg_index};
 /*
  *     Hash tables that index the relation cache
  *
- *     Relations are looked up two ways, by OID and by name,
- *     thus there are two hash tables for referencing them.
- *
- *     The OID index covers all relcache entries.  The name index
- *     covers *only* system relations (only those in PG_CATALOG_NAMESPACE).
+ *     We used to index the cache by both name and OID, but now there
+ *     is only an index by OID.
  */
+typedef struct relidcacheent
+{
+   Oid         reloid;
+   Relation    reldesc;
+} RelIdCacheEnt;
+
 static HTAB *RelationIdCache;
-static HTAB *RelationSysNameCache;
 
 /*
  * This flag is false until we have prepared the critical relcache entries
@@ -125,33 +125,6 @@ static List *initFileRelationIds = NIL;
  */
 static bool need_eosubxact_work = false;
 
-/*
- *     RelationBuildDescInfo exists so code can be shared
- *     between RelationIdGetRelation() and RelationSysNameGetRelation()
- */
-typedef struct RelationBuildDescInfo
-{
-   int         infotype;       /* lookup by id or by name */
-#define INFO_RELID 1
-#define INFO_RELNAME 2
-   union
-   {
-       Oid         info_id;    /* relation object id */
-       char       *info_name;  /* system relation name */
-   }           i;
-} RelationBuildDescInfo;
-
-typedef struct relidcacheent
-{
-   Oid         reloid;
-   Relation    reldesc;
-} RelIdCacheEnt;
-
-typedef struct relnamecacheent
-{
-   NameData    relname;
-   Relation    reldesc;
-} RelNameCacheEnt;
 
 /*
  *     macros to manipulate the lookup hashtables
@@ -169,39 +142,13 @@ do { \
                 errmsg("out of memory"))); \
    /* used to give notice if found -- now just keep quiet */ \
    idhentry->reldesc = RELATION; \
-   if (IsSystemNamespace(RelationGetNamespace(RELATION))) \
-   { \
-       char *relname = RelationGetRelationName(RELATION); \
-       RelNameCacheEnt *namehentry; \
-       namehentry = (RelNameCacheEnt*)hash_search(RelationSysNameCache, \
-                                                  relname, \
-                                                  HASH_ENTER, \
-                                                  &found); \
-       if (namehentry == NULL) \
-           ereport(ERROR, \
-                   (errcode(ERRCODE_OUT_OF_MEMORY), \
-                    errmsg("out of memory"))); \
-       /* used to give notice if found -- now just keep quiet */ \
-       namehentry->reldesc = RELATION; \
-   } \
 } while(0)
 
 #define RelationIdCacheLookup(ID, RELATION) \
 do { \
    RelIdCacheEnt *hentry; \
    hentry = (RelIdCacheEnt*)hash_search(RelationIdCache, \
-                                        (void *)&(ID), HASH_FIND,NULL); \
-   if (hentry) \
-       RELATION = hentry->reldesc; \
-   else \
-       RELATION = NULL; \
-} while(0)
-
-#define RelationSysNameCacheLookup(NAME, RELATION) \
-do { \
-   RelNameCacheEnt *hentry; \
-   hentry = (RelNameCacheEnt*)hash_search(RelationSysNameCache, \
-                                          (void *) (NAME), HASH_FIND,NULL); \
+                                        (void *) &(ID), HASH_FIND,NULL); \
    if (hentry) \
        RELATION = hentry->reldesc; \
    else \
@@ -212,20 +159,10 @@ do { \
 do { \
    RelIdCacheEnt *idhentry; \
    idhentry = (RelIdCacheEnt*)hash_search(RelationIdCache, \
-                                          (void *)&(RELATION->rd_id), \
+                                          (void *) &(RELATION->rd_id), \
                                           HASH_REMOVE, NULL); \
    if (idhentry == NULL) \
        elog(WARNING, "trying to delete a rd_id reldesc that does not exist"); \
-   if (IsSystemNamespace(RelationGetNamespace(RELATION))) \
-   { \
-       char *relname = RelationGetRelationName(RELATION); \
-       RelNameCacheEnt *namehentry; \
-       namehentry = (RelNameCacheEnt*)hash_search(RelationSysNameCache, \
-                                                  relname, \
-                                                  HASH_REMOVE, NULL); \
-       if (namehentry == NULL) \
-           elog(WARNING, "trying to delete a relname reldesc that does not exist"); \
-   } \
 } while(0)
 
 
@@ -253,19 +190,16 @@ static void RelationClearRelation(Relation relation, bool rebuild);
 
 static void RelationReloadClassinfo(Relation relation);
 static void RelationFlushRelation(Relation relation);
-static Relation RelationSysNameCacheGetRelation(const char *relationName);
 static bool load_relcache_init_file(void);
 static void write_relcache_init_file(void);
 
 static void formrdesc(const char *relationName, Oid relationReltype,
                      bool hasoids, int natts, FormData_pg_attribute *att);
 
-static HeapTuple ScanPgRelation(RelationBuildDescInfo buildinfo, bool indexOK);
+static HeapTuple ScanPgRelation(Oid targetRelId, bool indexOK);
 static Relation AllocateRelationDesc(Relation relation, Form_pg_class relp);
-static void RelationBuildTupleDesc(RelationBuildDescInfo buildinfo,
-                      Relation relation);
-static Relation RelationBuildDesc(RelationBuildDescInfo buildinfo,
-                 Relation oldrelation);
+static void RelationBuildTupleDesc(Relation relation);
+static Relation RelationBuildDesc(Oid targetRelId, Relation oldrelation);
 static void RelationInitPhysicalAddr(Relation relation);
 static TupleDesc GetPgIndexDescriptor(void);
 static void AttrDefaultFetch(Relation relation);
@@ -286,54 +220,26 @@ static OpClassCacheEnt *LookupOpclassInfo(Oid operatorClassOid,
  *     ScanPgRelation
  *
  *     this is used by RelationBuildDesc to find a pg_class
- *     tuple matching either a relation name or a relation id
- *     as specified in buildinfo.
+ *     tuple matching targetRelId.
  *
  *     NB: the returned tuple has been copied into palloc'd storage
  *     and must eventually be freed with heap_freetuple.
  */
 static HeapTuple
-ScanPgRelation(RelationBuildDescInfo buildinfo, bool indexOK)
+ScanPgRelation(Oid targetRelId, bool indexOK)
 {
    HeapTuple   pg_class_tuple;
    Relation    pg_class_desc;
-   const char *indexRelname;
    SysScanDesc pg_class_scan;
-   ScanKeyData key[2];
-   int         nkeys;
+   ScanKeyData key[1];
 
    /*
     * form a scan key
     */
-   switch (buildinfo.infotype)
-   {
-       case INFO_RELID:
-           ScanKeyInit(&key[0],
-                       ObjectIdAttributeNumber,
-                       BTEqualStrategyNumber, F_OIDEQ,
-                       ObjectIdGetDatum(buildinfo.i.info_id));
-           nkeys = 1;
-           indexRelname = ClassOidIndex;
-           break;
-
-       case INFO_RELNAME:
-           ScanKeyInit(&key[0],
-                       Anum_pg_class_relname,
-                       BTEqualStrategyNumber, F_NAMEEQ,
-                       NameGetDatum(buildinfo.i.info_name));
-           ScanKeyInit(&key[1],
-                       Anum_pg_class_relnamespace,
-                       BTEqualStrategyNumber, F_OIDEQ,
-                       ObjectIdGetDatum(PG_CATALOG_NAMESPACE));
-           nkeys = 2;
-           indexRelname = ClassNameNspIndex;
-           break;
-
-       default:
-           elog(ERROR, "unrecognized buildinfo type: %d",
-                buildinfo.infotype);
-           return NULL;        /* keep compiler quiet */
-   }
+   ScanKeyInit(&key[0],
+               ObjectIdAttributeNumber,
+               BTEqualStrategyNumber, F_OIDEQ,
+               ObjectIdGetDatum(targetRelId));
 
    /*
     * Open pg_class and fetch a tuple.  Force heap scan if we haven't yet
@@ -341,11 +247,11 @@ ScanPgRelation(RelationBuildDescInfo buildinfo, bool indexOK)
     * startup without a pg_internal.init file).  The caller can also
     * force a heap scan by setting indexOK == false.
     */
-   pg_class_desc = heap_openr(RelationRelationName, AccessShareLock);
-   pg_class_scan = systable_beginscan(pg_class_desc, indexRelname,
+   pg_class_desc = heap_open(RelationRelationId, AccessShareLock);
+   pg_class_scan = systable_beginscan(pg_class_desc, ClassOidIndexId,
                                       indexOK && criticalRelcachesBuilt,
                                       SnapshotNow,
-                                      nkeys, key);
+                                      1, key);
 
    pg_class_tuple = systable_getnext(pg_class_scan);
 
@@ -429,8 +335,7 @@ AllocateRelationDesc(Relation relation, Form_pg_class relp)
  *     the pg_attribute, pg_attrdef & pg_constraint system catalogs.
  */
 static void
-RelationBuildTupleDesc(RelationBuildDescInfo buildinfo,
-                      Relation relation)
+RelationBuildTupleDesc(Relation relation)
 {
    HeapTuple   pg_attribute_tuple;
    Relation    pg_attribute_desc;
@@ -469,9 +374,9 @@ RelationBuildTupleDesc(RelationBuildDescInfo buildinfo,
     * yet built the critical relcache entries (this includes initdb and
     * startup without a pg_internal.init file).
     */
-   pg_attribute_desc = heap_openr(AttributeRelationName, AccessShareLock);
+   pg_attribute_desc = heap_open(AttributeRelationId, AccessShareLock);
    pg_attribute_scan = systable_beginscan(pg_attribute_desc,
-                                          AttributeRelidNumIndex,
+                                          AttributeRelidNumIndexId,
                                           criticalRelcachesBuilt,
                                           SnapshotNow,
                                           2, skey);
@@ -648,15 +553,15 @@ RelationBuildRuleLock(Relation relation)
    /*
     * open pg_rewrite and begin a scan
     *
-    * Note: since we scan the rules using RewriteRelRulenameIndex, we will
-    * be reading the rules in name order, except possibly during
+    * Note: since we scan the rules using RewriteRelRulenameIndexId,
+    * we will be reading the rules in name order, except possibly during
     * emergency-recovery operations (ie, IsIgnoringSystemIndexes). This
     * in turn ensures that rules will be fired in name order.
     */
-   rewrite_desc = heap_openr(RewriteRelationName, AccessShareLock);
+   rewrite_desc = heap_open(RewriteRelationId, AccessShareLock);
    rewrite_tupdesc = RelationGetDescr(rewrite_desc);
    rewrite_scan = systable_beginscan(rewrite_desc,
-                                     RewriteRelRulenameIndex,
+                                     RewriteRelRulenameIndexId,
                                      true, SnapshotNow,
                                      1, &key);
 
@@ -788,8 +693,7 @@ equalRuleLocks(RuleLock *rlock1, RuleLock *rlock2)
  * --------------------------------
  */
 static Relation
-RelationBuildDesc(RelationBuildDescInfo buildinfo,
-                 Relation oldrelation)
+RelationBuildDesc(Oid targetRelId, Relation oldrelation)
 {
    Relation    relation;
    Oid         relid;
@@ -800,7 +704,7 @@ RelationBuildDesc(RelationBuildDescInfo buildinfo,
    /*
     * find the tuple in pg_class corresponding to the given relation id
     */
-   pg_class_tuple = ScanPgRelation(buildinfo, true);
+   pg_class_tuple = ScanPgRelation(targetRelId, true);
 
    /*
     * if no such tuple exists, return NULL
@@ -844,7 +748,7 @@ RelationBuildDesc(RelationBuildDescInfo buildinfo,
    /*
     * initialize the tuple descriptor (relation->rd_att).
     */
-   RelationBuildTupleDesc(buildinfo, relation);
+   RelationBuildTupleDesc(relation);
 
    /*
     * Fetch rules and triggers that affect this relation
@@ -1191,9 +1095,8 @@ LookupOpclassInfo(Oid operatorClassOid,
                    Anum_pg_amop_amopsubtype,
                    BTEqualStrategyNumber, F_OIDEQ,
                    ObjectIdGetDatum(InvalidOid));
-       rel = heap_openr(AccessMethodOperatorRelationName,
-                        AccessShareLock);
-       scan = systable_beginscan(rel, AccessMethodStrategyIndex, indexOK,
+       rel = heap_open(AccessMethodOperatorRelationId, AccessShareLock);
+       scan = systable_beginscan(rel, AccessMethodStrategyIndexId, indexOK,
                                  SnapshotNow, 2, skey);
 
        while (HeapTupleIsValid(htup = systable_getnext(scan)))
@@ -1226,9 +1129,8 @@ LookupOpclassInfo(Oid operatorClassOid,
                    Anum_pg_amproc_amprocsubtype,
                    BTEqualStrategyNumber, F_OIDEQ,
                    ObjectIdGetDatum(InvalidOid));
-       rel = heap_openr(AccessMethodProcedureRelationName,
-                        AccessShareLock);
-       scan = systable_beginscan(rel, AccessMethodProcedureIndex, indexOK,
+       rel = heap_open(AccessMethodProcedureRelationId, AccessShareLock);
+       scan = systable_beginscan(rel, AccessMethodProcedureIndexId, indexOK,
                                  SnapshotNow, 2, skey);
 
        while (HeapTupleIsValid(htup = systable_getnext(scan)))
@@ -1440,35 +1342,6 @@ RelationIdCacheGetRelation(Oid relationId)
    return rd;
 }
 
-/*
- *     RelationSysNameCacheGetRelation
- *
- *     As above, but lookup by name; only works for system catalogs.
- */
-static Relation
-RelationSysNameCacheGetRelation(const char *relationName)
-{
-   Relation    rd;
-   NameData    name;
-
-   /*
-    * make sure that the name key used for hash lookup is properly
-    * null-padded
-    */
-   namestrcpy(&name, relationName);
-   RelationSysNameCacheLookup(NameStr(name), rd);
-
-   if (RelationIsValid(rd))
-   {
-       RelationIncrementReferenceCount(rd);
-       /* revalidate nailed index if necessary */
-       if (!rd->rd_isvalid)
-           RelationReloadClassinfo(rd);
-   }
-
-   return rd;
-}
-
 /*
  *     RelationIdGetRelation
  *
@@ -1482,7 +1355,6 @@ Relation
 RelationIdGetRelation(Oid relationId)
 {
    Relation    rd;
-   RelationBuildDescInfo buildinfo;
 
    /*
     * first try and get a reldesc from the cache
@@ -1495,41 +1367,7 @@ RelationIdGetRelation(Oid relationId)
     * no reldesc in the cache, so have RelationBuildDesc() build one and
     * add it.
     */
-   buildinfo.infotype = INFO_RELID;
-   buildinfo.i.info_id = relationId;
-
-   rd = RelationBuildDesc(buildinfo, NULL);
-   if (RelationIsValid(rd))
-       RelationIncrementReferenceCount(rd);
-   return rd;
-}
-
-/*
- *     RelationSysNameGetRelation
- *
- *     As above, but lookup by name; only works for system catalogs.
- */
-Relation
-RelationSysNameGetRelation(const char *relationName)
-{
-   Relation    rd;
-   RelationBuildDescInfo buildinfo;
-
-   /*
-    * first try and get a reldesc from the cache
-    */
-   rd = RelationSysNameCacheGetRelation(relationName);
-   if (RelationIsValid(rd))
-       return rd;
-
-   /*
-    * no reldesc in the cache, so have RelationBuildDesc() build one and
-    * add it.
-    */
-   buildinfo.infotype = INFO_RELNAME;
-   buildinfo.i.info_name = (char *) relationName;
-
-   rd = RelationBuildDesc(buildinfo, NULL);
+   rd = RelationBuildDesc(relationId, NULL);
    if (RelationIsValid(rd))
        RelationIncrementReferenceCount(rd);
    return rd;
@@ -1612,7 +1450,6 @@ RelationClose(Relation relation)
 static void
 RelationReloadClassinfo(Relation relation)
 {
-   RelationBuildDescInfo buildinfo;
    bool        indexOK;
    HeapTuple   pg_class_tuple;
    Form_pg_class relp;
@@ -1620,19 +1457,17 @@ RelationReloadClassinfo(Relation relation)
    /* Should be called only for invalidated nailed indexes */
    Assert(relation->rd_isnailed && !relation->rd_isvalid &&
           relation->rd_rel->relkind == RELKIND_INDEX);
-   /* Read the pg_class row */
-   buildinfo.infotype = INFO_RELID;
-   buildinfo.i.info_id = relation->rd_id;
-
    /*
+    * Read the pg_class row
+    *
     * Don't try to use an indexscan of pg_class_oid_index to reload the
     * info for pg_class_oid_index ...
     */
-   indexOK = strcmp(RelationGetRelationName(relation), ClassOidIndex) != 0;
-   pg_class_tuple = ScanPgRelation(buildinfo, indexOK);
+   indexOK = (RelationGetRelid(relation) != ClassOidIndexId);
+   pg_class_tuple = ScanPgRelation(RelationGetRelid(relation), indexOK);
    if (!HeapTupleIsValid(pg_class_tuple))
        elog(ERROR, "could not find tuple for system relation %u",
-            relation->rd_id);
+            RelationGetRelid(relation));
    relp = (Form_pg_class) GETSTRUCT(pg_class_tuple);
    memcpy((char *) relation->rd_rel, (char *) relp, CLASS_TUPLE_SIZE);
    /* Now we can recalculate physical address */
@@ -1750,17 +1585,14 @@ RelationClearRelation(Relation relation, bool rebuild)
         * is good because whatever ref counts the entry may have do not
         * necessarily belong to that resource owner.
         */
+       Oid         save_relid = RelationGetRelid(relation);
        int         old_refcnt = relation->rd_refcnt;
        SubTransactionId old_createSubid = relation->rd_createSubid;
        TupleDesc   old_att = relation->rd_att;
        RuleLock   *old_rules = relation->rd_rules;
        MemoryContext old_rulescxt = relation->rd_rulescxt;
-       RelationBuildDescInfo buildinfo;
 
-       buildinfo.infotype = INFO_RELID;
-       buildinfo.i.info_id = RelationGetRelid(relation);
-
-       if (RelationBuildDesc(buildinfo, relation) != relation)
+       if (RelationBuildDesc(save_relid, relation) != relation)
        {
            /* Should only get here if relation was deleted */
            flush_rowtype_cache(old_reltype);
@@ -1768,8 +1600,7 @@ RelationClearRelation(Relation relation, bool rebuild)
            if (old_rulescxt)
                MemoryContextDelete(old_rulescxt);
            pfree(relation);
-           elog(ERROR, "relation %u deleted while still in use",
-                buildinfo.i.info_id);
+           elog(ERROR, "relation %u deleted while still in use", save_relid);
        }
        relation->rd_refcnt = old_refcnt;
        relation->rd_createSubid = old_createSubid;
@@ -1952,8 +1783,7 @@ RelationCacheInvalidate(void)
            if (relation->rd_isnailed &&
                relation->rd_rel->relkind == RELKIND_INDEX)
            {
-               if (strcmp(RelationGetRelationName(relation),
-                          ClassOidIndex) == 0)
+               if (RelationGetRelid(relation) == ClassOidIndexId)
                    rebuildFirstList = lcons(relation, rebuildFirstList);
                else
                    rebuildFirstList = lappend(rebuildFirstList, relation);
@@ -2319,11 +2149,6 @@ RelationCacheInitialize(void)
     * create hashtables that index the relcache
     */
    MemSet(&ctl, 0, sizeof(ctl));
-   ctl.keysize = sizeof(NameData);
-   ctl.entrysize = sizeof(RelNameCacheEnt);
-   RelationSysNameCache = hash_create("Relcache by name", INITRELCACHESIZE,
-                                      &ctl, HASH_ELEM);
-
    ctl.keysize = sizeof(Oid);
    ctl.entrysize = sizeof(RelIdCacheEnt);
    ctl.hash = tag_hash;
@@ -2338,13 +2163,13 @@ RelationCacheInitialize(void)
    if (IsBootstrapProcessingMode() ||
        !load_relcache_init_file())
    {
-       formrdesc(RelationRelationName, PG_CLASS_RELTYPE_OID,
+       formrdesc("pg_class", PG_CLASS_RELTYPE_OID,
                  true, Natts_pg_class, Desc_pg_class);
-       formrdesc(AttributeRelationName, PG_ATTRIBUTE_RELTYPE_OID,
+       formrdesc("pg_attribute", PG_ATTRIBUTE_RELTYPE_OID,
                  false, Natts_pg_attribute, Desc_pg_attribute);
-       formrdesc(ProcedureRelationName, PG_PROC_RELTYPE_OID,
+       formrdesc("pg_proc", PG_PROC_RELTYPE_OID,
                  true, Natts_pg_proc, Desc_pg_proc);
-       formrdesc(TypeRelationName, PG_TYPE_RELTYPE_OID,
+       formrdesc("pg_type", PG_TYPE_RELTYPE_OID,
                  true, Natts_pg_type, Desc_pg_type);
 
 #define NUM_CRITICAL_RELS  4   /* fix if you change list above */
@@ -2393,27 +2218,23 @@ RelationCacheInitializePhase2(void)
     */
    if (!criticalRelcachesBuilt)
    {
-       RelationBuildDescInfo buildinfo;
        Relation    ird;
 
-#define LOAD_CRIT_INDEX(indname) \
+#define LOAD_CRIT_INDEX(indexoid) \
        do { \
-           buildinfo.infotype = INFO_RELNAME; \
-           buildinfo.i.info_name = (indname); \
-           ird = RelationBuildDesc(buildinfo, NULL); \
+           ird = RelationBuildDesc((indexoid), NULL); \
            ird->rd_isnailed = true; \
            ird->rd_refcnt = 1; \
        } while (0)
 
-       LOAD_CRIT_INDEX(ClassNameNspIndex);
-       LOAD_CRIT_INDEX(ClassOidIndex);
-       LOAD_CRIT_INDEX(AttributeRelidNumIndex);
-       LOAD_CRIT_INDEX(IndexRelidIndex);
-       LOAD_CRIT_INDEX(AccessMethodStrategyIndex);
-       LOAD_CRIT_INDEX(AccessMethodProcedureIndex);
-       LOAD_CRIT_INDEX(OperatorOidIndex);
+       LOAD_CRIT_INDEX(ClassOidIndexId);
+       LOAD_CRIT_INDEX(AttributeRelidNumIndexId);
+       LOAD_CRIT_INDEX(IndexRelidIndexId);
+       LOAD_CRIT_INDEX(AccessMethodStrategyIndexId);
+       LOAD_CRIT_INDEX(AccessMethodProcedureIndexId);
+       LOAD_CRIT_INDEX(OperatorOidIndexId);
 
-#define NUM_CRITICAL_INDEXES   7       /* fix if you change list above */
+#define NUM_CRITICAL_INDEXES   6       /* fix if you change list above */
 
        criticalRelcachesBuilt = true;
    }
@@ -2510,7 +2331,7 @@ RelationCacheInitializePhase3(void)
  * fields of pg_index before we have the standard catalog caches available.
  * We use predefined data that's set up in just the same way as the
  * bootstrapped reldescs used by formrdesc().  The resulting tupdesc is
- * not 100% kosher: it does not have the correct relation OID in attrelid,
+ * not 100% kosher: it does not have the correct rowtype OID in tdtypeid,
  * nor does it have a TupleConstr field.  But it's good enough for the
  * purpose of extracting fields.
  */
@@ -2569,8 +2390,8 @@ AttrDefaultFetch(Relation relation)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(relation)));
 
-   adrel = heap_openr(AttrDefaultRelationName, AccessShareLock);
-   adscan = systable_beginscan(adrel, AttrDefaultIndex, true,
+   adrel = heap_open(AttrDefaultRelationId, AccessShareLock);
+   adscan = systable_beginscan(adrel, AttrDefaultIndexId, true,
                                SnapshotNow, 1, &skey);
    found = 0;
 
@@ -2634,8 +2455,8 @@ CheckConstraintFetch(Relation relation)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(relation)));
 
-   conrel = heap_openr(ConstraintRelationName, AccessShareLock);
-   conscan = systable_beginscan(conrel, ConstraintRelidIndex, true,
+   conrel = heap_open(ConstraintRelationId, AccessShareLock);
+   conscan = systable_beginscan(conrel, ConstraintRelidIndexId, true,
                                 SnapshotNow, 1, skey);
 
    while (HeapTupleIsValid(htup = systable_getnext(conscan)))
@@ -2725,8 +2546,8 @@ RelationGetIndexList(Relation relation)
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(RelationGetRelid(relation)));
 
-   indrel = heap_openr(IndexRelationName, AccessShareLock);
-   indscan = systable_beginscan(indrel, IndexIndrelidIndex, true,
+   indrel = heap_open(IndexRelationId, AccessShareLock);
+   indscan = systable_beginscan(indrel, IndexIndrelidIndexId, true,
                                 SnapshotNow, 1, &skey);
 
    while (HeapTupleIsValid(htup = systable_getnext(indscan)))
index b7b7ec249d34ee002c1460458d00cdf923d329de..0cea023bb9058e9dd1f2ff2c4a97c0659a04a23e 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/syscache.c,v 1.97 2005/03/29 00:17:12 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/syscache.c,v 1.98 2005/04/14 20:03:26 tgl Exp $
  *
  * NOTES
  *   These routines allow the parser/planner/executor to perform
@@ -23,7 +23,6 @@
 #include "access/heapam.h"
 #include "access/transam.h"
 #include "utils/builtins.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_aggregate.h"
 #include "catalog/pg_amop.h"
@@ -57,7 +56,7 @@
 
    Add your entry to the cacheinfo[] array below.  All cache lists are
    alphabetical, so add it in the proper place.  Specify the relation
-   name, index name, number of keys, and key attribute numbers.  If the
+   OID, index OID, number of keys, and key attribute numbers.  If the
    relation contains tuples that are associated with a particular relation
    (for example, its attributes, rules, triggers, etc) then specify the
    attribute number that contains the OID of the associated relation.
 
    There must be a unique index underlying each syscache (ie, an index
    whose key is the same as that of the cache).  If there is not one
-   already, add definitions for it to include/catalog/indexing.h: you
-   need a #define for the index name and a DECLARE_UNIQUE_INDEX macro
-   with the actual declaration.  (This will require a catversion.h update,
-   while simply adding/deleting caches only requires a recompile.)
+   already, add definitions for it to include/catalog/indexing.h: you need
+   to add a DECLARE_UNIQUE_INDEX macro and a #define for the index OID.
+   (Adding an index requires a catversion.h update, while simply
+   adding/deleting caches only requires a recompile.)
 
    Finally, any place your relation gets heap_insert() or
-   heap_update calls, make sure there is a CatalogUpdateIndexes() or
+   heap_update() calls, make sure there is a CatalogUpdateIndexes() or
    similar call.  The heap_* calls do not update indexes.
 
    bjm 1999/11/22
 
-  ---------------------------------------------------------------------------
+*---------------------------------------------------------------------------
 */
 
 /*
  */
 struct cachedesc
 {
-   const char *name;           /* name of the relation being cached */
-   const char *indname;        /* name of index relation for this cache */
+   Oid         reloid;         /* OID of the relation being cached */
+   Oid         indoid;         /* OID of index relation for this cache */
    int         reloidattr;     /* attr number of rel OID reference, or 0 */
    int         nkeys;          /* # of keys needed for cache lookup */
    int         key[4];         /* attribute numbers of key attrs */
 };
 
 static const struct cachedesc cacheinfo[] = {
-   {AggregateRelationName,     /* AGGFNOID */
-       AggregateFnoidIndex,
+   {AggregateRelationId,               /* AGGFNOID */
+       AggregateFnoidIndexId,
        0,
        1,
        {
@@ -103,8 +102,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {AccessMethodRelationName,  /* AMNAME */
-       AmNameIndex,
+   {AccessMethodRelationId,            /* AMNAME */
+       AmNameIndexId,
        0,
        1,
        {
@@ -113,8 +112,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {AccessMethodRelationName,  /* AMOID */
-       AmOidIndex,
+   {AccessMethodRelationId,            /* AMOID */
+       AmOidIndexId,
        0,
        1,
        {
@@ -123,8 +122,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {AccessMethodOperatorRelationName,  /* AMOPOPID */
-       AccessMethodOperatorIndex,
+   {AccessMethodOperatorRelationId,    /* AMOPOPID */
+       AccessMethodOperatorIndexId,
        0,
        2,
        {
@@ -133,8 +132,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {AccessMethodOperatorRelationName,  /* AMOPSTRATEGY */
-       AccessMethodStrategyIndex,
+   {AccessMethodOperatorRelationId,    /* AMOPSTRATEGY */
+       AccessMethodStrategyIndexId,
        0,
        3,
        {
@@ -143,8 +142,8 @@ static const struct cachedesc cacheinfo[] = {
            Anum_pg_amop_amopstrategy,
            0
    }},
-   {AccessMethodProcedureRelationName, /* AMPROCNUM */
-       AccessMethodProcedureIndex,
+   {AccessMethodProcedureRelationId,   /* AMPROCNUM */
+       AccessMethodProcedureIndexId,
        0,
        3,
        {
@@ -153,8 +152,8 @@ static const struct cachedesc cacheinfo[] = {
            Anum_pg_amproc_amprocnum,
            0
    }},
-   {AttributeRelationName,     /* ATTNAME */
-       AttributeRelidNameIndex,
+   {AttributeRelationId,               /* ATTNAME */
+       AttributeRelidNameIndexId,
        Anum_pg_attribute_attrelid,
        2,
        {
@@ -163,8 +162,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {AttributeRelationName,     /* ATTNUM */
-       AttributeRelidNumIndex,
+   {AttributeRelationId,               /* ATTNUM */
+       AttributeRelidNumIndexId,
        Anum_pg_attribute_attrelid,
        2,
        {
@@ -174,8 +173,8 @@ static const struct cachedesc cacheinfo[] = {
            0
    }},
    {
-       CastRelationName,       /* CASTSOURCETARGET */
-       CastSourceTargetIndex,
+       CastRelationId,                 /* CASTSOURCETARGET */
+       CastSourceTargetIndexId,
        0,
        2,
        {
@@ -184,8 +183,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {OperatorClassRelationName, /* CLAAMNAMENSP */
-       OpclassAmNameNspIndex,
+   {OperatorClassRelationId,           /* CLAAMNAMENSP */
+       OpclassAmNameNspIndexId,
        0,
        3,
        {
@@ -194,8 +193,8 @@ static const struct cachedesc cacheinfo[] = {
            Anum_pg_opclass_opcnamespace,
            0
    }},
-   {OperatorClassRelationName, /* CLAOID */
-       OpclassOidIndex,
+   {OperatorClassRelationId,           /* CLAOID */
+       OpclassOidIndexId,
        0,
        1,
        {
@@ -204,8 +203,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {ConversionRelationName,    /* CONDEFAULT */
-       ConversionDefaultIndex,
+   {ConversionRelationId,              /* CONDEFAULT */
+       ConversionDefaultIndexId,
        0,
        4,
        {
@@ -214,8 +213,8 @@ static const struct cachedesc cacheinfo[] = {
            Anum_pg_conversion_contoencoding,
            ObjectIdAttributeNumber,
    }},
-   {ConversionRelationName,    /* CONNAMENSP */
-       ConversionNameNspIndex,
+   {ConversionRelationId,              /* CONNAMENSP */
+       ConversionNameNspIndexId,
        0,
        2,
        {
@@ -224,8 +223,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {ConversionRelationName,    /* CONOID */
-       ConversionOidIndex,
+   {ConversionRelationId,              /* CONOID */
+       ConversionOidIndexId,
        0,
        1,
        {
@@ -234,8 +233,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {GroupRelationName,         /* GRONAME */
-       GroupNameIndex,
+   {GroupRelationId,                   /* GRONAME */
+       GroupNameIndexId,
        0,
        1,
        {
@@ -244,8 +243,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {GroupRelationName,         /* GROSYSID */
-       GroupSysidIndex,
+   {GroupRelationId,                   /* GROSYSID */
+       GroupSysidIndexId,
        0,
        1,
        {
@@ -254,8 +253,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {IndexRelationName,         /* INDEXRELID */
-       IndexRelidIndex,
+   {IndexRelationId,                   /* INDEXRELID */
+       IndexRelidIndexId,
        Anum_pg_index_indrelid,
        1,
        {
@@ -264,8 +263,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {InheritsRelationName,      /* INHRELID */
-       InheritsRelidSeqnoIndex,
+   {InheritsRelationId,                /* INHRELID */
+       InheritsRelidSeqnoIndexId,
        Anum_pg_inherits_inhrelid,
        2,
        {
@@ -274,8 +273,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {LanguageRelationName,      /* LANGNAME */
-       LanguageNameIndex,
+   {LanguageRelationId,                /* LANGNAME */
+       LanguageNameIndexId,
        0,
        1,
        {
@@ -284,8 +283,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {LanguageRelationName,      /* LANGOID */
-       LanguageOidIndex,
+   {LanguageRelationId,                /* LANGOID */
+       LanguageOidIndexId,
        0,
        1,
        {
@@ -294,8 +293,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {NamespaceRelationName,     /* NAMESPACENAME */
-       NamespaceNameIndex,
+   {NamespaceRelationId,               /* NAMESPACENAME */
+       NamespaceNameIndexId,
        0,
        1,
        {
@@ -304,8 +303,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {NamespaceRelationName,     /* NAMESPACEOID */
-       NamespaceOidIndex,
+   {NamespaceRelationId,               /* NAMESPACEOID */
+       NamespaceOidIndexId,
        0,
        1,
        {
@@ -314,8 +313,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {OperatorRelationName,      /* OPERNAMENSP */
-       OperatorNameNspIndex,
+   {OperatorRelationId,                /* OPERNAMENSP */
+       OperatorNameNspIndexId,
        0,
        4,
        {
@@ -324,8 +323,8 @@ static const struct cachedesc cacheinfo[] = {
            Anum_pg_operator_oprright,
            Anum_pg_operator_oprnamespace
    }},
-   {OperatorRelationName,      /* OPEROID */
-       OperatorOidIndex,
+   {OperatorRelationId,                /* OPEROID */
+       OperatorOidIndexId,
        0,
        1,
        {
@@ -334,8 +333,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {ProcedureRelationName,     /* PROCNAMEARGSNSP */
-       ProcedureNameArgsNspIndex,
+   {ProcedureRelationId,               /* PROCNAMEARGSNSP */
+       ProcedureNameArgsNspIndexId,
        0,
        3,
        {
@@ -344,8 +343,8 @@ static const struct cachedesc cacheinfo[] = {
            Anum_pg_proc_pronamespace,
            0
    }},
-   {ProcedureRelationName,     /* PROCOID */
-       ProcedureOidIndex,
+   {ProcedureRelationId,               /* PROCOID */
+       ProcedureOidIndexId,
        0,
        1,
        {
@@ -354,8 +353,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {RelationRelationName,      /* RELNAMENSP */
-       ClassNameNspIndex,
+   {RelationRelationId,                /* RELNAMENSP */
+       ClassNameNspIndexId,
        ObjectIdAttributeNumber,
        2,
        {
@@ -364,8 +363,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {RelationRelationName,      /* RELOID */
-       ClassOidIndex,
+   {RelationRelationId,                /* RELOID */
+       ClassOidIndexId,
        ObjectIdAttributeNumber,
        1,
        {
@@ -374,8 +373,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {RewriteRelationName,       /* RULERELNAME */
-       RewriteRelRulenameIndex,
+   {RewriteRelationId,                 /* RULERELNAME */
+       RewriteRelRulenameIndexId,
        Anum_pg_rewrite_ev_class,
        2,
        {
@@ -384,8 +383,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {ShadowRelationName,        /* SHADOWNAME */
-       ShadowNameIndex,
+   {ShadowRelationId,                  /* SHADOWNAME */
+       ShadowNameIndexId,
        0,
        1,
        {
@@ -394,8 +393,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {ShadowRelationName,        /* SHADOWSYSID */
-       ShadowSysidIndex,
+   {ShadowRelationId,                  /* SHADOWSYSID */
+       ShadowSysidIndexId,
        0,
        1,
        {
@@ -404,8 +403,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {StatisticRelationName,     /* STATRELATT */
-       StatisticRelidAttnumIndex,
+   {StatisticRelationId,               /* STATRELATT */
+       StatisticRelidAttnumIndexId,
        Anum_pg_statistic_starelid,
        2,
        {
@@ -414,8 +413,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {TypeRelationName,          /* TYPENAMENSP */
-       TypeNameNspIndex,
+   {TypeRelationId,                    /* TYPENAMENSP */
+       TypeNameNspIndexId,
        Anum_pg_type_typrelid,
        2,
        {
@@ -424,8 +423,8 @@ static const struct cachedesc cacheinfo[] = {
            0,
            0
    }},
-   {TypeRelationName,          /* TYPEOID */
-       TypeOidIndex,
+   {TypeRelationId,                    /* TYPEOID */
+       TypeOidIndexId,
        Anum_pg_type_typrelid,
        1,
        {
@@ -436,8 +435,7 @@ static const struct cachedesc cacheinfo[] = {
    }}
 };
 
-static CatCache *SysCache[
-                         lengthof(cacheinfo)];
+static CatCache *SysCache[lengthof(cacheinfo)];
 static int SysCacheSize = lengthof(cacheinfo);
 static bool CacheInitialized = false;
 
@@ -462,14 +460,14 @@ InitCatalogCache(void)
    for (cacheId = 0; cacheId < SysCacheSize; cacheId++)
    {
        SysCache[cacheId] = InitCatCache(cacheId,
-                                        cacheinfo[cacheId].name,
-                                        cacheinfo[cacheId].indname,
+                                        cacheinfo[cacheId].reloid,
+                                        cacheinfo[cacheId].indoid,
                                         cacheinfo[cacheId].reloidattr,
                                         cacheinfo[cacheId].nkeys,
                                         cacheinfo[cacheId].key);
        if (!PointerIsValid(SysCache[cacheId]))
-           elog(ERROR, "could not initialize cache %s (%d)",
-                cacheinfo[cacheId].name, cacheId);
+           elog(ERROR, "could not initialize cache %u (%d)",
+                cacheinfo[cacheId].reloid, cacheId);
    }
    CacheInitialized = true;
 }
index 7e15f884f61fcf74af73b7c72cda25d4f267a9af..01990db8ad9055e6c1025b6d4ffeae886dfdbc2f 100644 (file)
@@ -36,7 +36,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/cache/typcache.c,v 1.11 2004/12/31 22:01:25 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/cache/typcache.c,v 1.12 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -46,7 +46,6 @@
 #include "access/heapam.h"
 #include "access/hash.h"
 #include "access/nbtree.h"
-#include "catalog/catname.h"
 #include "catalog/indexing.h"
 #include "catalog/pg_am.h"
 #include "catalog/pg_opclass.h"
@@ -328,14 +327,14 @@ lookup_default_opclass(Oid type_id, Oid am_id)
     * that we consider all opclasses, regardless of the current search
     * path.
     */
-   rel = heap_openr(OperatorClassRelationName, AccessShareLock);
+   rel = heap_open(OperatorClassRelationId, AccessShareLock);
 
    ScanKeyInit(&skey[0],
                Anum_pg_opclass_opcamid,
                BTEqualStrategyNumber, F_OIDEQ,
                ObjectIdGetDatum(am_id));
 
-   scan = systable_beginscan(rel, OpclassAmNameNspIndex, true,
+   scan = systable_beginscan(rel, OpclassAmNameNspIndexId, true,
                              SnapshotNow, 1, skey);
 
    while (HeapTupleIsValid(tup = systable_getnext(scan)))
index 4dc27dcdf5aee24131d45a87ced7d5eecffa7dd2..e58c1102c253e4104908e0f238510a416a4e7444 100644 (file)
@@ -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.5 2005/04/14 01:38:20 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/init/flatfiles.c,v 1.6 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -32,7 +32,6 @@
 #include 
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_group.h"
 #include "catalog/pg_namespace.h"
@@ -724,11 +723,11 @@ AtEOXact_UpdateFlatFiles(bool isCommit)
     * so get the locks we need before writing anything.
     */
    if (database_file_update_subid != InvalidSubTransactionId)
-       drel = heap_openr(DatabaseRelationName, ExclusiveLock);
+       drel = heap_open(DatabaseRelationId, ExclusiveLock);
    if (group_file_update_subid != InvalidSubTransactionId)
-       grel = heap_openr(GroupRelationName, ExclusiveLock);
+       grel = heap_open(GroupRelationId, ExclusiveLock);
    if (user_file_update_subid != InvalidSubTransactionId)
-       urel = heap_openr(ShadowRelationName, ExclusiveLock);
+       urel = heap_open(ShadowRelationId, ExclusiveLock);
 
    /* Okay to write the files */
    if (database_file_update_subid != InvalidSubTransactionId)
index b906ee581d95cca2555087a6e6fa2ee80817422e..3f34653cb2e9a795f6655ddb691404c43085246d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.138 2005/03/18 03:48:49 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/init/miscinit.c,v 1.139 2005/04/14 20:03:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -29,7 +29,6 @@
 #include 
 #endif
 
-#include "catalog/catname.h"
 #include "catalog/pg_shadow.h"
 #include "libpq/libpq-be.h"
 #include "miscadmin.h"
index 00b541204b4b6cc615b4761d6c214ed54c982166..2030106f970140fa83c49fa987f23cf4f943d0d2 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.144 2005/03/19 23:27:06 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/init/postinit.c,v 1.145 2005/04/14 20:03:26 tgl Exp $
  *
  *
  *-------------------------------------------------------------------------
@@ -22,7 +22,6 @@
 
 #include "catalog/catalog.h"
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_shadow.h"
@@ -134,7 +133,7 @@ ReverifyMyDatabase(const char *name)
     * Because we grab RowShareLock here, we can be sure that dropdb()
     * is not running in parallel with us (any more).
     */
-   pgdbrel = heap_openr(DatabaseRelationName, RowShareLock);
+   pgdbrel = heap_open(DatabaseRelationId, RowShareLock);
 
    ScanKeyInit(&key,
                Anum_pg_database_datname,
@@ -537,7 +536,7 @@ ThereIsAtLeastOneUser(void)
    HeapScanDesc scan;
    bool        result;
 
-   pg_shadow_rel = heap_openr(ShadowRelationName, AccessExclusiveLock);
+   pg_shadow_rel = heap_open(ShadowRelationId, AccessExclusiveLock);
    pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
 
    scan = heap_beginscan(pg_shadow_rel, SnapshotNow, 0, NULL);
index 89fd4f9db685c0a2ebd898748f4b4bbabc96bef8..422e107ec5193d6960ee2a9c8449e2fa06a05b39 100644 (file)
@@ -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/access/genam.h,v 1.49 2005/03/27 23:53:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/genam.h,v 1.50 2005/04/14 20:03:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -70,7 +70,6 @@ typedef SysScanDescData *SysScanDesc;
  */
 extern Relation index_open(Oid relationId);
 extern Relation index_openrv(const RangeVar *relation);
-extern Relation index_openr(const char *sysRelationName);
 extern void index_close(Relation relation);
 extern bool index_insert(Relation indexRelation,
             Datum *values, bool *isnull,
@@ -119,7 +118,7 @@ extern void IndexScanEnd(IndexScanDesc scan);
  * heap-or-index access to system catalogs (in genam.c)
  */
 extern SysScanDesc systable_beginscan(Relation heapRelation,
-                  const char *indexRelname,
+                  Oid indexId,
                   bool indexOK,
                   Snapshot snapshot,
                   int nkeys, ScanKey key);
index 5bc9eed5606e47d67154f5184b2f77e8ce0fb43f..8b18cc422481e8d0c79ffbd77063a503d4708c9b 100644 (file)
@@ -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/access/heapam.h,v 1.98 2005/03/21 01:24:04 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.99 2005/04/14 20:03:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -126,12 +126,10 @@ extern Datum fastgetattr(HeapTuple tup, int attnum, TupleDesc tupleDesc,
 extern Relation relation_open(Oid relationId, LOCKMODE lockmode);
 extern Relation conditional_relation_open(Oid relationId, LOCKMODE lockmode, bool nowait);
 extern Relation relation_openrv(const RangeVar *relation, LOCKMODE lockmode);
-extern Relation relation_openr(const char *sysRelationName, LOCKMODE lockmode);
 extern void relation_close(Relation relation, LOCKMODE lockmode);
 
 extern Relation heap_open(Oid relationId, LOCKMODE lockmode);
 extern Relation heap_openrv(const RangeVar *relation, LOCKMODE lockmode);
-extern Relation heap_openr(const char *sysRelationName, LOCKMODE lockmode);
 
 #define heap_close(r,l)  relation_close(r,l)
 
diff --git a/src/include/catalog/catname.h b/src/include/catalog/catname.h
deleted file mode 100644 (file)
index 27186ef..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * catname.h
- *   POSTGRES system catalog relation name definitions.
- *
- *
- * 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.35 2005/04/14 01:38:20 tgl Exp $
- *
- *-------------------------------------------------------------------------
- */
-#ifndef CATNAME_H
-#define CATNAME_H
-
-
-#define  AggregateRelationName "pg_aggregate"
-#define  AccessMethodRelationName "pg_am"
-#define  AccessMethodOperatorRelationName "pg_amop"
-#define  AccessMethodProcedureRelationName "pg_amproc"
-#define  AttributeRelationName "pg_attribute"
-#define  CastRelationName "pg_cast"
-#define  ConstraintRelationName "pg_constraint"
-#define  ConversionRelationName "pg_conversion"
-#define  DatabaseRelationName "pg_database"
-#define  DependRelationName "pg_depend"
-#define  DescriptionRelationName "pg_description"
-#define  GroupRelationName "pg_group"
-#define  IndexRelationName "pg_index"
-#define  InheritsRelationName "pg_inherits"
-#define  LanguageRelationName "pg_language"
-#define  LargeObjectRelationName "pg_largeobject"
-#define  ListenerRelationName "pg_listener"
-#define  NamespaceRelationName "pg_namespace"
-#define  OperatorClassRelationName "pg_opclass"
-#define  OperatorRelationName "pg_operator"
-#define  ProcedureRelationName "pg_proc"
-#define  RelationRelationName "pg_class"
-#define  RewriteRelationName "pg_rewrite"
-#define  ShadowRelationName "pg_shadow"
-#define  StatisticRelationName "pg_statistic"
-#define  TableSpaceRelationName "pg_tablespace"
-#define  TypeRelationName "pg_type"
-#define  AttrDefaultRelationName "pg_attrdef"
-#define  TriggerRelationName "pg_trigger"
-
-#endif   /* CATNAME_H */
index a64771cd813346e0374db196ec08651f0187e834..8be3527be2c53752aca535fde627218eb81d69b9 100644 (file)
@@ -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.86 2005/04/14 01:38:20 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/indexing.h,v 1.87 2005/04/14 20:03:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 
 #include "access/htup.h"
 
-/*
- * Names of indexes on system catalogs
- *
- * References to specific system indexes in the C code should use these
- * macros rather than hardwiring the actual index name.
- */
-#define AccessMethodOperatorIndex  "pg_amop_opr_opc_index"
-#define AccessMethodStrategyIndex  "pg_amop_opc_strat_index"
-#define AccessMethodProcedureIndex "pg_amproc_opc_proc_index"
-#define AggregateFnoidIndex            "pg_aggregate_fnoid_index"
-#define AmNameIndex                    "pg_am_name_index"
-#define AmOidIndex                 "pg_am_oid_index"
-#define AttrDefaultIndex           "pg_attrdef_adrelid_adnum_index"
-#define AttrDefaultOidIndex            "pg_attrdef_oid_index"
-#define AttributeRelidNameIndex        "pg_attribute_relid_attnam_index"
-#define AttributeRelidNumIndex     "pg_attribute_relid_attnum_index"
-#define CastOidIndex               "pg_cast_oid_index"
-#define CastSourceTargetIndex      "pg_cast_source_target_index"
-#define ClassNameNspIndex          "pg_class_relname_nsp_index"
-#define ClassOidIndex              "pg_class_oid_index"
-#define ConstraintNameNspIndex     "pg_constraint_conname_nsp_index"
-#define ConstraintOidIndex         "pg_constraint_oid_index"
-#define ConstraintRelidIndex       "pg_constraint_conrelid_index"
-#define ConstraintTypidIndex       "pg_constraint_contypid_index"
-#define ConversionDefaultIndex     "pg_conversion_default_index"
-#define ConversionNameNspIndex     "pg_conversion_name_nsp_index"
-#define ConversionOidIndex         "pg_conversion_oid_index"
-#define DatabaseNameIndex          "pg_database_datname_index"
-#define DatabaseOidIndex           "pg_database_oid_index"
-#define DependDependerIndex            "pg_depend_depender_index"
-#define DependReferenceIndex       "pg_depend_reference_index"
-#define DescriptionObjIndex            "pg_description_o_c_o_index"
-#define GroupNameIndex             "pg_group_name_index"
-#define GroupSysidIndex                "pg_group_sysid_index"
-#define IndexIndrelidIndex         "pg_index_indrelid_index"
-#define IndexRelidIndex                "pg_index_indexrelid_index"
-#define InheritsRelidSeqnoIndex        "pg_inherits_relid_seqno_index"
-#define LanguageNameIndex          "pg_language_name_index"
-#define LanguageOidIndex           "pg_language_oid_index"
-#define LargeObjectLOidPNIndex     "pg_largeobject_loid_pn_index"
-#define NamespaceNameIndex         "pg_namespace_nspname_index"
-#define NamespaceOidIndex          "pg_namespace_oid_index"
-#define OpclassAmNameNspIndex      "pg_opclass_am_name_nsp_index"
-#define OpclassOidIndex                "pg_opclass_oid_index"
-#define OperatorNameNspIndex       "pg_operator_oprname_l_r_n_index"
-#define OperatorOidIndex           "pg_operator_oid_index"
-#define ProcedureNameArgsNspIndex  "pg_proc_proname_args_nsp_index"
-#define ProcedureOidIndex          "pg_proc_oid_index"
-#define RewriteOidIndex                "pg_rewrite_oid_index"
-#define RewriteRelRulenameIndex        "pg_rewrite_rel_rulename_index"
-#define ShadowNameIndex                "pg_shadow_usename_index"
-#define ShadowSysidIndex           "pg_shadow_usesysid_index"
-#define StatisticRelidAttnumIndex  "pg_statistic_relid_att_index"
-#define TablespaceNameIndex            "pg_tablespace_spcname_index"
-#define TablespaceOidIndex         "pg_tablespace_oid_index"
-#define TriggerConstrNameIndex     "pg_trigger_tgconstrname_index"
-#define TriggerConstrRelidIndex        "pg_trigger_tgconstrrelid_index"
-#define TriggerRelidNameIndex      "pg_trigger_tgrelid_tgname_index"
-#define TriggerOidIndex                "pg_trigger_oid_index"
-#define TypeNameNspIndex           "pg_type_typname_nsp_index"
-#define TypeOidIndex               "pg_type_oid_index"
-
 
 /*
  * The state object used by CatalogOpenIndexes and friends is actually the
@@ -113,6 +51,10 @@ extern void CatalogUpdateIndexes(Relation heapRel, HeapTuple heapTuple);
  * 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.
+ *
+ * For each index, we also provide a #define for its OID.  References to
+ * the index in the C code should always use these #defines, not the actual
+ * index name (much less the numeric OID).
  */
 
 DECLARE_UNIQUE_INDEX(pg_aggregate_fnoid_index,2650, on pg_aggregate using btree(aggfnoid oid_ops));
index a9e6f19b9c55334877446761e3e567dde18c2150..6aac341f71c91eeab1aa1a1a0e267d6cd44051bb 100644 (file)
@@ -13,7 +13,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/catcache.h,v 1.53 2005/03/25 18:30:28 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/catcache.h,v 1.54 2005/04/14 20:03:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -36,8 +36,8 @@ typedef struct catcache
    int         id;             /* cache identifier --- see syscache.h */
    struct catcache *cc_next;   /* link to next catcache */
    const char *cc_relname;     /* name of relation the tuples come from */
-   const char *cc_indname;     /* name of index matching cache keys */
    Oid         cc_reloid;      /* OID of relation the tuples come from */
+   Oid         cc_indexoid;    /* OID of index matching cache keys */
    bool        cc_relisshared; /* is relation shared across databases? */
    TupleDesc   cc_tupdesc;     /* tuple descriptor (copied from reldesc) */
    int         cc_reloidattr;  /* AttrNumber of relation OID attr, or 0 */
@@ -164,7 +164,7 @@ extern DLLIMPORT MemoryContext CacheMemoryContext;
 extern void CreateCacheMemoryContext(void);
 extern void AtEOXact_CatCache(bool isCommit);
 
-extern CatCache *InitCatCache(int id, const char *relname, const char *indname,
+extern CatCache *InitCatCache(int id, Oid reloid, Oid indexoid,
             int reloidattr,
             int nkeys, const int *key);
 extern void InitCatCachePhase2(CatCache *cache);
index b98b53c60fc618d4c4c02e8fbd53c6f94d693c4c..42dbe3d240627ffa72d99a116f89305fea84855b 100644 (file)
@@ -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/include/utils/lsyscache.h,v 1.97 2005/04/11 23:06:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/lsyscache.h,v 1.98 2005/04/14 20:03:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -62,7 +62,6 @@ extern bool get_func_retset(Oid funcid);
 extern bool func_strict(Oid funcid);
 extern char func_volatile(Oid funcid);
 extern Oid get_relname_relid(const char *relname, Oid relnamespace);
-extern Oid get_system_catalog_relid(const char *catname);
 extern char *get_rel_name(Oid relid);
 extern Oid get_rel_namespace(Oid relid);
 extern Oid get_rel_type_id(Oid relid);
index e5e8c8e07a28d4a2fc48fcda6d66ad137f02af04..0f58921ea1acdf1ff7c1fe570bd07bec86e3f0a6 100644 (file)
@@ -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.49 2005/04/14 01:38:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/relcache.h,v 1.50 2005/04/14 20:03:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -20,7 +20,6 @@
  * relation lookup routines
  */
 extern Relation RelationIdGetRelation(Oid relationId);
-extern Relation RelationSysNameGetRelation(const char *relationName);
 
 /* finds an existing cache entry, but won't make a new one */
 extern Relation RelationIdCacheGetRelation(Oid relationId);
index 9fefffa319625d04326fb4c91def80172f8b5945..62b793c5f41ca3c60557007ff6d650949e7fd1fb 100644 (file)
@@ -3,7 +3,7 @@
  *           procedural language
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.87 2005/04/07 14:53:04 tgl Exp $
+ *   $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.88 2005/04/14 20:03:27 tgl Exp $
  *
  *   This software is copyrighted by Jan Wieck - Hamburg.
  *
@@ -42,7 +42,6 @@
 #include "pl.tab.h"
 
 #include "access/heapam.h"
-#include "catalog/catname.h"
 #include "catalog/namespace.h"
 #include "catalog/pg_attribute.h"
 #include "catalog/pg_attrdef.h"