Hello,
This candidate patch is kind of a bug-solving patch, it applies to one unique file : src/backend/parser/parse_utilcmd.c,
on function transformTableLikeClause.
Its aim is to include the "top-level" comment of the object (table, view, matview...)
that is being copied ; alongside the lower-level comments already in place.
I believe the patch could be ready for application and master branch, but obviously needs review.
It compiled successfully on master/228b0485f471480cf825b7b30ffa3d66bd692c57,
and "worked".
I did not run any regression test as this seems trivial to me.
I suppose it does not need integration in a commitFest either.
-------------------------------------------------------------------------------------------------------
$ diff -c parse_utilcmd_old.c parse_utilcmd.c
*** parse_utilcmd_old.c 2018-12-11 12:44:52.288309000 +0100
--- parse_utilcmd.c 2018-12-11 12:44:52.208308782 +0100
***************
*** 918,923 ****
--- 918,941 ----
RelationGetRelationName(relation));
}
+ /*
+ * Copy the comment on the object itself, if requested.
+ */
+ if ((table_like_clause->options & CREATE_TABLE_LIKE_COMMENTS) &&
+ (comment = GetComment(relation->rd_id,
+ RelationRelationId,
+ 0)) != NULL)
+ {
+ CommentStmt *stmt = makeNode(CommentStmt);
+
+ stmt->objtype = get_relkind_objtype(relation->rd_rel->relkind);
+ stmt->object = (Node *) list_make2(makeString(cxt->relation->schemaname),
+ makeString(cxt->relation->relname));
+ stmt->comment = comment;
+
+ cxt->alist = lappend(cxt->alist, stmt);
+ }
+
tupleDesc = RelationGetDescr(relation);
constr = tupleDesc->constr;
-------------------------------------------------------------------------------------------------------
Best regards,
Maxime Chambonnet