Restrição de exclusão
A generalização da unicidade: em vez de exigir que duas linhas não tenham o mesmo valor, você pode exigir que não se sobreponham, não se cruzem nem fiquem próximas demais.
Um índice único é o caso especial em que o operador é a igualdade. O PostgreSQL permite escolher qualquer operador suportado pelo tipo de índice, o que abre condições que de outra forma seriam impossíveis de expressar de modo declarativo. O exemplo de manual são as reservas: EXCLUDE USING gist (room WITH =, during WITH &&) diz que duas linhas não podem ter a mesma sala e intervalos de tempo sobrepostos ao mesmo tempo. A alternativa na aplicação é perguntar primeiro se o horário está livre e só então gravar, o que é uma condição de corrida esperando tráfego suficiente para acontecer. Misturar igualdade em colunas comuns com sobreposição em ranges exige a extensão btree_gist.