diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-12-22 23:54:17 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-12-22 23:54:17 +0000 |
commit | b7d67954456f15762c04e5269b64adc88dcd0860 (patch) | |
tree | 0b9adca664f334d753092ca52b1a2e5afb0e63ef /src/backend/parser/parse_utilcmd.c | |
parent | de0d75ea2416eb86f9d686432bd8961b04a8d9eb (diff) | |
download | postgresql-b7d67954456f15762c04e5269b64adc88dcd0860.tar.gz postgresql-b7d67954456f15762c04e5269b64adc88dcd0860.zip |
Disallow comments on columns of relation types other than tables, views,
and composite types, which are the only relkinds for which pg_dump support
exists for dumping column comments. There is no obvious usefulness for
comments on columns of sequences or toast tables; and while comments on
index columns might have some value, it's not worth the risk of compatibility
problems due to possible changes in the algorithm for assigning names to
index columns. Per discussion.
In consequence, remove now-dead code for copying such comments in CREATE TABLE
LIKE.
Diffstat (limited to 'src/backend/parser/parse_utilcmd.c')
-rw-r--r-- | src/backend/parser/parse_utilcmd.c | 49 |
1 files changed, 6 insertions, 43 deletions
diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 89d81bff624..75c8d863dcd 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -19,7 +19,7 @@ * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.33 2009/12/20 18:28:14 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/parser/parse_utilcmd.c,v 2.34 2009/12/22 23:54:17 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -745,14 +745,12 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt, /* Copy comment on index */ if (inhRelation->options & CREATE_TABLE_LIKE_COMMENTS) { - Form_pg_attribute *attrs; - CommentStmt *stmt; - int colno; - comment = GetComment(parent_index_oid, RelationRelationId, 0); - + if (comment != NULL) { + CommentStmt *stmt; + /* * We have to assign the index a name now, so that we * can reference it in CommentStmt. @@ -771,41 +769,6 @@ transformInhRelation(ParseState *pstate, CreateStmtContext *cxt, cxt->alist = lappend(cxt->alist, stmt); } - - /* Copy comments on index's columns */ - attrs = RelationGetDescr(parent_index)->attrs; - for (colno = 1; - colno <= RelationGetNumberOfAttributes(parent_index); - colno++) - { - char *attname; - - comment = GetComment(parent_index_oid, RelationRelationId, - colno); - if (comment == NULL) - continue; - - /* - * We have to assign the index a name now, so that we - * can reference it in CommentStmt. - */ - if (index_stmt->idxname == NULL) - index_stmt->idxname = chooseIndexName(cxt->relation, - index_stmt); - - attname = NameStr(attrs[colno - 1]->attname); - - stmt = makeNode(CommentStmt); - stmt->objtype = OBJECT_COLUMN; - stmt->objname = - list_make3(makeString(cxt->relation->schemaname), - makeString(index_stmt->idxname), - makeString(attname)); - stmt->objargs = NIL; - stmt->comment = comment; - - cxt->alist = lappend(cxt->alist, stmt); - } } /* Save it in the inh_indexes list for the time being */ @@ -832,12 +795,12 @@ static char * chooseIndexName(const RangeVar *relation, IndexStmt *index_stmt) { Oid namespaceId; - + namespaceId = RangeVarGetCreationNamespace(relation); if (index_stmt->primary) { /* no need for column list with pkey */ - return ChooseRelationName(relation->relname, NULL, + return ChooseRelationName(relation->relname, NULL, "pkey", namespaceId); } else if (index_stmt->excludeOpNames != NIL) |