--- trunk/index_DBI_cache.pm 2003/07/04 18:23:00 60 +++ trunk/index_DBI_cache.pm 2003/07/13 14:44:03 93 @@ -17,6 +17,9 @@ my $c_table; my $c_count; +# bench time +my $t = time(); + sub new { my $class = shift; my $self = {}; @@ -96,10 +99,17 @@ $Table{$field}++; #$sth_cache{$field."select"}->execute($index_data) || die "cache: $field select; ".$self->{dbh}->errstr(); + + # XXX for some strange reason, it seems that some entries in my + # database produce strings which start with null byte. I suspect + # this to be bug in OpenIsis 0.9.0. + # This should fix it.. + $index_data =~ s/^[^\w]+//; $index_data = substr($index_data,0,255); + my $uc = uc($index_data); if (! $c_table->{$field}->{$ident}->{$uc}) { - $sth_cache{$field."insert"}->execute($index_data,$ident,0) || die "cache: $field insert; ".$self->{dbh}->errstr(); + $sth_cache{$field."insert"}->execute($index_data,$ident,0) || warn "cache: $field insert ($index_data,$ident); ".$self->{dbh}->errstr(); #print stderr "in index: $index_data\n"; $c_table->{$field}->{$ident}->{$uc} = $index_data; $c_count->{$field}->{$ident}->{$uc} = 1; @@ -191,6 +201,8 @@ foreach my $table (keys %Table) { # FIX +print STDERR "last operation took ",time()-$t," seconds...\n"; +$t=time(); print STDERR "creating ord for $table...\n"; create_ord($table); undef $sth_cache{$table."select"};