On 2007-12-16 23:07:36 +0100, Peter J. Holzer wrote:
> I have a perl script which updates some (large) tables from text-files,
> inserting, updating and deleting records. For performance reasons the
> inserts, updates and deletes are queued together and then done with an
> array operation when there are "enough". Now I've added another table
> and the script dies with:
>
> *** glibc detected *** double free or corruption (fasttop):
> 0x0000000001450ad0 ***
>
> in ora_execute_array (called from line 854 in Oracle.pm)
>
> The relevant part of the script looks like this:
>
> sub insert {
> my ($self, $inserts) = @_;
> my $dal = $self->{_dal};
>
> my $sth_insert_data = $dal->{_dbh}->prepare_cached("insert into
> data(id, real) values(?, ?)");
> my $sth_insert_datacoord =
> $dal->{_dbh}->prepare_cached(
> "insert into datacoords(period_start, period_end,
> data_id, set_id)
> values(?, ?, ?,
> ? )"
> );
>
> my $sth_insert_fact_comext =
> $dal->{_dbh}->prepare_cached(
> "insert into fact_comext(period_start, reporter,
> partner, product, data_id, real)
> values(?, ?, ?,
> ?, ? ? )"
^^^^^^^^^^
Oops. I just noticed the missing comma here. I don't know if this was
the cause (I changed the execute_array to a plain execute in a loop,
when I noticed it and the script is still running), but that's certainly
a possibility.
hp
--
_ | Peter J. Holzer | If I wanted to be "academically correct",
|_|_) | Sysadmin WSR | I'd be programming in Java.
| | | [EMAIL PROTECTED] | I don't, and I'm not.
__/ | http://www.hjp.at/ | -- Jesse Erlbaum on dbi-users
pgpZVFRiNlkc3.pgp
Description: PGP signature
