]> granicus.if.org Git - postgresql/blobdiff - src/include/catalog/heap.h
Add CASCADE option to TRUNCATE. Joachim Wieland
[postgresql] / src / include / catalog / heap.h
index 7ab04b05fb25b1dd765830e90ec1b717c6e2814e..09516ed0215a8cef1587325a4099f129d5d0995b 100644 (file)
@@ -1,13 +1,13 @@
 /*-------------------------------------------------------------------------
  *
  * heap.h
- *       prototypes for functions in lib/catalog/heap.c
+ *       prototypes for functions in backend/catalog/heap.c
  *
  *
- * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: heap.h,v 1.35 2001/05/07 00:43:24 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/catalog/heap.h,v 1.77 2006/03/03 03:30:53 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
 #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);
+typedef struct CookedConstraint
+{
+       ConstrType      contype;                /* CONSTR_DEFAULT or CONSTR_CHECK */
+       char       *name;                       /* name, or NULL if none */
+       AttrNumber      attnum;                 /* which attr (only for DEFAULT) */
+       Node       *expr;                       /* transformed default or check expr */
+} CookedConstraint;
 
-extern Relation heap_create(char *relname, TupleDesc tupDesc,
-                       bool istemp, bool storage_create,
+extern Relation heap_create(const char *relname,
+                       Oid relnamespace,
+                       Oid reltablespace,
+                       Oid relid,
+                       TupleDesc tupDesc,
+                       char relkind,
+                       bool shared_relation,
                        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 istemp,
+extern Oid heap_create_with_catalog(const char *relname,
+                                                Oid relnamespace,
+                                                Oid reltablespace,
+                                                Oid relid,
+                                                Oid ownerid,
+                                                TupleDesc tupdesc,
+                                                char relkind,
+                                                bool shared_relation,
+                                                bool oidislocal,
+                                                int oidinhcount,
+                                                OnCommitAction oncommit,
                                                 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(Oid relid);
 
-extern void heap_truncate(char *relname);
+extern void heap_truncate(List *relids);
 
-extern void AddRelationRawConstraints(Relation rel,
+extern void heap_truncate_check_FKs(List *relations, bool tempTables);
+
+extern List *heap_truncate_find_FKs(List *relationIds);
+
+extern List *AddRelationRawConstraints(Relation rel,
                                                  List *rawColDefaults,
                                                  List *rawConstraints);
 
-extern Form_pg_attribute SystemAttributeDefinition(AttrNumber attno);
+extern void StoreAttrDefault(Relation rel, AttrNumber attnum, char *adbin);
+
+extern Node *cookDefault(ParseState *pstate,
+                       Node *raw_default,
+                       Oid atttypid,
+                       int32 atttypmod,
+                       char *attname);
+
+extern int RemoveRelConstraints(Relation rel, const char *constrName,
+                                        DropBehavior behavior);
+
+extern void DeleteRelationTuple(Oid relid);
+extern void DeleteAttributeTuples(Oid relid);
+extern void RemoveAttributeById(Oid relid, AttrNumber attnum);
+extern void RemoveAttrDefault(Oid relid, AttrNumber attnum,
+                                 DropBehavior behavior, bool complain);
+extern void RemoveAttrDefaultById(Oid attrdefId);
+extern void RemoveStatistics(Oid relid, AttrNumber attnum);
+
+extern Form_pg_attribute SystemAttributeDefinition(AttrNumber attno,
+                                                 bool relhasoids);
+
+extern Form_pg_attribute SystemAttributeByName(const char *attname,
+                                         bool relhasoids);
+
+extern void CheckAttributeNamesTypes(TupleDesc tupdesc, char relkind);
+
+extern void CheckAttributeType(const char *attname, Oid atttypid);
 
-#endif  /* HEAP_H */
+#endif   /* HEAP_H */