-# Copyright (C) 2018-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# for XOVER, OVER in NNTP, and feeds/homepage/threads in PSGI
my ($self) = @_;
delete $self->{txn} or return;
$self->{dbh}->commit;
+ eval { $self->{dbh}->do('PRAGMA optimize') };
}
sub begin_lazy {
next;
}
$pr->(<<EOM) if $pr;
-I: ghost $r->{num} <$mid> THREADID=$r->{tid} culled
+# ghost $r->{num} <$mid> THREADID=$r->{tid} culled
EOM
}
delete_by_num($self, $r->{num});
}
- $pr->("I: rethread culled $total ghosts\n") if $pr && $total;
+ $pr->("# rethread culled $total ghosts\n") if $pr && $total;
}
# used for cross-inbox search
}
sub merge_xref3 { # used for "-extindex --dedupe"
- my ($self, $keep_docid, $drop_docid, $oidhex) = @_;
- my $oidbin = pack('H*', $oidhex);
+ my ($self, $keep_docid, $drop_docid, $oidbin) = @_;
my $sth = $self->{dbh}->prepare_cached(<<'');
UPDATE OR IGNORE xref3 SET docid = ? WHERE docid = ? AND oidbin = ?
$smsg->{-vivify_xvmd} = \@vivify_xvmd;
}
+sub fork_ok {
+ return 1 if $DBD::SQLite::sqlite_version >= 3008003;
+ my ($opt) = @_;
+ my @j = split(/,/, $opt->{jobs} // '');
+ state $warned;
+ grep { $_ > 1 } @j and $warned //= warn('DBD::SQLite version is ',
+ $DBD::SQLite::sqlite_version,
+ ", need >= 3008003 (3.8.3) for --jobs > 1\n");
+ $opt->{jobs} = '1,1';
+ undef;
+}
+
1;