]> granicus.if.org Git - postgresql/commitdiff
First phase of project to use fixed OIDs for all system catalogs and
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 Apr 2005 01:38:22 +0000 (01:38 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 14 Apr 2005 01:38:22 +0000 (01:38 +0000)
indexes.  Extend the macros in include/catalog/*.h to carry the info
about hand-assigned OIDs, and adjust the genbki script and bootstrap
code to make the relations actually get those OIDs.  Remove the small
number of RelOid_pg_foo macros that we had in favor of a complete
set named like the catname.h and indexing.h macros.  Next phase will
get rid of internal use of names for looking up catalogs and indexes;
but this completes the changes forcing an initdb, so it looks like a
good place to commit.
Along the way, I made the shared relations (pg_database etc) not be
'bootstrap' relations any more, so as to reduce the number of hardwired
entries and simplify changing those relations in future.  I'm not
sure whether they ever really needed to be handled as bootstrap
relations, but it seems to work fine to not do so now.

72 files changed:
doc/src/sgml/bki.sgml
src/backend/bootstrap/bootparse.y
src/backend/catalog/README
src/backend/catalog/dependency.c
src/backend/catalog/genbki.sh
src/backend/catalog/heap.c
src/backend/catalog/index.c
src/backend/catalog/pg_aggregate.c
src/backend/catalog/pg_constraint.c
src/backend/catalog/pg_conversion.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/cluster.c
src/backend/commands/comment.c
src/backend/commands/functioncmds.c
src/backend/commands/indexcmds.c
src/backend/commands/opclasscmds.c
src/backend/commands/proclang.c
src/backend/commands/tablecmds.c
src/backend/commands/trigger.c
src/backend/commands/typecmds.c
src/backend/commands/user.c
src/backend/commands/view.c
src/backend/executor/execMain.c
src/backend/rewrite/rewriteDefine.c
src/backend/tcop/utility.c
src/backend/utils/adt/ruleutils.c
src/backend/utils/cache/inval.c
src/backend/utils/cache/relcache.c
src/backend/utils/init/flatfiles.c
src/include/catalog/catname.h
src/include/catalog/catversion.h
src/include/catalog/duplicate_oids
src/include/catalog/heap.h
src/include/catalog/index.h
src/include/catalog/indexing.h
src/include/catalog/pg_aggregate.h
src/include/catalog/pg_am.h
src/include/catalog/pg_amop.h
src/include/catalog/pg_amproc.h
src/include/catalog/pg_attrdef.h
src/include/catalog/pg_attribute.h
src/include/catalog/pg_cast.h
src/include/catalog/pg_class.h
src/include/catalog/pg_constraint.h
src/include/catalog/pg_conversion.h
src/include/catalog/pg_database.h
src/include/catalog/pg_depend.h
src/include/catalog/pg_description.h
src/include/catalog/pg_group.h
src/include/catalog/pg_index.h
src/include/catalog/pg_inherits.h
src/include/catalog/pg_language.h
src/include/catalog/pg_largeobject.h
src/include/catalog/pg_listener.h
src/include/catalog/pg_namespace.h
src/include/catalog/pg_opclass.h
src/include/catalog/pg_operator.h
src/include/catalog/pg_proc.h
src/include/catalog/pg_rewrite.h
src/include/catalog/pg_shadow.h
src/include/catalog/pg_statistic.h
src/include/catalog/pg_tablespace.h
src/include/catalog/pg_trigger.h
src/include/catalog/pg_type.h
src/include/catalog/pg_version.h [deleted file]
src/include/catalog/unused_oids
src/include/commands/defrem.h
src/include/postgres.h
src/include/utils/relcache.h

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