int8 Informix and 64bit perl

int8 Informix and 64bit perl

am 27.09.2007 11:44:35 von clive

I seem to have a problem with negative int8 on a 64 bit linux platform

dbaccess gives the correct answer but DBD::Informix does not

informix@ifx1:~> oninit -V
IBM Informix Dynamic Server Version 10.00.FC6

informix@ifx1:~> esql -V
IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4R1

informix@ifx1:~> perl -v

This is perl, v5.8.8 built for x86_64-linux

informix@ifx1:~> perl -MDBI -e 'print "$DBI::VERSION\n"'
1.53

informix@ifx1:~> perl -MDBD::Informix -e 'print "$DBD::Informix::VERSION\n"'
2007.0914

informix@ifx1:~> echo 'select pings_remaining from ping_count' |
dbaccess master_118

Database selected.



pings_remaining

-256512



informix@ifx1:~> cat test.pl
#!/usr/local/bin/perl
use DBI;

my $database="master_118\@ifx1_tcp";
my $dbh = DBI->connect("dbi:Informix:$database", '', '',
{ AutoCommit => 1, PrintError => 1
,PrintWarn => 1});
$sth=$dbh->prepare(qq(select pings_remaining from ping_count));
$sth->execute;
($pings_remaining) = $sth->fetchrow_array;
print "pings_remaining = $pings_remaining\n";

informix@ifx1:~> perl test.pl
pings_remaining = 4294710784


Any help gratefully received
--
Clive

--
This message has been scanned for viruses and
dangerous content by OpenProtect(http://www.openprotect.com), and is
believed to be clean.

Re: int8 Informix and 64bit perl

am 27.09.2007 16:57:10 von jonathan.leffler

On 9/27/07, Clive Eisen wrote:
> I seem to have a problem with negative int8 on a 64 bit linux platform
>
> dbaccess gives the correct answer but DBD::Informix does not
>
> informix@ifx1:~> oninit -V
> IBM Informix Dynamic Server Version 10.00.FC6
>
> informix@ifx1:~> esql -V
> IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4R1
>
> informix@ifx1:~> perl -v
>
> This is perl, v5.8.8 built for x86_64-linux
>
> informix@ifx1:~> perl -MDBI -e 'print "$DBI::VERSION\n"'
> 1.53
>
> informix@ifx1:~> perl -MDBD::Informix -e 'print "$DBD::Informix::VERSION\n"'
> 2007.0914
>
> informix@ifx1:~> echo 'select pings_remaining from ping_count' |
> dbaccess master_118
>
> Database selected.
>
>
>
> pings_remaining
>
> -256512
>
>
>
> informix@ifx1:~> cat test.pl
> #!/usr/local/bin/perl
> use DBI;
>
> my $database="master_118\@ifx1_tcp";
> my $dbh = DBI->connect("dbi:Informix:$database", '', '',
> { AutoCommit => 1, PrintError => 1
> ,PrintWarn => 1});
> $sth=$dbh->prepare(qq(select pings_remaining from ping_count));
> $sth->execute;
> ($pings_remaining) = $sth->fetchrow_array;
> print "pings_remaining = $pings_remaining\n";
>
> informix@ifx1:~> perl test.pl
> pings_remaining = 4294710784
>
>
> Any help gratefully received


Dear Clive,

Unfortunately (for you - fortunately for me), Perl 5.8.8 with 64-bit
CSDK 3.00.FC2 on Solaris 10 correctly produces the negative answer.

That means that to some extent, the problem is platform specific.
I'll try to build DBD::Informix with CSDK 2.90.FC1 later - I have to
rig the build environment on my machine to do that. It might be CSDK
2.90 vs 3.00; it might be Linux x86 vs Solaris SPARC.


--
Jonathan Leffler #include
Guardian of DBD::Informix - v2007.0914 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease
to be amused."

Re: int8 Informix and 64bit perl

am 27.09.2007 17:11:24 von clive

Jonathan Leffler wrote:
> On 9/27/07, Clive Eisen wrote:
>> I seem to have a problem with negative int8 on a 64 bit linux platform
>>
>> dbaccess gives the correct answer but DBD::Informix does not
>>
>> informix@ifx1:~> oninit -V
>> IBM Informix Dynamic Server Version 10.00.FC6
>>
>> informix@ifx1:~> esql -V
>> IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4R1
>>
>> informix@ifx1:~> perl -v
>>
>> This is perl, v5.8.8 built for x86_64-linux
>>
>> informix@ifx1:~> perl -MDBI -e 'print "$DBI::VERSION\n"'
>> 1.53
>>
>> informix@ifx1:~> perl -MDBD::Informix -e 'print "$DBD::Informix::VERSION\n"'
>> 2007.0914
>>
>> informix@ifx1:~> echo 'select pings_remaining from ping_count' |
>> dbaccess master_118
>>
>> Database selected.
>>
>>
>>
>> pings_remaining
>>
>> -256512
>>
>>
>>
>> informix@ifx1:~> cat test.pl
>> #!/usr/local/bin/perl
>> use DBI;
>>
>> my $database="master_118\@ifx1_tcp";
>> my $dbh = DBI->connect("dbi:Informix:$database", '', '',
>> { AutoCommit => 1, PrintError => 1
>> ,PrintWarn => 1});
>> $sth=$dbh->prepare(qq(select pings_remaining from ping_count));
>> $sth->execute;
>> ($pings_remaining) = $sth->fetchrow_array;
>> print "pings_remaining = $pings_remaining\n";
>>
>> informix@ifx1:~> perl test.pl
>> pings_remaining = 4294710784
>>
>>
>> Any help gratefully received
>
>
> Dear Clive,
>
> Unfortunately (for you - fortunately for me), Perl 5.8.8 with 64-bit
> CSDK 3.00.FC2 on Solaris 10 correctly produces the negative answer.
>
> That means that to some extent, the problem is platform specific.
> I'll try to build DBD::Informix with CSDK 2.90.FC1 later - I have to
> rig the build environment on my machine to do that. It might be CSDK
> 2.90 vs 3.00; it might be Linux x86 vs Solaris SPARC.
>
>

Thanks Jonathan

FYI 32bit client using 2.90.UC4 works correctly on linux against the
same DB server

--
Clive

--
This message has been scanned for viruses and
dangerous content by OpenProtect(http://www.openprotect.com), and is
believed to be clean.

Re: int8 Informix and 64bit perl

am 27.09.2007 18:36:46 von jonathan.leffler

On 9/27/07, Clive Eisen wrote:
> Jonathan Leffler wrote:
> > On 9/27/07, Clive Eisen wrote:
> >> I seem to have a problem with negative int8 on a 64 bit linux platform
> >>
> >> dbaccess gives the correct answer but DBD::Informix does not
> >>
> >> informix@ifx1:~> oninit -V
> >> IBM Informix Dynamic Server Version 10.00.FC6
> >>
> >> informix@ifx1:~> esql -V
> >> IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4R1
> >>
> >> informix@ifx1:~> perl -v
> >>
> >> This is perl, v5.8.8 built for x86_64-linux
> >>
> >> informix@ifx1:~> perl -MDBI -e 'print "$DBI::VERSION\n"'
> >> 1.53
> >>
> >> informix@ifx1:~> perl -MDBD::Informix -e 'print "$DBD::Informix::VERSION\n"'
> >> 2007.0914

[...]

> > Unfortunately (for you - fortunately for me), Perl 5.8.8 with 64-bit
> > CSDK 3.00.FC2 on Solaris 10 correctly produces the negative answer.
> >
> > That means that to some extent, the problem is platform specific.
> > I'll try to build DBD::Informix with CSDK 2.90.FC1 later - I have to
> > rig the build environment on my machine to do that. It might be CSDK
> > 2.90 vs 3.00; it might be Linux x86 vs Solaris SPARC.

Rigged environment - it works correctly on Solaris under CSDK 2.90.FC1.

Please can you send me 'perl -V' output - I suggest taking dbi-users
off this chat until we have a resolution.

> FYI 32bit client using 2.90.UC4 works correctly on linux against the
> same DB server

So it is a client-side problem - CSDK or DBD::Informix - and not a
server problem.

--
Jonathan Leffler #include
Guardian of DBD::Informix - v2007.0914 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease
to be amused."

Re: int8 Informix and 64bit perl

am 03.10.2007 16:08:13 von clive

Jonathan Leffler wrote:
> On 9/27/07, Clive Eisen wrote:
>> Jonathan Leffler wrote:
>>> On 9/27/07, Clive Eisen wrote:
>>>> I seem to have a problem with negative int8 on a 64 bit linux platform
>>>>
>>>> dbaccess gives the correct answer but DBD::Informix does not
>>>>
>>>> informix@ifx1:~> oninit -V
>>>> IBM Informix Dynamic Server Version 10.00.FC6
>>>>
>>>> informix@ifx1:~> esql -V
>>>> IBM Informix CSDK Version 2.90, IBM Informix-ESQL Version 2.90.FC4R1
>>>>
>>>> informix@ifx1:~> perl -v
>>>>
>>>> This is perl, v5.8.8 built for x86_64-linux
>>>>
>>>> informix@ifx1:~> perl -MDBI -e 'print "$DBI::VERSION\n"'
>>>> 1.53
>>>>
>>>> informix@ifx1:~> perl -MDBD::Informix -e 'print "$DBD::Informix::VERSION\n"'
>>>> 2007.0914
>
> [...]
>
>>> Unfortunately (for you - fortunately for me), Perl 5.8.8 with 64-bit
>>> CSDK 3.00.FC2 on Solaris 10 correctly produces the negative answer.
>>>
>>> That means that to some extent, the problem is platform specific.
>>> I'll try to build DBD::Informix with CSDK 2.90.FC1 later - I have to
>>> rig the build environment on my machine to do that. It might be CSDK
>>> 2.90 vs 3.00; it might be Linux x86 vs Solaris SPARC.
>
> Rigged environment - it works correctly on Solaris under CSDK 2.90.FC1.
>
> Please can you send me 'perl -V' output - I suggest taking dbi-users
> off this chat until we have a resolution.
>
>> FYI 32bit client using 2.90.UC4 works correctly on linux against the
>> same DB server
>
> So it is a client-side problem - CSDK or DBD::Informix - and not a
> server problem.
>

Indeed - it's a reproducible problem in ESQL Version 2.90.FC4R1
and is confirmed in my tests to be fixed in ESQL Version 3.00.FC2

So if you use esql on 64bit Linux I suggest you upgrade to 3.00.

Thanks again for your help Jonathan.

--
Clive



--
This message has been scanned for viruses and
dangerous content by OpenProtect(http://www.openprotect.com), and is
believed to be clean.