# 8 - remove redundant/unneeded document data
# 9 - disable Message-ID compression (SHA-1)
# 10 - optimize doc for NNTP overviews
- SCHEMA_VERSION => 10,
+ # 11 - merge threads when vivifying ghosts
+ SCHEMA_VERSION => 11,
# n.b. FLAG_PURE_NOT is expensive not suitable for a public website
# as it could become a denial-of-service vector
if ($was_ghost) {
$doc_id = $smsg->doc_id;
- $self->link_message($smsg);
+ $self->link_message($smsg, $smsg->thread_id);
$doc->set_data($smsg->to_doc_data);
$db->replace_document($doc_id, $doc);
} else {
}
sub link_message {
- my ($self, $smsg) = @_;
+ my ($self, $smsg, $old_tid) = @_;
my $doc = $smsg->{doc};
my $mid = $smsg->mid;
my $mime = $smsg->mime;
# but we can never trust clients to do the right thing
my $ref = shift @refs;
$tid = $self->_resolve_mid_to_tid($ref);
+ $self->merge_threads($tid, $old_tid) if defined $old_tid;
# the rest of the refs should point to this tid:
foreach $ref (@refs) {