/*-------------------------------------------------------------------------
*
- * 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.8 1997/11/21 18:11:56 momjian 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, TupleDesc att);
+typedef struct RawColumnDefault
+{
+ AttrNumber attnum; /* attribute to attach default to */
+ Node *raw_default; /* default value (untransformed parse
+ * tree) */
+} RawColumnDefault;
-extern Oid
-heap_create(char relname[], TupleDesc tupdesc);
+extern Oid RelnameFindRelid(const char *relname);
-extern void heap_destroy(char relname[]);
-extern void heap_destroyr(Relation r);
+extern Relation heap_create(char *relname, TupleDesc tupDesc,
+ bool istemp, bool storage_create,
+ bool allow_system_table_mods);
-extern void InitTempRelList(void);
-extern void DestroyTempRels(void);
+extern void heap_storage_create(Relation rel);
-#endif /* HEAP_H */
+extern Oid heap_create_with_catalog(char *relname, TupleDesc tupdesc,
+ char relkind, bool relhasoids, bool istemp,
+ bool allow_system_table_mods);
+
+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 */