[ic] [interchange] Only apply GDBM filters if they are not already installed

Stefan Hornburg (Racke) racke at linuxia.de
Mon Sep 3 08:10:51 UTC 2012


On 09/03/2012 10:07 AM, Gert van der Spoel wrote:
>> -----Original Message-----
>> From: interchange-users-bounces at icdevgroup.org [mailto:interchange-users-
>> bounces at icdevgroup.org] On Behalf Of Stefan Hornburg (Racke)
>> Sent: maandag 3 september 2012 10:49
>> To: interchange-users at icdevgroup.org
>> Subject: Re: [ic] [interchange] Only apply GDBM filters if they are not
>> already installed
>>
>> On 09/01/2012 02:23 PM, Stefan Hornburg (Racke) wrote:
>>> On 08/31/2012 03:22 AM, David Christensen wrote:
>>>> commit 0c31ea3287df97c8fedbf23ad71244e4ebe019c7
>>>> Author: David Christensen<david at endpoint.com>
>>>> Date: Thu Aug 30 20:01:28 2012 -0500
>>>>
>>>> Only apply GDBM filters if they are not already installed
>>>>
>>>> In certain circumstances, using the same GDBM-based file in multiple
>> catalogs with
>>>> GDBM_ENABLE_UTF8=1 set was causing the GDBM filters to be installed
>> multiple times on the same
>>>> handle, which was resulting in encoding/decoding errors.
>>>>
>>>> Vend::Table::GDBM will now only install the filters if they do not
>> exist on this handle, which
>>>> should preserve existing behavior plus account for these corner-cases.
>>>>
>>>
>>> Actually it seems to be the other way around, the filter is only applied
>> to the first file:
>>>
>>> Configuring catalog dataident...Using MySQL,
>> DSN=dbi:mysql:dataident...applying UTF-8 filters to GDBM handle
>>> done.
>>> Configuring catalog dataident_dev...Using MySQL,
>> DSN=dbi:mysql:dataident_dev...LocaleDatabase locale: locale import into
>> failed: Wide character in subroutine entry at
>> /home/dataident/interchange/lib/Vend/Table/Common.pm line 516,<IN>  line
>> 2.
>>>
>>> done.
>>>
>>
>> I'm convinced now that the GDBM code is fine, the error happens on the
>> import of the text file.
>> Why this happens only in the second catalog still eludes me.
>>
>
> What is found on : /home/dataident/interchange/lib/Vend/Table/Common.pm line
> 516 ?

    $s->[$TIE_HASH]{"k$key"} = join("\t", map(stuff($_), @fields));

Regards
           Racke



-- 
LinuXia Systems => http://www.linuxia.de/
Expert Interchange Consulting and System Administration
ICDEVGROUP => http://www.icdevgroup.org/
Interchange Development Team




More information about the interchange-users mailing list