On Mon, Jul 16, 2012 at 12:43 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
>> On Sat, Jul 14, 2012 at 4:02 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>>> I suggested that we could dodge the problem by allowing IndexStmt to
>>> carry a comment to be attached to the new index, and thereby avoid
>>> needing an explicit COMMENT command. Attached is a patch that fixes it
>>> that way.
>
>> I agree with this approach. I think it's pretty much always a bad
>> idea for DDL command A to fake up a parse node of the type used by DDL
>> command B. It tends to make the code ugly and unmaintainable and
>> propagates nasty abstraction violations all over the place.
>
> Hmm, well, if that's the argument for doing this then we really need to
> throw away the entire implementation of CREATE TABLE LIKE, because it's
> doing that all over the place; I'm only proposing to remove one specific
> instance.
The problem isn't confined to CREATE TABLE LIKE; it's a widespread
design flaw that will likely take years of work to clean up
completely. I don't think that's a reason not to commit your change
though; it fixes a bug and is an incremental improvement, even if a
small one. That having been said, if you're feeling an urge to tackle
the problem more broadly, don't let me stand in your way...
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company