On Fri, Apr 4, 2008 at 12:03 PM, Rutherdale, Will <
[EMAIL PROTECTED]> wrote:

> I confirmed the problem occurs on another machine I was wondering about.
>
> I tried installing the latest DBI and DBD::Informix.  DBI was okay, but
> DBD::Informix started out giving me the following warnings on 'perl
> Makefile.PL':
>
> ----
> Using INFORMIX-ESQL Version 9.21.UC1 from /usr/informix
> Please upgrade to a more recent version of ClientSDK.
> DBD::Informix will probably work, but that is not guaranteed.
> Note that bug RT#13708 (IBM CQ bug idsdb00139040) may affect you.
> In particular, if test t/t931varchar.t detects problems, consider an
> upgrade to CSDK 3.00 or later - it seems to be fixed there.
> ----
>

ESQL/C 9.21 was released as part of CSDK 2.30 in May 1999.  I suppose it is
sad to make software retire before its tenth birthday, but in this case, it
is somewhat past time.



> That sounds like it could be related to my problem.  Do you think I
> could report to management where I work that this known bug might be
> causing the problem, and that CSDK 3.00 is recommended?
>

That problem - RT#13708 - is to do with LVARCHAR and not VARCHAR.

Well, I tried to install CSDK 2.30 on my Solaris 10 machine.  The install
worked; the software didn't.  The network connections wouldn't work (that
appears to be a generic problem for my machine - on later testing; probably
needs a reboot), but the stream connections did.  The compilation of
DBD::Informix 2008.0229 went fine, but the test failed horribly because it
couldn't find a symbol ifx_var_freevar().

Dropping back to DBD::Informix 2003.04, the compilation worked and tests ran
mostly OK (IUS tests were dubious, but VARCHAR isn't an IUS feature).

Using the previously generated test script, I got erroneous output from the
VARCHAR data.  So, the problem could be in CSDK 2.30 or in DBD::Informix
2003.04.  Checking with a more recent CSDK (3.00.UC2), it appears that
DBD::Informix 2003.04 was not handling VARCHAR properly; it introduces the
blanks.  So, between that version and 2008.0229, I fixed the problem,
somehow.

Looking at the ChangeLog, I find:

2005-07-28: Logged bug B173776 against ESQL/C - SQL DESCRIPTORS mishandle
            zero-length non-null VARCHAR values.  This prevents a solution
            to a problem report from Vàclav Ovsík <[EMAIL PROTECTED]>.

This would probably be the issue - you'd need a version of DBD::Informix
later than 2005.02 and a version of CSDK released after that.  The relevant
database reports that the bug was fixed in CSDK 2.90.xC4 - so you need a
version of CSDK at least that recent.


I also happened to fail in 'make test' on DBD::Informix, but I'll have
> to get back to you later on that.
>

If the trouble is 'ifx_var_freevar()', then that is a (now) known and 'will
not be fixed' problem.  CSDK 2.30 (ESQL/C 9.21) is officially unsupported by
DBD::Informix.

-- 
Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h>
Guardian of DBD::Informix - v2008.0229 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease to be
amused."

Reply via email to