Eu tenho uma tabela com users
e coluna username
. Estou tentando construir um índice na users#username
coluna, mas está falhando com um erro de valor duplicado. O valor detectado é um valor de conjunto de caracteres árabes. Observe que quando eu faço
select count(*), username from users group by username having count(*)>=2;
ele retorna 0
.
O agrupamento do banco de dados é en_us.UTF8
.
Por que group by
não consegue detectar as duplicatas enquanto o índice exclusivo criado as encontra e falha?
Porque ele usa um índice corrompido.
Tentar
Dessa forma, você força o PostgreSQL a usar uma varredura sequencial em vez de dados não confiáveis de um índice corrompido.