/*-------------------------------------------------------------------------
*
- * heap.h--
- * prototypes for functions in lib/catalog/heap.c
+ * heap.h
+ * prototypes for functions in backend/catalog/heap.c
*
*
- * Copyright (c) 1994, Regents of the University of California
+ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: heap.h,v 1.2 1996/11/05 11:23:43 scrappy Exp $
+ * $Id: heap.h,v 1.42 2002/03/06 20:34:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef HEAP_H
#define HEAP_H
-#include <utils/rel.h>
+#include "catalog/pg_attribute.h"
+#include "nodes/parsenodes.h"
+#include "parser/parse_node.h"
+#include "utils/rel.h"
-extern Relation heap_creatr(char *relname, unsigned smgr, TupleDesc att);
+typedef struct RawColumnDefault
+{
+ AttrNumber attnum; /* attribute to attach default to */
+ Node *raw_default; /* default value (untransformed parse
+ * tree) */
+} RawColumnDefault;
-extern int RelationAlreadyExists(Relation pg_class_desc, char relname[]);
-extern void addNewRelationType(char *typeName, Oid new_rel_oid);
+extern Oid RelnameFindRelid(const char *relname);
-extern void AddPgRelationTuple(Relation pg_class_desc,
- Relation new_rel_desc, Oid new_rel_oid, int arch, unsigned natts);
+extern Relation heap_create(char *relname, TupleDesc tupDesc,
+ bool istemp, bool storage_create,
+ bool allow_system_table_mods);
-extern Oid heap_create(char relname[],
- char *typename,
- int arch,
- unsigned smgr, TupleDesc tupdesc);
+extern void heap_storage_create(Relation rel);
-extern void RelationRemoveInheritance(Relation relation);
-extern void RelationRemoveIndexes(Relation relation);
-extern void DeletePgRelationTuple(Relation rdesc);
-extern void DeletePgAttributeTuples(Relation rdesc);
-extern void DeletePgTypeTuple(Relation rdesc);
-extern void heap_destroy(char relname[]);
-extern void heap_destroyr(Relation r);
-
-extern void InitTempRelList();
-extern void AddToTempRelList(Relation r);
-extern void RemoveFromTempRelList(Relation r);
-extern void DestroyTempRels();
+extern Oid heap_create_with_catalog(char *relname, TupleDesc tupdesc,
+ char relkind, bool relhasoids, bool istemp,
+ bool allow_system_table_mods);
-#endif /* HEAP_H */
+extern void heap_drop_with_catalog(const char *relname,
+ bool allow_system_table_mods);
+
+extern void heap_truncate(char *relname);
+
+extern void AddRelationRawConstraints(Relation rel,
+ List *rawColDefaults,
+ List *rawConstraints);
+
+extern Node *cookDefault(ParseState *pstate
+ , Node *raw_default
+ , Oid atttypid
+ , int32 atttypmod
+ , char *attname);
+
+extern int RemoveCheckConstraint(Relation rel, const char *constrName, bool inh);
+
+extern Form_pg_attribute SystemAttributeDefinition(AttrNumber attno,
+ bool relhasoids);
+
+extern Form_pg_attribute SystemAttributeByName(const char *attname,
+ bool relhasoids);
+
+#endif /* HEAP_H */