From 577e21b34f8629ce76651a6388298891f81be99a Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 26 Oct 1999 03:12:39 +0000 Subject: 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 ] | COLUMN . | AGGREGATE | FUNCTION (arg1, arg2, ...) | OPERATOR (leftoperand_typ rightoperand_typ) | TRIGGER ON relname> Mike Mascari (mascarim@yahoo.com) --- src/include/catalog/heap.h | 17 +++++++---------- src/include/commands/comment.h | 31 +++++++++++++++++++++++++++++++ src/include/commands/creatinh.h | 3 +-- src/include/nodes/parsenodes.h | 12 +++++++----- 4 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 src/include/commands/comment.h (limited to 'src/include') diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h index 4720013160..1cb86b501c 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 0000000000..93ed200a74 --- /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 11d5fdb7a0..8bfe142a1f 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 208b31d740..aac3ef7de5 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; /* ---------------------- -- cgit v1.2.1