On 12/12/13 14:10, Damyan Ivanov wrote:
> -=| Alex Peshkoff, 12.12.2013 13:12:11 +0400 |=-
>> On 12/12/13 13:01, Damyan Ivanov wrote:
>>> -=| Damyan Ivanov, 12.12.2013 10:30:22 +0200 |=-
>>>> (This is all on Debian unstable, firebird 2.5.2.26540 from the
>>>> package)
>>>>
>>>> $ isql-fb
>>>> Use CONNECT or CREATE DATABASE to specify a database
>>>> SQL> create database 'test.fdb';
>>>> SQL> create table xxx (name varchar(32) character set UTF8 collate
>>>> UNICODE);
>>>> Statement failed, SQLSTATE = 22021
>>>> unsuccessful metadata update
>>>> -XXX
>>>> -COLLATION UNICODE for CHARACTER SET UTF8 is not installed
>>>>
>>>> The problem appears also when restoring from backup and when opening
>>>> a database which worked with firebird linked to ICU 4.8.1.1.
>>>>
>>>> fbintl.conf is not changed. (icu_versions = default)
>>>> …
>>>> My first idea was to patch the ucTemplate (and other *Template) to
>>>> only use the MAJOR version component. I'll report back if this
>>>> works, but there may be something else going on, given that these
>>>> lookups aren't needed at all when linked with older ICU.
>>> No luck. Patching avoids the lookups for libicuuc.521.so and there is
>>> only one open of libicuuc.52.so at startup, but the error stays.
>>>
>>> Perhaps there are API changes that lead to missing entry points. I'll
>>> try to verify that.
>> Can't help much - the max version I've dealt with is 51.2.
> No problem!
>
> What seems to help is attempting to also find symbols with only major
> version appended:
>
> --- a/src/jrd/unicode_util.cpp
> +++ b/src/jrd/unicode_util.cpp
> @@ -86,6 +86,11 @@ public:
>
> symbol.printf("%s_%d%d", name, majorVersion, minorVersion);
> module->findSymbol(symbol, ptr);
> + if (ptr)
> + return;
> +
> + symbol.printf("%s_%d", name, majorVersion);
> + module->findSymbol(symbol, ptr);
> }
>
> int majorVersion;
>
> Symbols in 52.1 are named like:
> u_init_52
> uset_clone_52
> ucase_totitle_52
> etc.
Quite reasonable. In trunk we already have an array of patterns and a
loop on it to make it easier to add new rules. BTW, "%s_%d" is present
in both it and B2_5_Release.
What's a bit funny - sometimes they had 2-level versioning, i.e. for
icu30 we had major==3 and minor==0.
Now major is already 52 :-)
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel