Firebird 3 for Windows. Unicode collate with parameter 'ICU-VERSION=default'

20 views
Skip to first unread message

Alexey Gusev

unread,
Jun 15, 2021, 8:07:31 AMJun 15
to firebird-support
I would like to add collate in Firebird for Windows

create collation UNICODE_CSCZ_CI
   for UTF8 
   from UNICODE 
   case insensitive 
   'LOCALE=cs_CZ;ICU-VERSION=6.9';

I have to copy icu libraries to the folder where Firebird is installed and make changes in the file <Firebird>\intl\fbintl.conf

intl_module = builtin {
    icu_versions = 6.9 default 
#    icu_versions = default 
}

Is there a way (replace libraries or something else) to add the collate without specifying the version of the icu library?

create collation UNICODE_CSCZ_CI
   for UTF8 
   from UNICODE 
   case insensitive 
   'LOCALE=cs_CZ;ICU-VERSION=default';

Mark Rotteveel

unread,
Jun 15, 2021, 8:14:52 AMJun 15
to firebird...@googlegroups.com
On 15-06-2021 12:37, Alexey Gusev wrote:
> I would like to add collate in Firebird for Windows
>
> create collation UNICODE_CSCZ_CI
>    for UTF8
>    from UNICODE
>    case insensitive
>    'LOCALE=cs_CZ;ICU-VERSION=6.9';
>
> I have to copy icu libraries to the folder where Firebird is installed
> and make changes in the file <Firebird>\intl\fbintl.conf
>
> intl_module = builtin {
>     icu_versions = 6.9 default
> #    icu_versions = default
> }
>
> Is there a way (replace libraries or something else) to add the collate
> without specifying the version of the icu library?

The ICU library included in Firebird 3.0 doesn't contain all ICU
collations. You could replace the library included with Firebird with
one of the same version including the desired collations.

Alternatively, upgrade to Firebird 4.0, as - IIRC - the ICU version
included has more (all?) ICU collations.

Mark
--
Mark Rotteveel
Message has been deleted

Alexey Gusev

unread,
Jun 16, 2021, 4:25:12 PMJun 16
to firebird-support
We have solved the problem described in the title.

Here is the steps for solving

1. Stop the Firebird server.
2. Copy the libraries (icudt69.dll, icuin69.dll, icuuc69.dll) containing the necessary collates to the folder where Firebird3 is installed. Version of the libriries may be different.
3. Make a change to the file  <Firebird>\intl\fbintl.conf

intl_module = builtin {
    icu_versions = default 
}

change to

intl_module = builtin {
    icu_versions = 6.9 default 
}

4. Start the Firebird server.
5. Now we can create a collate using a request

create collation UNICODE_CSCZ_CI
   for UTF8 
   from UNICODE 
   case insensitive 
   'LOCALE=cs_CZ';

without specifzing the version of the used library.
   
That's all.

вторник, 15 июня 2021 г. в 14:14:52 UTC+2, ma...@lawinegevaar.nl:
Reply all
Reply to author
Forward
0 new messages