aboutsummaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-10-26 03:12:39 +0000
committerBruce Momjian <bruce@momjian.us>1999-10-26 03:12:39 +0000
commit577e21b34f8629ce76651a6388298891f81be99a (patch)
treef03a048bca5a17f70e4fa4337629d2ca52af6b34 /src/include
parent51f62d505e2aba66bf7870c7bd005cd32e7d0953 (diff)
downloadpostgresql-577e21b34f8629ce76651a6388298891f81be99a.tar.gz
postgresql-577e21b34f8629ce76651a6388298891f81be99a.zip
Hello.
The following patch extends the COMMENT ON functionality to the rest of the database objects beyond just tables, columns, and views. The grammer of the COMMENT ON statement now looks like: COMMENT ON [ [ DATABASE | INDEX | RULE | SEQUENCE | TABLE | TYPE | VIEW ] <objname> | COLUMN <relation>.<attribute> | AGGREGATE <aggname> <aggtype> | FUNCTION <funcname> (arg1, arg2, ...) | OPERATOR <op> (leftoperand_typ rightoperand_typ) | TRIGGER <triggername> ON relname> Mike Mascari (mascarim@yahoo.com)
Diffstat (limited to 'src/include')
-rw-r--r--src/include/catalog/heap.h17
-rw-r--r--src/include/commands/comment.h31
-rw-r--r--src/include/commands/creatinh.h3
-rw-r--r--src/include/nodes/parsenodes.h12
4 files changed, 46 insertions, 17 deletions
diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h
index 47200131604..1cb86b501c7 100644
--- a/src/include/catalog/heap.h
+++ b/src/include/catalog/heap.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: heap.h,v 1.23 1999/10/15 01:49:44 momjian Exp $
+ * $Id: heap.h,v 1.24 1999/10/26 03:12:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -21,23 +21,20 @@ typedef struct RawColumnDefault
Node *raw_default; /* default value (untransformed parse tree) */
} RawColumnDefault;
-extern Oid RelnameFindRelid(char *relname);
+extern Oid RelnameFindRelid(char *relname);
extern Relation heap_create(char *relname, TupleDesc att,
- bool isnoname, bool istemp);
+ bool isnoname, bool istemp);
-extern Oid heap_create_with_catalog(char *relname,
- TupleDesc tupdesc, char relkind, bool istemp);
+extern Oid heap_create_with_catalog(char *relname, TupleDesc tupdesc,
+ char relkind, bool istemp);
extern void heap_destroy_with_catalog(char *relname);
extern void heap_truncate(char *relname);
extern void heap_destroy(Relation rel);
-extern void CreateComments(Oid object, char *comments);
-extern void DeleteComments(Oid object);
-
extern void AddRelationRawConstraints(Relation rel,
- List *rawColDefaults,
- List *rawConstraints);
+ List *rawColDefaults,
+ List *rawConstraints);
extern void InitNoNameRelList(void);
extern void DestroyNoNameRels(void);
diff --git a/src/include/commands/comment.h b/src/include/commands/comment.h
new file mode 100644
index 00000000000..93ed200a74a
--- /dev/null
+++ b/src/include/commands/comment.h
@@ -0,0 +1,31 @@
+/*-------------------------------------------------------------------------
+ *
+ * comment.h
+ *
+ * Prototypes for functions in commands/comment.c
+ *
+ * Copyright (c) 1999, PostgreSQL Global Development Group
+ *
+ *-------------------------------------------------------------------------
+ */
+
+#ifndef COMMENT_H
+#define COMMENT_H
+
+/*------------------------------------------------------------------
+ * Function Prototypes --
+ *
+ * The following protoypes define the public functions of the comment
+ * related routines. CreateComments() is used to create/drop a comment
+ * for any object with a valid oid. DeleteComments() deletes, if any,
+ * the comments associated with the object. CommentObject() is used to
+ * create comments to be identified by the specific type.
+ *------------------------------------------------------------------
+ */
+
+void CreateComments(Oid oid, char *comment);
+void DeleteComments(Oid oid);
+void CommentObject(int objtype, char *objname, char *objproperty,
+ List *objlist, char *comment);
+
+#endif /* COMMENT_H */
diff --git a/src/include/commands/creatinh.h b/src/include/commands/creatinh.h
index 11d5fdb7a0d..8bfe142a1f4 100644
--- a/src/include/commands/creatinh.h
+++ b/src/include/commands/creatinh.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: creatinh.h,v 1.11 1999/10/15 01:49:46 momjian Exp $
+ * $Id: creatinh.h,v 1.12 1999/10/26 03:12:38 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -18,6 +18,5 @@
extern void DefineRelation(CreateStmt *stmt, char relkind);
extern void RemoveRelation(char *name);
extern void TruncateRelation(char *name);
-extern void CommentRelation(char *name, char *attr, char *comment);
#endif /* CREATINH_H */
diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h
index 208b31d740d..aac3ef7de53 100644
--- a/src/include/nodes/parsenodes.h
+++ b/src/include/nodes/parsenodes.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: parsenodes.h,v 1.85 1999/10/15 01:49:47 momjian Exp $
+ * $Id: parsenodes.h,v 1.86 1999/10/26 03:12:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -316,10 +316,12 @@ typedef struct TruncateStmt
*/
typedef struct CommentStmt
{
- NodeTag type;
- char *relname; /* relation to create/drop comment */
- char *attrname; /* attribute to comment on */
- char *comment; /* the actual comment */
+ NodeTag type;
+ int objtype; /* Object's type */
+ char *objname; /* Name of the object */
+ char *objproperty; /* Property Id (such as column) */
+ List *objlist; /* Arguments for VAL objects */
+ char *comment; /* The comment to insert */
} CommentStmt;
/* ----------------------