Re: [postgresSQL] [bug] Two or more different types of constraints with same name creates ambiguity while drooping.

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: [postgresSQL] [bug] Two or more different types of constraints with same name creates ambiguity while drooping.
Дата
Msg-id 56FBE84B.1060104@dunslane.net
обсуждение исходный текст
Ответ на Re: [postgresSQL] [bug] Two or more different types of constraints with same name creates ambiguity while drooping.  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: [postgresSQL] [bug] Two or more different types of constraints with same name creates ambiguity while drooping.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers

On 03/30/2016 10:21 AM, Tom Lane wrote:
> Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> writes:
>> On 2016/03/30 15:16, Harshal Dhumal wrote:
>>> If we create two different type of constrains (lets say primary key and
>>> foreign key) on same table with same name (lets say 'key' ) then its shows
>>> same drop query for both constrains.
> I have a vague recollection that non-uniqueness of constraint names may
> have been intentional at some point.  But yeah, the existence of the
> ALTER TABLE DROP CONSTRAINT syntax seems to make that a pretty bad idea.
>
>> It seems that, whereas name uniqueness check occurs when creating a named
>> FK constraint, the same does not occur when creating a named PK constraint
>> or any index-based constraint for that matter (they are handled by
>> different code paths - in the latter's case, name conflicts with existing
>> relations is checked for when creating the constraint index)
> I think that if we want to ensure uniqueness of constraint names, this
> is really approaching it the wrong way, as it still fails to provide
> any guarantees (consider concurrent index creation, for example).
> What we need is a unique index on pg_constraint.
>
> The problem with that is that pg_constraint contains both table-related
> and type (domain) related constraints; but it strikes me that we could
> probably create a unique index on (conrelid, contypid, conname).  Given
> the convention that conrelid is zero in a type constraint and contypid
> is zero in a table constraint, this should work to enforce per-table
> or per-type constraint name uniqueness.  The cost of an extra index
> is a bit annoying, but we could probably make it help pay for itself
> by speeding up assorted searches.
>
>             


+1, but does that mean people will have to change constraint names to be 
compliant before running pg_upgrade?

cheers

andrew



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Aleksander Alekseev
Дата:
Сообщение: Re: WIP: Access method extendability
Следующее
От: Alexander Korotkov
Дата:
Сообщение: Re: PoC: Partial sort