Intercalaciones compatibles con Babelfish - Amazon Aurora

Intercalaciones compatibles con Babelfish

Cuando crea un clúster de base de datos de Aurora PostgreSQL con Babelfish, elige una intercalación para sus datos. Una intercalación especifica el orden de clasificación y los patrones de bits que producen el texto o los caracteres en un determinado lenguaje humano escrito. Una intercalación incluye reglas que comparan los datos para un conjunto determinado de patrones de bits. La intercalación está relacionada con la localización. Las diferentes configuraciones regionales afectan a la asignación de caracteres, el orden de clasificación y otros aspectos similares. Los atributos de intercalación se reflejan en los nombres de varias intercalaciones. Para obtener información sobre los atributos, consulte la Babelfish collation attributes table.

Babelfish asigna las intercalaciones de SQL Server a intercalaciones comparables proporcionadas por Babelfish. Babelfish predefine las intercalaciones Unicode con comparaciones de cadenas y órdenes de clasificación sensibles a la cultura. Babelfish también proporciona una manera de traduce las intercalaciones de la base de datos de SQL Server a la intercalación de Babelfish más cercana. Se proporcionan intercalaciones específicas para cada configuración regional en diferentes idiomas y regiones.

Algunas intercalaciones especifican una página de códigos que corresponde a una codificación del lado del cliente. Babelfish traduce automáticamente de la codificación del servidor a la codificación del cliente en función de la intercalación de cada columna de salida.

Babelfish admite las intercalaciones indicadas en la Babelfish supported collations table. Babelfish asigna las intercalaciones de SQL Server a intercalaciones comparables proporcionadas por Babelfish.

Babelfish utiliza la versión 153.80 de la biblioteca de intercalación de Componentes internacionales para Unicode (ICU). Para obtener más información sobre las intercalaciones de ICU, consulte Collation (Intercalación) en la documentación de ICU. Para obtener más información sobre PostgreSQL y la intercalación, consulte Collation Support (Compatibilidad con intercalación) en la documentación de PostgreSQL.

Parámetros de clúster de base de datos que controlan la intercalación y la configuración regional

Los siguientes parámetros afectan al comportamiento de intercalación.

babelfishpg_tsql.default_locale

Este parámetro especifica la configuración regional predeterminada que usa la intercalación. Este parámetro se utiliza en combinación con los atributos enumerados en la Babelfish collation attributes table para personalizar las intercalaciones de un idioma y una región específicos. El valor predeterminado para este parámetro es en-US.

La configuración regional predeterminada se aplica a todos los nombres de intercalación de Babelfish que empiezan por "BBF" y a todas las intercalaciones de SQL Server asignadas a intercalaciones de Babelfish. El cambio de la configuración de este parámetro en un clúster de base de datos de Babelfish existente no afecta a la configuración regional de las intercalaciones existentes. Para ver la lista de intercalaciones, consulte la Babelfish supported collations table.

babelfishpg_tsql.server_collation_name

Este parámetro especifica la intercalación predeterminada para el servidor (instancia de clúster de base de datos de Aurora PostgreSQL) y la base de datos. El valor predeterminado es sql_latin1_general_cp1_ci_as. server_collation_name tiene que ser una intercalación CI_AS porque en T-SQL, la intercalación del servidor determina cómo se comparan los identificadores.

Al crear su clúster de base de datos Babelfish, puede elegir el valor de Collation name (Nombre de la intercalación) en la lista seleccionable. Se incluyen las intercalaciones enumeradas en la Babelfish supported collations table. No modifique server_collation_name después de crear la base de datos de Babelfish.

La configuración que elija al crear el clúster de la base de datos de Babelfish para Aurora PostgreSQL se almacena en el grupo de parámetros del clúster de base de datos asociado con el clúster para estos parámetros y establece su comportamiento de intercalación.

Intercalaciones deterministas y no deterministas y Babelfish

Babelfish admite las combinaciones deterministas y no deterministas:

  • Una intercalación determinista evalúa como iguales los caracteres que tienen secuencias de bytes idénticas. Eso significa que x y X no son iguales en una intercalación determinista. Las intercalaciones deterministas pueden distinguir mayúsculas de minúsculas (CS) y acentos (AS).

  • Una intercalación no determinista no necesita una coincidencia idéntica. Una intercalación no determinista evalúa x y X como iguales. Las intercalaciones no deterministas no distinguen mayúsculas de minúsculas (IC) y no distinguen acentos (IA).

En la siguiente tabla puede encontrar algunas diferencias de comportamiento entre Babelfish y PostgreSQL cuando se utilizan intercalaciones no deterministas.

Babelfish PostgreSQL

Admite la cláusula LIKE para las intercalaciones CI_AS.

No admite la cláusula LIKE en las intercalaciones no deterministas.

No admite la cláusula LIKE en las intercalaciones de IA.

No se admiten las operaciones coincidentes de patrones en intercalaciones no deterministas.

Para obtener una lista de otras limitaciones y diferencias de comportamiento de Babelfish en comparación con SQL Server y PostgreSQL, consulte Limitaciones de intercalación y diferencias de comportamiento.

Babelfish y SQL Server siguen una convención de nomenclatura para las intercalaciones que describen los atributos de intercalación, como se muestra en la tabla siguiente.

Atributo Descripción

IA

No distingue acentos.

AS

Distingue acentos.

BIN2

BIN2 solicita que los datos se clasifiquen en orden de puntos de código. El orden de puntos de código Unicode es el mismo orden de caracteres para las codificaciones UTF-8, UTF-16 y UCS-2. El orden de los puntos de código es una intercalación determinista rápida.

CI

No distingue mayúsculas de minúsculas.

CS

Distingue mayúsculas de minúsculas.

PREF

Para ordenar las letras mayúsculas antes que las minúsculas, utilice una intercalación de PREF. Si la comparación no distingue mayúsculas de minúsculas, la versión en mayúscula de una letra se ordena antes que la versión en minúscula, si no hay otra distinción. La biblioteca de ICU admite preferencias en mayúsculas con colCaseFirst=upper, pero no para las intercalaciones CI_AS.

PREF solo se puede aplicar a las intercalaciones CS_AS deterministas.

Intercalaciones compatibles con Babelfish

Utilice las siguientes intercalaciones como intercalación de servidores o intercalación de objetos.

ID de intercalación Notas

bbf_unicode_general_ci_as

Admite la comparación sin distinción de mayúsculas y minúsculas y el operador LIKE.

bbf_unicode_cp1_ci_as

Intercalación no determinista también conocido como CP1252.

bbf_unicode_CP1250_ci_as

Intercalación no determinista utilizada para representar textos en idiomas de Europa Central y Europa del Este que utilizan escritura latina.

bbf_unicode_CP1251_ci_as

Intercalación no determinista para los idiomas que utilizan el alfabeto cirílico.

bbf_unicode_cp1253_ci_as

Intercalación no determinista utilizada para representar el griego moderno.

bbf_unicode_cp1254_ci_as

Intercalación no determinista que admite el turco.

bbf_unicode_cp1255_ci_as

Intercalación no determinista que admite el hebreo.

bbf_unicode_cp1256_ci_as

Intercalación no determinista utilizada para escribir idiomas que utilizan escritura árabe.

bbf_unicode_cp1257_ci_as

Intercalación no determinista utilizada para admitir los idiomas estonio, letón y lituano.

bbf_unicode_cp1258_ci_as

Intercalación no determinista utilizada para escribir caracteres vietnamitas.

bbf_unicode_cp874_ci_as

Intercalación no determinista utilizada para escribir caracteres tailandeses.

sql_latin1_general_cp1250_ci_as

Codificación de caracteres de un solo byte no determinista utilizada para representar caracteres latinos.

sql_latin1_general_cp1251_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1253_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1254_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1255_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1256_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1257_ci_as

Intercalación no determinista que admite caracteres latinos.

sql_latin1_general_cp1258_ci_as

Intercalación no determinista que admite caracteres latinos.

chinese_prc_ci_as

Intercalación no determinista que admite chino (RPC).

cyrillic_general_ci_as

Intercalación no determinista que admite el cirílico.

finnish_swedish_ci_as

Intercalación no determinista que admite el finlandés.

french_ci_as

Intercalación no determinista que admite el francés.

Japanese_CI_AS

Intercalación no determinista que admite japonés. Se admite en Babelfish 2.1.0 y versiones posteriores.

korean_wansung_ci_as

Intercalación no determinista que admite el coreano (con clasificación de diccionario).

latin1_general_ci_as

Intercalación no determinista que admite caracteres latinos.

modern_spanish_ci_as

Intercalación no determinista que admite el español moderno.

polish_ci_as

Intercalación no determinista que admite el polaco.

thai_ci_as

Intercalación no determinista que admite el tailandés.

traditional_spanish_ci_as

Intercalación no determinista que admite el español (clasificación tradicional).

turkish_ci_as

Intercalación no determinista que admite el turco.

ukrainian_ci_as

Intercalación no determinista que admite el ucraniano.

vietnamese_ci_as

Intercalación no determinista que admite el vietnamita.

Puede utilizar las siguientes intercalaciones como intercalaciones de objetos.

Dialecto Opciones deterministas Opciones no deterministas

Árabe

Arabic_CS_AS

Arabic_CI_AS, Arabic_CI_AI

Chino

Chinese_CS_AS

Chinese_CI_AS, Chinese_CI_AI

Cyrillic_General

Cyrillic_General_CS_AS

Cyrillic_General_CI_AS, Cyrillic_General_CI_AI

Estonio

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

Griego

Greek_CS_AS

Greek_CI_AS, Greek_CI_AI

Hebreo

Hebrew_CS_AS

Hebrew_CI_AS, Hebrew_CI_AI

Japonés (Babelfish 2.1.0 y posterior)

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

Polaco

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

Ucraniano

Ukranian_CS_AS

Ukranian_CI_AS, Ukranian_CI_AI

Vietnamita

Vietnamese_CS_AS

Vietnamese_CI_AS, Vietnamese_CI_AI

Intercalación predeterminada en Babelfish

Anteriormente, la intercalación predeterminada de los tipos de datos recopilables era pg_catalog.default. Los tipos de datos y los objetos que dependen de estos tipos de datos siguen una intercalación que distingue entre mayúsculas y minúsculas. Esta condición puede afectar a los objetos T-SQL del conjunto de datos, ya que la intercalación no distingue entre mayúsculas y minúsculas. A partir de Babelfish 2.3.0, la intercalación predeterminada para los tipos de datos recopilables (excepto TEXT y NTEXT) es la misma que la intercalación en el parámetro babelfishpg_tsql.server_collation_name. Al actualizar a Babelfish 2.3.0, la intercalación predeterminada se selecciona automáticamente en el momento de la creación del clúster de base de datos, lo que no tiene ningún impacto visible.