Kbase P113681: The GET-COLLATIONS function and the OpenEdge DB Navigator do not display all ICU collations.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/23/2006 |
|
Status: Unverified
GOAL:
Why doesn't the GET-COLLATIONS function and the OpenEdge DB Navigator display all ICU collations?
GOAL:
Why isn't there any ICU-en or ICU-de collations in the OpenEdge DB Navigator?
GOAL:
Why are some ICU collations missing from the OpenEdge DB Navigator?
GOAL:
Why can a session be started with -cpcoll set to ICU-en or ICU-de, but a database cannot be created with this collation?
GOAL:
Some ICU collations that are supported by -cpcoll, COMPARE and COLLATE cannot be used as a database collation, and are not returned as valid collations by GET-COLLATIONS("UTF-8"). Why is this?
GOAL:
Why can't large objects (BLOB and CLOB) be used with all possible UTF-8 collations in the OpenEdge DB Navigator?
FACT(s) (Environment):
OpenEdge 10.x
OpenEdge 10.1x
FIX:
In the ICU definition of collation, ICU-UCA is the default collation. The list of language/locale-specific ICU collations provided by Progress is the list of collations that differ from ICU-UCA, not the list of collations for every supported language/locale. The reason for this is that for many languages the ICU-UCA collation will provide correct collation.
For example, Progress does not provide a specific ICU-en and ICU-de collation for English and German because this does not differ from ICU-UCA. The German phonebook sorting does differ from ICU-UCA and so there is a collation for ICU-de__PHONEBOOK.
The fact that you can specify an ICU collation (with -cpcoll, COLLATE and COMPARE) that is not returned by GET-COLLATIONS("UTF-8"), is due to the way that the ICU is implemented. For example:
COMPARE("A", ">", "a", "CASE-INSENSITIVE", "ICU-en")
can be performed, but it will not actually use the ICU-en collation. It will in fact use the ICU-UCA collation since there is no difference between the "en" locale and "UCA".
If your particular language does not require any different sorting than ICU-UCA, then Progress does not list it as a separate collation. Subsequently, if you do not find your language-specific ICU collation in the OpenEdge DB Navigator, or returned by GET-COLLATIONS("UTF-8") then you should use ICU-UCA.