From 341af725ce7ca711e7e5906138459854a3101309 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 10 Oct 2021 14:25:16 +0000 Subject: extindex: --gc doesn't touch ghost entries We were deleting ghost entries, this was usually harmless since other messages could fill-in-the-blanks, but could cause misthreading in odd cases where a big chunk of a thread is missing and the latest messages only referenced ghosts. We'll also save some cycles when scanning Xapian shards since docids won't be <= 0. --- lib/PublicInbox/ExtSearchIdx.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/PublicInbox/ExtSearchIdx.pm') diff --git a/lib/PublicInbox/ExtSearchIdx.pm b/lib/PublicInbox/ExtSearchIdx.pm index 42488e12..acf35e3d 100644 --- a/lib/PublicInbox/ExtSearchIdx.pm +++ b/lib/PublicInbox/ExtSearchIdx.pm @@ -425,13 +425,13 @@ DELETE FROM xref3 WHERE docid NOT IN (SELECT num FROM over) # fixup from old bugs: $nr = $self->{oidx}->dbh->do(<<''); -DELETE FROM over WHERE num NOT IN (SELECT docid FROM xref3) +DELETE FROM over WHERE num > 0 AND num NOT IN (SELECT docid FROM xref3) warn "I: eliminated $nr stale over entries\n" if $nr != 0; reindex_checkpoint($self, $sync) if checkpoint_due($sync); my ($cur) = $self->{oidx}->dbh->selectrow_array(< 0 EOM $cur // return; # empty my ($r, $n, %active); -- cgit v1.2.3-24-ge0c7