X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FMsgmap.pm;h=9523752e9af07f8b973ac45d5a5aeda408801513;hb=95bdac7f09c69036efed537a4d03d5bdd2ae4eb6;hp=d474badef16b06a9bf74b63f80224860598d406c;hpb=861bec7bec5908871e5b0ede244cb1e990a47403;p=public-inbox.git
diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm
index d474bade..9523752e 100644
--- a/lib/PublicInbox/Msgmap.pm
+++ b/lib/PublicInbox/Msgmap.pm
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2018 all contributors
+# Copyright (C) 2015-2020 all contributors
# License: AGPL-3.0+
# bidirectional Message-ID <-> Article Number mapping for the NNTP
@@ -126,11 +126,11 @@ sub mid_insert {
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) unless !defined($num);
+ $self->num_highwater($num) if defined($num);
$num;
}
@@ -211,11 +211,12 @@ ORDER BY num ASC LIMIT 1000
}
sub msg_range {
- my ($self, $beg, $end) = @_;
+ my ($self, $beg, $end, $cols) = @_;
+ $cols //= 'num,mid';
my $dbh = $self->{dbh};
my $attr = { Columns => [] };
- my $mids = $dbh->selectall_arrayref(<<'', $attr, $$beg, $end);
-SELECT num,mid FROM msgmap WHERE num >= ? AND num <= ?
+ my $mids = $dbh->selectall_arrayref(<<"", $attr, $$beg, $end);
+SELECT $cols FROM msgmap WHERE num >= ? AND num <= ?
ORDER BY num ASC LIMIT 1000
$$beg = $mids->[-1]->[0] + 1 if @$mids;