]> Sergey Matveev's repositories - public-inbox.git/commitdiff
over: get_art: use dbh->prepare_cached
authorEric Wong <e@yhbt.net>
Wed, 10 Jun 2020 07:04:51 +0000 (07:04 +0000)
committerEric Wong <e@yhbt.net>
Sat, 13 Jun 2020 07:55:45 +0000 (07:55 +0000)
This speeds up xt/imapd-validate.t by around 10% when used with
an abandoned patch to remove ->query_xover.  We may also depend
on this further if we abandon storing doc_data in Xapian to save
disk space.

lib/PublicInbox/Over.pm

index 402cbf7ce07181144f066a252ffb5a16f25bfa17..1faeff418f4d9caadc30eb6e6c9d19541b246caf 100644 (file)
@@ -179,11 +179,12 @@ SELECT COUNT(num) FROM over WHERE num > 0
 sub get_art {
        my ($self, $num) = @_;
        my $dbh = $self->connect;
-       my $smsg = $dbh->selectrow_hashref(<<'', undef, $num);
+       my $sth = $dbh->prepare_cached(<<'', undef, 1);
 SELECT num,ds,ts,ddd FROM over WHERE num = ? LIMIT 1
 
-       return load_from_row($smsg) if $smsg;
-       undef;
+       $sth->execute($num);
+       my $smsg = $sth->fetchrow_hashref;
+       $smsg ? load_from_row($smsg) : undef;
 }
 
 sub next_by_mid {