Postgres. Почему для ограничения unique создается B-tree индекс?

По документации https://www.postgresql.org/docs/current/indexes-unique.html

Currently, only B-tree indexes can be declared unique.

По перфомансу был бы оптимален Hash index и для меня выглядит так что его функциональности достаточно для потдержания ограничения "unique". Почему в данном случае используется B-tree индекс?


Ответы (1 шт):

Автор решения: Мелкий

Потому что только для btree реализована соответствующая логика, позволяющая заявить amcanunique.

Если хотите погрузиться в нижележащую проблематику (либо и вовсе помочь с улучшением hash index access method) - можете начать вот отсюда. Дискуссионные моменты о concurency, а в основном нехватка заинтересованных людей для развития этого патча.

→ Ссылка