Babelfish がサポートする照合順序
Babelfish で Aurora PostgreSQL DB クラスターを作成するときは、データの照合を選択します。照合順序は、特定の人間言語で書かれたテキストまたは文字を生成するソート順とビットパターンを指定します。照合順序には、特定のビットパターンのセットに対してデータを比較するルールが含まれます。照合順序はローカリゼーションに関連しています。ロケールが異なると、文字マッピング、ソート順などに影響します。照合順序の属性は、さまざまな照合順序の名前に反映されます。属性の詳細については、「Babelfish collation attributes table」を参照してください。
Babelfish は、Babelfish が提供する同等の照合に SQL Server 照合をマッピングします。Babelfish は、文化的に敏感な文字列比較とソート順で、 Unicode 照合を事前に定義しています。また Babelfish は、SQL Server DB 内の照合を最も近い Babelfish 照合に変換する方法も提供します。ロケール固有の照合順序は、異なる言語および地域に対して提供されます。
一部の照合では、クライアント側のエンコーディングに対応したコードページを指定します。Babelfish は、各出力列の照合順序に応じて、サーバーエンコーディングからクライアントエンコーディングに自動的に変換します。
Babelfish は、「Babelfish supported collations table」に列挙された照合順序をサポートしています。Babelfish は、Babelfish が提供する同等の照合に SQL Server 照合をマッピングします。
Babelfish は International Components for Unicode (ICU) 照合順序ライブラリのバージョン 153.80 を使用しています。ICU 照合の詳細については、ICU ドキュメントの「Collation
トピック
照合順序とロケールを制御する DB クラスターパラメータ
次のパラメータは、照合動作に影響します。
- babelfishpg_tsql. default_locale
このパラメータは、照合で使用されるデフォルトのロケールを指定します。このパラメータは、Babelfish collation attributes table に列挙された照合属性と組み合わせて使用されるので、特定の言語およびリージョンの照合順序をカスタマイズすることができます。このパラメータのデフォルト値は
en-US
です。デフォルトのロケールは、BBF 文字でスタートすべての Babelfish 照合順序名と、Babelfish 照合順序にマッピングされるすべての SQL Server 照合順序に適用されます。既存の Babelfish DB クラスターでこのパラメータの設定を変更しても、既存の照合順序のロケールには影響しません。照合の一覧については、「Babelfish supported collations table」を参照してください。
- babelfishpg_tsql.server_collation_name
このパラメータは、サーバー (Aurora PostgreSQL DB クラスターインスタンス) とデータベースのデフォルトの照合順序を指定します。デフォルト値は
sql_latin1_general_cp1_ci_as
です。T-SQL では、サーバーの照合順序によって識別子の比較方法が決定されるため、CI_AS
照合順序はserver_collation_name
でなければならなりません。Babelfish DB クラスターを作成するときは、選択リストから [照合順序名] を選択します。これらには、「Babelfish supported collations table」に列挙された照合順序が含まれます。belfish データベースの作成後は、
server_collation_name
を変更しないでください。
Babelfish for Aurora PostgreSQL DB クラスターの作成時に選択した設定は、これらのパラメータのクラスターに関連付けられた DB クラスターパラメータグループに格納され、照合動作を設定します。
決定論的照合および非決定論的照合と Babelfish
Babelfish は、決定論的照合と非決定論的照合をサポートしています:
決定的照合順序は、同じバイトシーケンスを持つ文字を等価として評価します。つまり、
x
とX
は決定論的照合では等しくありません。確定的照合順序は、大文字と小文字の区別 (CS) とアクセントの区別 (AS) をします。非決定照合順序 は完全な一致を必要としません。非決定性照合は
x
とX
を 同等に評価します。非決定的照合は大文字と小文字が区別されないか (CI)、アクセントを無視するか (AI)、またはその両方です。
次の表に、非決定的照合順序を使用する場合の Babelfish と PostgreSQL の動作の違いをいくつか示します。
Babelfish | PostgreSQL |
---|---|
CI_AS 照合順序の LIKE 句をサポートします。 |
非決定的照合順序に関する LIKE 句はサポートしていません。 |
LIKE 句は、Babelfish バージョン 4.2.0 の次の AI 照合でのみサポートされます。
|
非決定的照合順序に関する LIKE 句はサポートしていません。 |
SQL Server および PostgreSQL と比較した Babelfish の他の制限および動作の違いについては、「照合順序の制限と動作の違い」を参照してください。
Babelfish と SQL Server は次の表に示すように、照合属性を記述する照合順序の命名規則に従います。
属性 | 説明 |
---|---|
AI |
アクセントは区別されません。 |
AS |
アクセントは区別されます。 |
BIN2 |
BIN2 は、データをコードポイント順に並べ替えるよう要求します。Unicode コードポイントの順序は、UTF-8、UTF-16、UCS-2 のエンコーディングで同じ文字順序になります。コードポイントの順序は、高速確定的な照合順序です。 |
CI |
大文字と小文字を区別しない。 |
CS |
大文字と小文字を区別する。 |
PREF |
小文字の前に大文字を並べるには、PREF 照合を使用します。比較で大文字と小文字を区別しない場合、もし他の区別がないのであれば、大文字バージョンの文字は小文字バージョンの前にソートされます。ICU ライブラリでは、 PREF は |
Babelfish がサポートする照合順序
サーバー照合またはオブジェクトの照合として、次の照合順序を使用します。
照合順序 ID | メモ |
---|---|
bbf_unicode_general_ci_as |
大文字と小文字を区別しない比較と LIKE 演算子をサポートします。 |
bbf_unicode_cp1_ci_as |
CP1252 とも呼ばれる 非決定照合順序 |
bbf_unicode_CP1250_ci_as |
ラテン文字を使用する中央ヨーロッパおよび東ヨーロッパ言語のテキストを表すために使用される非決定照合順序 |
bbf_unicode_CP1251_ci_as |
キリル文字を使用する言語の非決定照合順序 |
bbf_unicode_cp1253_ci_as |
現代ギリシャ語を表すのに使われる非決定照合順序 |
bbf_unicode_cp1254_ci_as |
トルコ語をサポートする非決定照合順序 |
bbf_unicode_cp1255_ci_as |
ヘブライ語をサポートする非決定照合順序 |
bbf_unicode_cp1256_ci_as |
アラビア語の文字を使う言語を書くのに使われる非決定照合順序 |
bbf_unicode_cp1257_ci_as |
エストニア語、ラトビア語、リトアニア語をサポートするために使用される非決定照合順序 |
bbf_unicode_cp1258_ci_as |
ベトナム語の文字を書くのに使われる非決定照合順序 |
bbf_unicode_cp874_ci_as |
タイ語の文字を書くのに使われる非決定照合順序 |
sql_latin1_general_cp1250_ci_as |
ラテン文字を表すために使用される非決定的なシングルバイト文字エンコード |
sql_latin1_general_cp1251_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1253_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1254_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1255_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1256_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1257_ci_as |
ラテン文字をサポートしている非決定照合順序 |
sql_latin1_general_cp1258_ci_as |
ラテン文字をサポートしている非決定照合順序 |
chinese_prc_ci_as |
中国語 (PRC) をサポートする非決定的照合順序。 |
cyrillic_general_ci_as |
キリル文字をサポートする非決定的照合順序。 |
finnish_swedish_ci_as |
フィンランド語をサポートする非決定的照合順序。 |
french_ci_as |
フランス語をサポートする非決定的照合順序。 |
japanese_ci_as |
日本語をサポートする非決定的照合順序。Supported in Babelfish 2.1.0 and higher releases。 |
korean_wansung_ci_as |
韓国語をサポートする非決定的照合順序 (辞書ソートあり)。 |
latin1_general_ci_as |
ラテン文字をサポートする非決定的照合順序。 |
modern_spanish_ci_as |
現代スペイン語をサポートする非決定的照合順序。 |
polish_ci_as |
ポーランド語をサポートする非決定的照合順序。 |
thai_ci_as |
タイ語をサポートする非決定的照合順序。 |
traditional_spanish_ci_as |
スペイン語 (伝統的なソート) をサポートする非決定的な照合順序。 |
turkish_ci_as |
トルコ語をサポートする非決定的な照合順序。 |
ukrainian_ci_as |
ウクライナ語をサポートする非決定的な照合順序。 |
vietamese_ci_as |
ベトナム語をサポートする非決定的照合順序。 |
次の照合順序をオブジェクト照合として使用できます。
言語 | 決定的なオプション | 非決定的オプション |
---|---|---|
アラビア語 |
Arabic_CS_AS |
Arabic_CI_AS Arabic_CI_AI |
アラビア文字 |
BBF_Unicode_CP1256_CS_AS BBF_Unicode_Pref_CP1256_CS_AS |
BBF_Unicode_CP1256_CI_AI BBF_Unicode_CP1256_CS_AI |
バイナリ |
latin1_general_bin2 BBF_Unicode_BIN2 |
– |
ラテン文字を使用する中央ヨーロッパおよび東ヨーロッパの言語 |
BBF_Unicode_CP1250_CS_AS BBF_Unicode_Pref_CP1250_CS_AS |
BBF_Unicode_CP1250_CI_AI BBF_Unicode_CP1250_CS_AI |
中国語 |
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 |
キリル文字 |
BBF_Unicode_CP1251_CS_AS BBF_Unicode_Pref_CP1251_CS_AS |
BBF_Unicode_CP1251_CI_AI BBF_Unicode_CP1251_CS_AI |
エストニア語 |
Estonian_CS_AS |
Estonian_CI_AS Estonian_CI_AI |
エストニア語、ラトビア語、リトアニア語 |
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 |
フランス語 |
French_CS_AS |
French_CI_AS French_CI_AI |
ギリシャ語 |
Greek_CS_AS |
Greek_CI_AS Greek_CI_AI |
ヘブライ語 |
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 |
日本語 (Babelfish 2.1.0 以上) |
Japanese_CS_AS |
Japanese_CI_AI Japanese_CI_AS |
Korean_Wamsung |
Korean_Wamsung_CS_AS |
Korean_Wamsung_CI_AS Korean_Wamsung_CI_AI |
コードページ 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 |
現代ギリシャ語 |
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 |
モンゴル語 |
Mongolian_CS_AS |
Mongolian_CI_AS Mongolian_CI_AI |
ポーランド語 |
Polish_CS_AS |
Polish_CI_AS Polish_CI_AI |
タイ語 |
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 |
トルコ語 |
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 |
ウクライナ語 |
Ukranian_CS_AS |
Ukranian_CI_AS Ukranian_CI_AI |
ベトナム語 |
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 |
Babelfish でのデフォルト照合
以前は、照合可能なデータ型のデフォルトの照合は pg_catalog.default
でした。これらのデータ型に依存するデータ型とオブジェクトは、大文字と小文字を区別して照合されます。この条件は、大文字と小文字を区別しない照合でデータセットの T-SQL オブジェクトに影響を与える可能性があります。Babelfish 2.3.0 以降、照合可能なデータ型 (TEXT と NTEXT を除く) のデフォルトの照合は、babelfishpg_tsql.server_collation_name
パラメータの照合順序と同じです。Babelfish 2.3.0 にアップグレードすると、DB クラスターの作成時にデフォルトの照合が自動的に選択されるため、目に見える影響はありません。