diferenças de agrupamento postgres. osx v ubuntu
Então, recentemente eu percebi que o agrupamento é um grande negócio no postgres, e que muitos comentários se referem ao suporte do OSX / local como "quebrado", o que não me esclareceu. Para os propósitos desta questão, estou ignorando os aspectos padrão da tabela / coluna do agrupamento e especificando-o explicitamente.
meu laptop é osx com postgres 9.2.4meu servidor é o Ubuntu com o postgres 9.1.9comum a ambos:
# show lc_collate ;
en_US.UTF-8
# show lc_ctype ;
en_US.UTF-8
no meu laptop:
select ',' < '-' collate "en_US.UTF-8" as result;
true
Agora, meu servidor não tem collation "en_US.UTF-8", mas ele tem "en_US.utf8" (que eu reconheço não é a mesma coisa, embora eu esperaria que ele se comportasse da mesma forma)
select ',' < '-' collate "en_US.utf8" as result;
false
Então, aqui é onde eu estou enlouquecendo. A ordem "C" sempre diria (para ambas as máquinas) que "," é menor que "-", com as quais meu cérebro concordaria.
qual implementação utf8 está correta? e se alguém pudesse me apontar a definição que ajudaria, já que na maioria das vezes só consegui achar acusações de "quebrado" nivelado com osx. Então, eu ficaria preocupado por ter errado toda a minha vida pensando que a vírgula ordena antes do hífen, mas entre em um árbitro razoavelmente confiável de texto e unicode, etc. python. que no servidor Ubuntu gera:
>>> print u',' < u'-', ',' < '-'
True True
Então, eu estou me sentindo muito parecido com este conceito de agrupamento é mais quebrado no meu servidor Ubuntu do que o meu servidor osx. mas eu não tenho um agrupamento "adequado" para criar meu agrupamento "en_US.UTF-8" de ala "criar agrupamento", então estou perdido em como criar paridade, ou qual resposta (verdadeiro / falso) i deve estar usando como referência correta. (além de estar pessoalmente de acordo com a ordem ascii para o que são, afinal de contas, caracteres ascii).
Então, em poucas palavras, qual é a resposta correta para en_US.UTF-8?