Re: Getting rid of pre-assignment of index names in CREATE TABLE LIKE
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org
Date: 2012-07-16T16:58:49Z
Lists: pgsql-hackers
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