1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-15 03:41:20 +03:00

Make large objects their own relkind type. Fix dups in pg_class_mb

files.  Fix sequence creation hack for relkind type.
This commit is contained in:
Bruce Momjian
1998-08-06 05:13:14 +00:00
parent 8962ec4bc4
commit af5fde7491
23 changed files with 2904 additions and 3687 deletions

View File

@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.55 1998/07/27 19:37:46 vadim Exp $
* $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.56 1998/08/06 05:12:19 momjian Exp $
*
* INTERFACE ROUTINES
* heap_create() - Create an uncataloged heap relation
@@ -16,7 +16,7 @@
*
* NOTES
* this code taken from access/heap/create.c, which contains
* the old heap_create_with_catalogr, amcreate, and amdestroy.
* the old heap_create_with_catalog, amcreate, and amdestroy.
* those routines will soon call these routines using the function
* manager,
* just like the poorly named "NewXXX" routines do. The
@@ -65,7 +65,8 @@
static void
AddPgRelationTuple(Relation pg_class_desc,
Relation new_rel_desc, Oid new_rel_oid, unsigned natts);
Relation new_rel_desc, Oid new_rel_oid, unsigned natts,
char relkind);
static void AddToTempRelList(Relation r);
static void DeletePgAttributeTuples(Relation rdesc);
static void DeletePgRelationTuple(Relation rdesc);
@@ -345,7 +346,7 @@ heap_create(char *name,
* preforms a scan to ensure that no relation with the
* same name already exists.
*
* 3) heap_create_with_catalogr() is called to create the new relation
* 3) heap_create_with_catalog() is called to create the new relation
* on disk.
*
* 4) TypeDefine() is called to define a new type corresponding
@@ -378,7 +379,7 @@ heap_create(char *name,
* create new relation
* insert new relation into attribute catalog
*
* Should coordinate with heap_create_with_catalogr(). Either
* Should coordinate with heap_create_with_catalog(). Either
* it should not be called or there should be a way to prevent
* the relation from being removed at the end of the
* transaction if it is successful ('u'/'r' may be enough).
@@ -633,14 +634,13 @@ static void
AddPgRelationTuple(Relation pg_class_desc,
Relation new_rel_desc,
Oid new_rel_oid,
unsigned natts)
unsigned natts,
char relkind)
{
Form_pg_class new_rel_reltup;
HeapTuple tup;
Relation idescs[Num_pg_class_indices];
bool isBootstrap;
extern bool ItsSequenceCreation; /* It's hack, I know... - vadim
* 03/28/97 */
/* ----------------
* first we munge some of the information in our
@@ -653,10 +653,7 @@ AddPgRelationTuple(Relation pg_class_desc,
/* new_rel_reltup->reltuples = 1; *//* XXX */
new_rel_reltup->relowner = GetUserId();
if (ItsSequenceCreation)
new_rel_reltup->relkind = RELKIND_SEQUENCE;
else
new_rel_reltup->relkind = RELKIND_RELATION;
new_rel_reltup->relkind = relkind;
new_rel_reltup->relnatts = natts;
/* ----------------
@@ -747,8 +744,9 @@ addNewRelationType(char *typeName, Oid new_rel_oid)
* --------------------------------
*/
Oid
heap_create_with_catalog(char relname[],
TupleDesc tupdesc)
heap_create_with_catalog(char *relname,
TupleDesc tupdesc,
char relkind)
{
Relation pg_class_desc;
Relation new_rel_desc;
@@ -813,7 +811,8 @@ heap_create_with_catalog(char relname[],
AddPgRelationTuple(pg_class_desc,
new_rel_desc,
new_rel_oid,
natts);
natts,
relkind);
StoreConstraints(new_rel_desc);