Agrupamentos compatíveis com o Babelfish - Amazon Aurora

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 (Agrupamento)) na documentação da ICU. Para saber mais sobre o PostgreSQL e agrupamentos, consulte Collation Support (Compatibilidade com agrupamentos) na documentação do PostgreSQL.

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 agrupamento CI_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 e X 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 e X como iguais. Agrupamentos não determinísticos não têm distinção entre maiúsculas e minúsculas (IC) e entre dialetos (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.

Não é compatível com a cláusula LIKE em agrupamentos de IA.

Não são compatíveis com operações de correspondência de padrões 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 colCaseFirst=upper, mas não para agrupamentos CI_AS.

PREF só pode ser aplicado a agrupamentos determinísticos CS_AS.

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, também conhecido como CP1252.

bbf_unicode_CP1250_ci_as

Agrupamento não determinístico utilizado para representar textos em idiomas da Europa Central e do Leste Europeu que utilizam o script latino.

bbf_unicode_CP1251_ci_as

Agrupamento não determinístico para linguagens que utilizam o script cirílico.

bbf_unicode_cp1253_ci_as

Agrupamento não determinístico utilizado para representar o grego moderno.

bbf_unicode_cp1254_ci_as

Agrupamento não determinístico que é compatível com o idioma turco.

bbf_unicode_cp1255_ci_as

Agrupamento não determinístico que é compatível com o idioma hebraico.

bbf_unicode_cp1256_ci_as

Agrupamento não determinístico utilizado para escrever idiomas que utilizam o script árabe.

bbf_unicode_cp1257_ci_as

Agrupamento não determinístico utilizado para suporte aos idiomas estoniano, letão e lituano.

bbf_unicode_cp1258_ci_as

Agrupamento não determinístico utilizado para escrever caracteres em vietnamita.

bbf_unicode_cp874_ci_as

Agrupamento não determinístico utilizado para escrever caracteres em tailandês.

sql_latin1_general_cp1250_ci_as

Codificação de caracteres de byte único não determinística utilizado para representar caracteres latinos.

sql_latin1_general_cp1251_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1253_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1254_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1255_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1256_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1257_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

sql_latin1_general_cp1258_ci_as

Agrupamento não determinístico que oferece suporte a caracteres latinos.

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

Arabic_CI_AS, Arabic_CI_AI

Chinês

Chinese_CS_AS

Chinese_CI_AS, Chinese_CI_AI

Cyrillic_General

Cyrillic_General_CS_AS

Cyrillic_General_CI_AS, Cyrillic_General_CI_AI

Estoniano

Estonian_CS_AS

Estonian_CI_AS, Estonian_CI_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

Hebrew_CS_AS

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

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

Thai_CS_AS

Thai_CI_AS, Thai_CI_AI

Traditional_Spanish

Traditional_Spanish_CS_AS

Traditional_Spanish_CI_AS, Traditional_Spanish_CI_AI

Turco

Turkish_CS_AS

Turkish_CI_AS, Turkish_CI_AI

Ucraniano

Ukranian_CS_AS

Ukranian_CI_AS, Ukranian_CI_AI

Vietnamita

Vietnamese_CS_AS

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.