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