]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/OverIdx.pm
searchidx: index THREADID in Xapian
[public-inbox.git] / lib / PublicInbox / OverIdx.pm
index 5821c562b814de635862db755db1c7a42f9954e8..d42d6fe76a273f5ed5f839a68a5388efc05eda1f 100644 (file)
@@ -21,7 +21,7 @@ use Carp qw(croak);
 
 sub dbh_new {
        my ($self) = @_;
-       my $dbh = $self->SUPER::dbh_new($self->{-no_sync} ? 2 : 1);
+       my $dbh = $self->SUPER::dbh_new($self->{-no_fsync} ? 2 : 1);
 
        # TRUNCATE reduces I/O compared to the default (DELETE)
        # We do not use WAL since we're optimized for read-only ops,
@@ -271,11 +271,10 @@ sub subject_path ($) {
 }
 
 sub add_overview {
-       my ($self, $mime, $smsg) = @_;
-       $smsg->{lines} = $mime->body_raw =~ tr!\n!\n!;
-       my $hdr = $mime->header_obj;
-       my $mids = mids_for_index($hdr);
-       my $refs = parse_references($smsg, $hdr, $mids);
+       my ($self, $eml, $smsg) = @_;
+       $smsg->{lines} = $eml->body_raw =~ tr!\n!\n!;
+       my $mids = mids_for_index($eml);
+       my $refs = parse_references($smsg, $eml, $mids);
        my $subj = $smsg->{subject};
        my $xpath;
        if ($subj ne '') {
@@ -285,7 +284,7 @@ sub add_overview {
        my $dd = $smsg->to_doc_data;
        utf8::encode($dd);
        $dd = compress($dd);
-       add_over($self, [ @$smsg{qw(ts ds num)}, $mids, $refs, $xpath, $dd ]);
+       add_over($self, $smsg, $mids, $refs, $xpath, $dd);
 }
 
 sub _add_over {
@@ -312,10 +311,10 @@ sub _add_over {
 }
 
 sub add_over {
-       my ($self, $values) = @_;
-       my ($ts, $ds, $num, $mids, $refs, $xpath, $ddd) = @$values;
+       my ($self, $smsg, $mids, $refs, $xpath, $ddd) = @_;
        my $old_tid;
        my $vivified = 0;
+       my $num = $smsg->{num};
 
        begin_lazy($self);
        delete_by_num($self, $num, \$old_tid);
@@ -327,17 +326,17 @@ sub add_over {
                $v > 1 and warn "BUG: vivified multiple ($v) ghosts for $mid\n";
                $vivified += $v;
        }
-       my $tid = $vivified ? $old_tid : link_refs($self, $refs, $old_tid);
-       my $sid = sid($self, $xpath);
+       $smsg->{tid} = $vivified ? $old_tid : link_refs($self, $refs, $old_tid);
+       $smsg->{sid} = sid($self, $xpath);
        my $dbh = $self->{dbh};
        my $sth = $dbh->prepare_cached(<<'');
 INSERT INTO over (num, tid, sid, ts, ds, ddd)
 VALUES (?,?,?,?,?,?)
 
-       my $n = 0;
-       my @v = ($num, $tid, $sid, $ts, $ds);
-       foreach (@v) { $sth->bind_param(++$n, $_) }
-       $sth->bind_param(++$n, $ddd, SQL_BLOB);
+       my $nc = 1;
+       $sth->bind_param($nc, $num);
+       $sth->bind_param(++$nc, $smsg->{$_}) for (qw(tid sid ts ds));
+       $sth->bind_param(++$nc, $ddd, SQL_BLOB);
        $sth->execute;
        $sth = $dbh->prepare_cached(<<'');
 INSERT INTO id2num (id, num) VALUES (?,?)