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 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:

  • bbf_unicode_cp1250_ci_ai

  • bbf_unicode_cp1250_cs_ai

  • bbf_unicode_cp1257_ci_ai

  • bbf_unicode_cp1257_cs_ai

  • bbf_unicode_cp1_ci_ai

  • bbf_unicode_cp1_cs_ai

  • estonian_ci_ai

  • finnish_swedish_ci_ai

  • french_ci_ai

  • latin1_general_ci_ai

  • latin1_general_cs_ai

  • modern_spanish_ci_ai

  • polish_ci_ai

  • sql_latin1_general_cp1_ci_ai

  • sql_latin1_general_cp1_cs_ai

  • traditional_spanish_ci_ai

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 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

Á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.