On Tue, 11 Aug 2009 09:23:32 +0200, "H.Merijn Brand"
<h.m.br...@xs4all.nl> wrote:

> $DBI_DSN = "dbi:CSV:f_dir=.;f_ext=.csv/r;f_schema=undef"
> 
> select    PROVINCIE_VEST, count (*)
> from      cfischolen
> group by  PROVINCIE_VEST
> semi-panic: attempt to dup freed string at 
> /pro/lib/perl5/site_perl/5.10.0/i686-linux-64int/DBD/File.pm line 629.
> Segmentation fault

I think it is indirectly caused by SQL::Statement:

--8<--- foo.pl
#!/pro/bin/perl

use strict;
use warnings;

use Data::Peek;
use DBI;

open my $fh, ">", "foo.csv";
print $fh "c_foo,foo,bar\n";
for (1 .. 40000) {
    print $fh join ",", $_, ("a".."f")[int rand 6], int rand 10, "\n";
    }
close $fh;

my $dbh = DBI->connect ("dbi:CSV:", undef, undef, {
    f_dir       => ".",
    f_ext       => ".csv/r",
    f_schema    => "undef",

    RaiseError  => 1,
    PrintError  => 1,
    });

my ($foo, $cnt);
my $sth = $dbh->prepare (qq;
    select   foo, count (*)
    from     foo
    group by foo;);
$sth->execute;
DDumper $sth->{NAME_lc};
-->8---

$VAR1 = [
    'foo',
    '*',
    undef,
    undef
    ];

That returns me *4* fields, but it should be *2*

If I bind 4 variables like
--8<---
my ($foo, $cnt, $x1, $x2);
my $sth = $dbh->prepare (qq;
    select   foo, count (*)
    from     foo
    group by foo;);
$sth->execute;
DDumper $sth->{NAME_lc};
$sth->bind_columns (\$foo, \$cnt, \$x1, \$x2);
while ($sth->fetch) {
    printf "%-5s %6d %20s %20s\n", $foo, $cnt, $x1, $x2;
    }
-->8---

$VAR1 = [
    'foo',
    '*',
    undef,
    undef
    ];
a       6592                    a                    a
d       6669                    d                    d
f       6572                    f                    f
b       6807                    b                    b
c       6730                    c                    c
e       6630                    e                    e


-- 
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using & porting perl 5.6.2, 5.8.x, 5.10.x, 5.11.x on HP-UX 10.20, 11.00,
11.11, 11.23, and 11.31, OpenSuSE 10.3, 11.0, and 11.1, AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/

Reply via email to