On 09/30/2014 03:53 PM, Andres Freund wrote:
> On 2014-09-30 18:47:24 -0400, Tom Lane wrote:
>> Josh Berkus <josh@agliodbs.com> writes:
>>> On 09/30/2014 02:43 PM, Tom Lane wrote:
>>>> Fabrízio de Royes Mello <fabriziomello@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.
>>
>>> I do think it should be name-based.
>>
>> Name-based, eh? Don't you recall that in modern practice, people
>> generally don't specify names for indexes at all? They've usually
>> got system-generated names, which doesn't seem like a very cool thing
>> to have scripts depending on.
>
> Good point. I think it's fair enough to only allow CINE on named
> indexes.
On the other hand, the way we form system-generated names is predicable,
so I think it would be perfectly OK to include them. Desirable, in fact.
For example, if I did this:
CREATE INDEX ON tab1 (cola, colb);
CREATE INDEX IF NOT EXISTS ON tab1 (cola, colb);
I would expect to not end up with two indexes on those two particular
columns, and if we don't omit system-generated names, I won't.
Not that I'm a fan of omitting the name ...
--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com