X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FIsearch.pm;h=2b45e08e8447b67d8234852f0f7290f84c907b26;hb=HEAD;hp=7ca2f9e414eac3e63a60e8ef8bdf03a54ef5ccd9;hpb=5f875446975b1473c1ffd7196e572e13d58ba56f;p=public-inbox.git diff --git a/lib/PublicInbox/Isearch.pm b/lib/PublicInbox/Isearch.pm index 7ca2f9e4..2b45e08e 100644 --- a/lib/PublicInbox/Isearch.pm +++ b/lib/PublicInbox/Isearch.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2020 all contributors +# Copyright (C) 2020-2021 all contributors # License: AGPL-3.0+ # Provides everything the PublicInbox::Search object does; @@ -25,6 +25,7 @@ SELECT ibx_id FROM inboxes WHERE eidx_key = ? LIMIT 1 die "E: `$self->{eidx_key}' not in $self->{es}->{topdir}\n"; } +sub query_approxidate { $_[0]->{es}->query_approxidate($_[1], $_[2]) } sub mset { my ($self, $str, $opt) = @_; @@ -33,7 +34,7 @@ sub mset { if (my $uid_range = $opt{uid_range}) { my ($beg, $end) = @$uid_range; my $ibx_id = $self->{-ibx_id} //= _ibx_id($self); - my $dbh = $self->{es}->{over}->dbh; + my $dbh = $self->{es}->over->dbh; my $sth = $dbh->prepare_cached(<<'', undef, 1); SELECT MIN(docid) FROM xref3 WHERE ibx_id = ? AND xnum >= ? AND xnum <= ? @@ -68,12 +69,11 @@ sub mset_to_artnums { $range = 'AND xnum >= ? AND xnum <= ?'; @r = @$r; } - my $rows = $self->{es}->over->dbh-> - selectall_arrayref(<<"", undef, $ibx_id, @$docids, @r); + return $self->{es}->over->dbh-> + selectcol_arrayref(<<"", undef, $ibx_id, @$docids, @r); SELECT xnum FROM xref3 WHERE ibx_id = ? AND docid IN ($qmarks) $range ORDER BY xnum ASC - return [ map { $_->[0] } @$rows ]; } my $rows = $self->{es}->over->dbh->