/*-------------------------------------------------------------------------
*
* heap.h
- * prototypes for functions in lib/catalog/heap.c
+ * 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.27 2000/01/22 14:20:53 petere Exp $
+ * $Id: heap.h,v 1.42 2002/03/06 20:34:55 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#ifndef HEAP_H
#define HEAP_H
+#include "catalog/pg_attribute.h"
+#include "nodes/parsenodes.h"
+#include "parser/parse_node.h"
#include "utils/rel.h"
typedef struct RawColumnDefault
{
AttrNumber attnum; /* attribute to attach default to */
- Node *raw_default; /* default value (untransformed parse tree) */
+ Node *raw_default; /* default value (untransformed parse
+ * tree) */
} RawColumnDefault;
-extern Oid RelnameFindRelid(const char *relname);
-extern Relation heap_create(char *relname, TupleDesc att,
- bool isnoname, bool istemp, bool storage_create);
-extern bool heap_storage_create(Relation rel);
+extern Oid RelnameFindRelid(const char *relname);
-extern Oid heap_create_with_catalog(char *relname, TupleDesc tupdesc,
- char relkind, bool istemp);
+extern Relation heap_create(char *relname, TupleDesc tupDesc,
+ bool istemp, bool storage_create,
+ bool allow_system_table_mods);
+
+extern void heap_storage_create(Relation rel);
+
+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_drop_with_catalog(const char *relname);
extern void heap_truncate(char *relname);
-extern void heap_drop(Relation rel);
extern void AddRelationRawConstraints(Relation rel,
- List *rawColDefaults,
- List *rawConstraints);
+ 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 void InitNoNameRelList(void);
-extern void DropNoNameRels(void);
+extern Form_pg_attribute SystemAttributeByName(const char *attname,
+ bool relhasoids);
-#endif /* HEAP_H */
+#endif /* HEAP_H */