On Tue, Sep 21, 2010 at 06:01:20AM -0700, Mara wrote: > Hi, > > I'm using DBI to connect to an Oracle 9i database. > After connect, prepare and execute of an 'update' statement, the > following > > $sth->fetchrow_hashref("NAME_lc") > > failes with > > DBI.xs:2001: dbih_get_attr_k: assertion »i == (((((const SV *) > (name_av))->sv_flags & 0x00800000)) ? Perl_mg_size(my_perl, ((SV *) > ({ void *_p = (name_av); _p; }))) : ((XPVAV*) (name_av)->sv_any)- > >xav_fill)+1« failed. > > Despite it being pointless to call fetchrow after an update I feel > this still should not happen.
I agree. It should be an error not an assertion. The relevant code is: if (DBIc_TRACE_LEVEL(imp_sth) >= 10) PerlIO_printf(DBILOGFP," FETCH $h->{%s} from $h->{NAME} with $h->{NUM_OF_FIELDS} = %d" " and %ld entries in $h->{NAME}\n", neatsvpv(keysv,0), i, AvFILL(name_av)+1); assert((i == -1 && 0 == AvFILL(name_av)+1) || (i == AvFILL(name_av)+1)); Please enable trace level 10 and reply with the output of that log message just before the assertion failed. Thanks. Tim.