On 2014-09-30 17:01, Josh Berkus wrote:
> On 09/30/2014 02:43 PM, Tom Lane wrote:
> =?UTF-8?Q?Fabr=C3=ADzio_de_Royes_Mello?= <fabriziome...@gmail.com> writes:
> What's your thoughts about we implement IF NOT EXISTS for CREATE INDEX? It's
> got the same semantic problems as every other variant of CINE. If there were
> a huge groundswell of demand for it, maybe we'd hold our noses and do it
> anyway. But I'm against doing it without that.
This isn't the sort of thing there would ever be a clamor of support
for, because it's just not that visible of a feature. It's more of a
regular annoyance for those who encounter it. More importantly, adding
an IF NOT EXISTS to CREATE INDEX would allow complete idempotent "create
this bunch of tables" scripts, since now the "create index" statements
could be included. This would be very nice for schema management tools.
I do think it should be name-based. While an "IF NOT EXISTS" which
checked for a duplicate column declartion would be nice, there's a raft
of issues with implementing it that way. Users I know are generally
just looking to avoid getting a transaction-halting error when they run
the same create index statement twice.
PostgreSQL Experts Inc.
I second this evaluation. Using build tools to manage schemas, there is
no expectation that the full index signature is checked. Any index of
the same name would be considered a collision for my purposes.
It is much easier to show CINE to a developer than to explain how an
anonymous code block does the same thing.