my ($self, $mid) = @_;
my $dbh = $self->{dbh};
my $sth = $dbh->prepare_cached(<<'');
-INSERT OR IGNORE INTO msgmap (mid) VALUES (?)
+INSERT INTO msgmap (mid) VALUES (?)
- return if $sth->execute($mid) == 0;
+ return unless eval { $sth->execute($mid) };
my $num = $dbh->last_insert_id(undef, undef, 'msgmap', 'num');
$self->num_highwater($num) if defined($num);
$num;
my $ret = $d->mid_insert('a@b');
is($ret, undef, 'duplicate mid_insert in undef result');
is($d->num_for('a@b'), $mid2num{'a@b'}, 'existing number not clobbered');
+my $next = (sort(keys %num2mid))[-1];
+is($d->mid_insert('ok@unique'), $next + 1,
+ 'got expected num after failing mid_insert');
foreach my $n (keys %num2mid) {
is($d->mid_for($n), $num2mid{$n}, "num:$n maps correctly");
$mime->header_set('References', '<zz-mid@b>');
ok($im->add($mime), 'message with multiple Message-ID');
$im->done;
+ my ($total, undef) = $ibx->over->recent;
+ is($ibx->mm->num_highwater, $total, 'got expected highwater value');
my $srch = $ibx->search;
my $mset1 = $srch->reopen->query('m:abcde@1', { mset => 1 });
is($mset1->size, 1, 'message found by first MID');