Agrupamentos compatíveis com o Babelfish
Ao criar um cluster de banco de dados do Aurora PostgreSQL com o Babelfish, você escolhe um agrupamento para seus dados. Um agrupamento especifica a ordem de classificação e os padrões de bits que produzem o texto ou os caracteres em determinada linguagem humana escrita. Um agrupamento inclui regras que comparam dados de determinado conjunto de padrões de bits. O agrupamento está relacionado à localização. Localidades diferentes afetam o mapeamento de caracteres, a ordem de classificação e similares. Os atributos de agrupamento são refletidos nos nomes de vários agrupamentos. Para obter informações sobre atributos, consulte Babelfish collation attributes table.
O Babelfish mapeia agrupamentos do SQL Server para agrupamentos comparáveis que são fornecidos pelo Babelfish. O Babelfish predefine agrupamentos Unicode com comparações de string culturalmente sensíveis e ordens de classificação. O Babelfish também fornece uma maneira de converter os agrupamentos no banco de dados SQL Server para o agrupamento Babelfish de correspondência mais próxima. Agrupamentos específicos de localidade são fornecidos para diferentes idiomas e regiões.
Alguns agrupamentos definem uma página de código que corresponde a uma codificação no lado do cliente. O Babelfish converte automaticamente da codificação do servidor na codificação do cliente, dependendo do agrupamento de cada coluna de saída.
O Babelfish é compatível com os agrupamentos listados na Babelfish supported collations table. O Babelfish mapeia agrupamentos do SQL Server para agrupamentos comparáveis que são fornecidos pelo Babelfish.
O Babelfish usa a versão 153.80 da biblioteca de agrupamentos International Components for Unicode (ICU). Para obter mais informações sobre agrupamentos ICU, consulte Collation
Tópicos
Parâmetros de cluster de banco de dados que controlam o agrupamento e a localidade
Os parâmetros a seguir afetam o comportamento do agrupamento.
- babelfishpg_tsql.default_locale
Esse parâmetro especifica a localidade padrão usada pelo agrupamento. Esse parâmetro é utilizado em combinação com os atributos listados na Babelfish collation attributes table para personalizar agrupamentos para um idioma e uma região específicos. O valor padrão desse parâmetro é
en-US
.A localidade padrão aplica-se a todos os nomes de agrupamentos do Babelfish que começam com “BBF” e a todos os agrupamentos do SQL Server mapeados para agrupamentos do Babelfish. Alterar a configuração para esse parâmetro em um cluster de banco de dados do Babelfish existente não afeta a localidade dos agrupamentos existentes. Para ver a lista de agrupamentos, consulte a Babelfish supported collations table.
- babelfishpg_tsql.server_collation_name
Esse parâmetro especifica o agrupamento padrão para o servidor (instância de cluster de banco de dados do Aurora PostgreSQL) e do banco de dados. O valor padrão é
sql_latin1_general_cp1_ci_as
.server_collation_name
deve ser um agrupamentoCI_AS
, pois no T-SQL o agrupamento de servidor determina como os identificadores são comparados.Ao criar seu cluster de banco de dados do Babelfish, escolha o Collation name (Nome do agrupamento) na lista selecionável. Estes incluem os agrupamentos listados na Babelfish supported collations table. Não modifique
server_collation_name
depois que o banco de dados Babelfish for criado.
As configurações escolhidas ao criar seu cluster de banco de dados do Babelfish para Aurora PostgreSQL são armazenadas no grupo de parâmetros do cluster de banco de dados associado ao cluster para esses parâmetros e definem seu comportamento de agrupamento.
Agrupamentos determinísticos e não determinísticos e o Babelfish
O Babelfish oferece suporte para agrupamentos determinísticos e não determinísticos:
Um agrupamento determinístico avalia caracteres que têm sequências de bytes idênticas como iguais. Isso significa que
x
eX
não são iguais em um agrupamento determinístico. Agrupamentos determinísticos fazem distinção de maiúsculas e minúsculas (CS) e dialetos (AS).Um agrupamento não determinístico não precisa de correspondência idêntica. Um agrupamento não determinístico avalia
x
eX
como iguais. Agrupamentos não determinísticos não fazem distinção de maiúsculas e minúsculas (CI) e de acentos (IA).
Na tabela a seguir, você pode encontrar algumas diferenças de comportamento entre o Babelfish e o PostgreSQL ao usar agrupamentos não determinísticos.
Babelfish | PostgreSQL |
---|---|
É compatível com a cláusula LIKE para agrupamentos CI_AS. |
Não é compatível com a cláusula LIKE em agrupamentos não determinísticos. |
É compatível com a cláusula LIKE somente nos seguintes agrupamentos de IA do Babelfish versão 4.2.0:
|
Não é compatível com a cláusula LIKE em agrupamentos não determinísticos. |
Para obter uma lista de outras limitações e diferenças de comportamento do Babelfish em comparação com o SQL Server e o PostgreSQL, consulte Limitações de agrupamentos e diferenças de comportamento.
O Babelfish e o SQL Server seguem uma convenção de nomenclatura para agrupamentos que descrevem os atributos de agrupamento, conforme mostrado na tabela a seguir.
Atributo | Descrição |
---|---|
AI |
Não tem distinção entre dialetos. |
AS |
Tem distinção entre dialetos. |
BIN2 |
O BIN2 solicita que os dados sejam classificados em ordem de pontos de código. A ordem dos pontos de código Unicode é a mesma ordem de caracteres de codificações UTF-8, UTF-16 e UCS-2. A ordem de pontos de código é um agrupamento determinístico rápido. |
CI |
Não tem distinção entre maiúsculas e minúsculas. |
CS |
Tem distinção entre maiúsculas e minúsculas. |
PREF |
Para classificar letras maiúsculas antes de letras minúsculas, utilize um agrupamento PREF. Se a comparação não diferenciar maiúsculas de minúsculas, a versão em maiúsculas de uma letra será classificada antes da versão em minúscula, caso não haja outra distinção. A biblioteca ICU oferece suporte à preferência de maiúsculas com PREF só pode ser aplicado a agrupamentos determinísticos |
Agrupamentos compatíveis com o Babelfish
Use os seguintes agrupamentos como um agrupamento de servidor ou um agrupamento de objetos.
ID de agrupamento | Observações |
---|---|
bbf_unicode_general_ci_as |
Oferece suporte à comparação sem distinção entre maiúsculas e minúsculas e operador LIKE. |
bbf_unicode_cp1_ci_as |
Agrupamento não determinístico |
bbf_unicode_CP1250_ci_as |
Agrupamento não determinístico |
bbf_unicode_CP1251_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp1253_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp1254_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp1255_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp1256_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp1257_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp1258_ci_as |
Agrupamento não determinístico |
bbf_unicode_cp874_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1250_ci_as |
Codificação de caracteres de byte único não determinística |
sql_latin1_general_cp1251_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1253_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1254_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1255_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1256_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1257_ci_as |
Agrupamento não determinístico |
sql_latin1_general_cp1258_ci_as |
Agrupamento não determinístico |
chinese_prc_ci_as |
Agrupamento não determinístico que é compatível com o idioma chinês (RPC). |
cyrillic_general_ci_as |
Agrupamento não determinístico que é compatível com o idioma cirílico. |
finnish_swedish_ci_as |
Agrupamento não determinístico que é compatível com o idioma finlandês. |
french_ci_as |
Agrupamento não determinístico que é compatível com o idioma francês. |
japanese_ci_as |
Agrupamento não determinístico que é compatível com o idioma japonês. Compatível com o Babelfish 2.1.0 e versões posteriores. |
korean_wansung_ci_as |
Agrupamento não determinístico que é compatível com o idioma coreano (com classificação de dicionário). |
latin1_general_ci_as |
Agrupamento não determinístico que oferece suporte a caracteres latinos. |
modern_spanish_ci_as |
Agrupamento não determinístico que é compatível com o idioma espanhol moderno. |
polish_ci_as |
Agrupamento não determinístico que é compatível com o idioma polonês. |
thai_ci_as |
Agrupamento não determinístico que é compatível com o idioma tailandês. |
traditional_spanish_ci_as |
Agrupamento não determinístico que é compatível com o idioma espanhol (tipo tradicional). |
turkish_ci_as |
Agrupamento não determinístico que é compatível com o idioma turco. |
ukrainian_ci_as |
Agrupamento não determinístico que é compatível com o idioma ucraniano. |
vietnamese_ci_as |
Agrupamento não determinístico que é compatível com o idioma vietnamita. |
Os seguintes agrupamentos podem ser utilizados como agrupamentos de objetos.
Dialeto | Opções determinísticas | Opções não determinísticas |
---|---|---|
Árabe |
Arabic_CS_AS |
Árabe_CI_AS Arabic_CI_AI |
Alfabeto árabe |
BBF_Unicode_CP1256_CS_AS BBF_Unicode_Pref_CP1256_CS_AS |
BBF_Unicode_CP1256_CI_AI BBF_Unicode_CP1256_CS_AI |
Binário |
latin1_general_bin2 BBF_Unicode_BIN2 |
– |
Idiomas da Europa Central e do Leste Europeu que utilizam o alfabeto latino |
BBF_Unicode_CP1250_CS_AS BBF_Unicode_Pref_CP1250_CS_AS |
BBF_Unicode_CP1250_CI_AI BBF_Unicode_CP1250_CS_AI |
Chinês |
Chinese_PRC_CS_AS |
Chinese_PRC_CI_AS Chinese_PRC_CI_AI |
Cyrillic_General |
Cyrillic_General_CS_AS |
Cyrillic_General_CI_AS Cyrillic_General_CI_AI |
Alfabeto cirílico |
BBF_Unicode_CP1251_CS_AS BBF_Unicode_Pref_CP1251_CS_AS |
BBF_Unicode_CP1251_CI_AI BBF_Unicode_CP1251_CS_AI |
Estoniano |
Estonian_CS_AS |
Estonian_CI_AS Estonian_CI_AI |
Estoniano, letão e lituano |
BBF_Unicode_CP1257_CS_AS BBF_Unicode_Pref_CP1257_CS_AS |
BBF_Unicode_CP1257_CI_AI BBF_Unicode_CP1257_CS_AI |
Finnish_Swedish |
Finnish_Swedish_CS_AS |
Finnish_Swedish_CI_AS Finnish_Swedish_CI_AI |
Francês |
French_CS_AS |
French_CI_AS French_CI_AI |
Grego |
Greek_CS_AS |
Greek_CI_AS Greek_CI_AI |
Hebraico |
BBF_Unicode_CP1255_CS_AS BBF_Unicode_Pref_CP1255_CS_AS Hebrew_CS_AS |
BBF_Unicode_CP1255_CI_AI BBF_Unicode_CP1255_CS_AI Hebrew_CI_AS Hebrew_CI_AI |
Japonês (Babelfish 2.1.0 e posteriores) |
Japanese_CS_AS |
Japanese_CI_AI Japanese_CI_AS |
Korean_Wamsung |
Korean_Wamsung_CS_AS |
Korean_Wamsung_CI_AS Korean_Wamsung_CI_AI |
Caracteres latinos para a página de código CP1252 |
latin1_general_cs_as BBF_Unicode_General_CS_AS BBF_Unicode_General_Pref_CS_AS BBF_Unicode_Pref_CP1_CS_AS BBF_Unicode_CP1_CS_AS |
latin1_general_ci_as latin1_general_ci_ai latin1_general_cs_ai BBF_Unicode_General_CI_AI BBF_Unicode_General_CS_AI BBF_Unicode_CP1_CI_AI BBF_Unicode_CP1_CS_AI |
Grego moderno |
BBF_Unicode_CP1253_CS_AS BBF_Unicode_Pref_CP1253_CS_AS |
BBF_Unicode_CP1253_CI_AI BBF_Unicode_CP1253_CS_AI |
Modern_Spanish |
Modern_Spanish_CS_AS |
Modern_Spanish_CI_AS Modern_Spanish_CI_AI |
Mongol |
Mongolian_CS_AS |
Mongolian_CI_AS Mongolian_CI_AI |
Polonês |
Polish_CS_AS |
polish_ci_as Polish_CI_AI |
Tailandês |
BBF_Unicode_CP874_CS_AS BBF_Unicode_Pref_CP874_CS_AS Thai_CS_AS |
BBF_Unicode_CP874_CI_AI BBF_Unicode_CP874_CS_AI Thai_CI_AS, Thai_CI_AI |
Traditional_Spanish |
Traditional_Spanish_CS_AS |
Traditional_Spanish_CI_AS Traditional_Spanish_CI_AI |
Turco |
BBF_Unicode_CP1254_CS_AS BBF_Unicode_Pref_CP1254_CS_AS Turkish_CS_AS |
BBF_Unicode_CP1254_CI_AI BBF_Unicode_CP1254_CS_AI Turkish_CI_AS, Turkish_CI_AI |
Ucraniano |
Ukranian_CS_AS |
Ukranian_CI_AS Ukranian_CI_AI |
Vietnamita |
BBF_Unicode_CP1258_CS_AS BBF_Unicode_Pref_CP1258_CS_AS Vietnamese_CS_AS |
BBF_Unicode_CP1258_CI_AI BBF_Unicode_CP1258_CS_AI Vietnamese_CI_AS Vietnamese_CI_AI |
Agrupamento padrão no Babelfish
Antes, o agrupamento padrão dos tipos de dados agrupáveis era pg_catalog.default
. Os tipos de dados e os objetos que dependem desses tipos de dados seguem um agrupamento que diferencia maiúsculas de minúsculas. Essa condição pode afetar os objetos T-SQL do conjunto de dados com agrupamento que não diferencia maiúsculas de minúsculas. A partir do Babelfish 2.3.0, o agrupamento padrão para os tipos de dados agrupáveis (exceto TEXT e NTEXT) é o mesmo que o agrupamento no parâmetro babelfishpg_tsql.server_collation_name
. Quando você atualiza para o Babelfish 2.3.0, o agrupamento padrão é escolhido automaticamente no momento da criação do cluster de banco de dados, o que não cria nenhum impacto visível.