First phase of project to use fixed OIDs for all system catalogs and
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.
This commit is contained in:
parent
2193a856a2
commit
7c13781ee7
|
@ -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 a <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_ )
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.42 2005/02/22 04:35:34 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/catalog/dependency.c,v 1.43 2005/04/14 01:38:15 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -29,8 +29,10 @@
|
|||
#include "catalog/pg_depend.h"
|
||||
#include "catalog/pg_language.h"
|
||||
#include "catalog/pg_opclass.h"
|
||||
#include "catalog/pg_proc.h"
|
||||
#include "catalog/pg_rewrite.h"
|
||||
#include "catalog/pg_trigger.h"
|
||||
#include "catalog/pg_type.h"
|
||||
#include "commands/comment.h"
|
||||
#include "commands/defrem.h"
|
||||
#include "commands/proclang.h"
|
||||
|
@ -907,7 +909,7 @@ recordDependencyOnSingleRelExpr(const ObjectAddress *depender,
|
|||
{
|
||||
ObjectAddress *thisobj = context.addrs.refs + oldref;
|
||||
|
||||
if (thisobj->classId == RelOid_pg_class &&
|
||||
if (thisobj->classId == RelationRelationId &&
|
||||
thisobj->objectId == relId)
|
||||
{
|
||||
/* Move this ref into self_addrs */
|
||||
|
@ -1305,9 +1307,9 @@ term_object_addresses(ObjectAddresses *addrs)
|
|||
static void
|
||||
init_object_classes(void)
|
||||
{
|
||||
object_classes[OCLASS_CLASS] = RelOid_pg_class;
|
||||
object_classes[OCLASS_PROC] = RelOid_pg_proc;
|
||||
object_classes[OCLASS_TYPE] = RelOid_pg_type;
|
||||
object_classes[OCLASS_CLASS] = RelationRelationId;
|
||||
object_classes[OCLASS_PROC] = ProcedureRelationId;
|
||||
object_classes[OCLASS_TYPE] = TypeRelationId;
|
||||
object_classes[OCLASS_CAST] = get_system_catalog_relid(CastRelationName);
|
||||
object_classes[OCLASS_CONSTRAINT] = get_system_catalog_relid(ConstraintRelationName);
|
||||
object_classes[OCLASS_CONVERSION] = get_system_catalog_relid(ConversionRelationName);
|
||||
|
@ -1333,15 +1335,15 @@ getObjectClass(const ObjectAddress *object)
|
|||
/* Easy for the bootstrapped catalogs... */
|
||||
switch (object->classId)
|
||||
{
|
||||
case RelOid_pg_class:
|
||||
case RelationRelationId:
|
||||
/* caller must check objectSubId */
|
||||
return OCLASS_CLASS;
|
||||
|
||||
case RelOid_pg_proc:
|
||||
case ProcedureRelationId:
|
||||
Assert(object->objectSubId == 0);
|
||||
return OCLASS_PROC;
|
||||
|
||||
case RelOid_pg_type:
|
||||
case TypeRelationId:
|
||||
Assert(object->objectSubId == 0);
|
||||
return OCLASS_TYPE;
|
||||
}
|
||||
|
@ -1560,7 +1562,7 @@ getObjectDescription(const ObjectAddress *object)
|
|||
|
||||
attrdef = (Form_pg_attrdef) GETSTRUCT(tup);
|
||||
|
||||
colobject.classId = RelOid_pg_class;
|
||||
colobject.classId = RelationRelationId;
|
||||
colobject.objectId = attrdef->adrelid;
|
||||
colobject.objectSubId = attrdef->adnum;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.81 2005/01/27 23:23:54 neilc Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.82 2005/04/14 01:38:16 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -20,9 +20,11 @@
|
|||
#include "catalog/indexing.h"
|
||||
#include "catalog/namespace.h"
|
||||
#include "catalog/pg_constraint.h"
|
||||
#include "catalog/pg_database.h"
|
||||
#include "catalog/pg_description.h"
|
||||
#include "catalog/pg_largeobject.h"
|
||||
#include "catalog/pg_operator.h"
|
||||
#include "catalog/pg_proc.h"
|
||||
#include "catalog/pg_rewrite.h"
|
||||
#include "catalog/pg_trigger.h"
|
||||
#include "catalog/pg_type.h"
|
||||
|
@ -352,7 +354,7 @@ CommentRelation(int objtype, List *relname, char *comment)
|
|||
|
||||
/* Create the comment using the relation's oid */
|
||||
|
||||
CreateComments(RelationGetRelid(relation), RelOid_pg_class, 0, comment);
|
||||
CreateComments(RelationGetRelid(relation), RelationRelationId, 0, comment);
|
||||
|
||||
/* Done, but hold lock until commit */
|
||||
relation_close(relation, NoLock);
|
||||
|
@ -406,7 +408,7 @@ CommentAttribute(List *qualname, char *comment)
|
|||
|
||||
/* Create the comment using the relation's oid */
|
||||
|
||||
CreateComments(RelationGetRelid(relation), RelOid_pg_class,
|
||||
CreateComments(RelationGetRelid(relation), RelationRelationId,
|
||||
(int32) attnum, comment);
|
||||
|
||||
/* Done, but hold lock until commit */
|
||||
|
@ -475,7 +477,7 @@ CommentDatabase(List *qualname, char *comment)
|
|||
database);
|
||||
|
||||
/* Create the comment with the pg_database oid */
|
||||
CreateComments(oid, RelOid_pg_database, 0, comment);
|
||||
CreateComments(oid, DatabaseRelationId, 0, comment);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -670,7 +672,7 @@ CommentType(List *typename, char *comment)
|
|||
|
||||
/* Call CreateComments() to create/drop the comments */
|
||||
|
||||
CreateComments(oid, RelOid_pg_type, 0, comment);
|
||||
CreateComments(oid, TypeRelationId, 0, comment);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -706,7 +708,7 @@ CommentAggregate(List *aggregate, List *arguments, char *comment)
|
|||
|
||||
/* Call CreateComments() to create/drop the comments */
|
||||
|
||||
CreateComments(oid, RelOid_pg_proc, 0, comment);
|
||||
CreateComments(oid, ProcedureRelationId, 0, comment);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -735,7 +737,7 @@ CommentProc(List *function, List *arguments, char *comment)
|
|||
|
||||
/* Call CreateComments() to create/drop the comments */
|
||||
|
||||
CreateComments(oid, RelOid_pg_proc, 0, comment);
|
||||
CreateComments(oid, ProcedureRelationId, 0, comment);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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));
|
||||
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_conname_nsp_index on pg_constraint using btree(conname name_ops, connamespace 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_conrelid_index on pg_constraint using btree(conrelid 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_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_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_depender_index on pg_depend using btree(classid oid_ops, objid oid_ops, objsubid 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_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_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_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_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_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_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_tgconstrname_index on pg_trigger using btree(tgconstrname name_ops));
|
||||
/* 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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/catalog/pg_group.h,v 1.20 2004/12/31 22:03:24 pgsql Exp $
|
||||
* $PostgreSQL: pgsql/src/include/catalog/pg_group.h,v 1.21 2005/04/14 01:38:20 tgl Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
|
@ -20,12 +20,13 @@
|
|||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definitions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* CATALOG(), BKI_BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#define GroupRelationId 1261
|
||||
|
||||
CATALOG(pg_group) BOOTSTRAP BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
CATALOG(pg_group,1261) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
{
|
||||
NameData groname;
|
||||
int4 grosysid;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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) */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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 */
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue