DBD::ODBC works in perl 5.8.7 but fails in 5.8.8 and above
0 answers - 1445 bytes -

Martin J. Evans wrote:
19-Sep-2006 Tim Bunce wrote:
>Tue, Sep 19, 2006 at 02:47:18PM +0100, Martin J. Evans wrote:
I never really
got to the root of the problem but it appears:
in dbdimp.c did a:
svGrow(phs->sv, 50+1)
but
SvLEN(phs->sv) returns 52!
DBD::DBC does not expect this so the test fails. Since this is
continuing to fail in all Perl versions since 5.8.8 I really would
like to get this sorted out. I've checked through the perl changes files and
I cannot see anything that looks a possibility. Does anyone know why
If phs->sv is a SVt_NULL and you do:
SvUPGRADE(phs->sv, SVt_PVNV)
svGrow(phs->sv, 50+1)
>svGrow should really be SvGRW. In fact there's no svGrow in perl
>[later] or in DBD::DBC. I'll assume you meant SvGRW and your
>shift key got out of step.
Yes I did.
SvLEN(phs->sv) returns 52 in 5.8.8 onwards
I've not been following this thread at all, but seeing the above made
this spring to mind:
Perl has always been at liberty to allocate more memory than was
requested if it thinks that would be a good idea, and that is exactly
what it does as of the above patch (#24665) in order to reduce the
number of realloc()'s that might be required.
That patch was integrated into 5.8.8.