about summary refs log tree commit homepage
path: root/lib/PublicInbox/Over.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/Over.pm')
-rw-r--r--lib/PublicInbox/Over.pm13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/PublicInbox/Over.pm b/lib/PublicInbox/Over.pm
index 286fb7f6..402cbf7c 100644
--- a/lib/PublicInbox/Over.pm
+++ b/lib/PublicInbox/Over.pm
@@ -215,4 +215,17 @@ SELECT num,ts,ds,ddd FROM over WHERE num = ? LIMIT 1
         load_from_row($smsg);
 }
 
+# IMAP search
+sub uid_range {
+        my ($self, $beg, $end, $sql) = @_;
+        my $dbh = $self->connect;
+        my $q = 'SELECT num FROM over WHERE num >= ? AND num <= ?';
+
+        # This is read-only, anyways; but caller should verify it's
+        # only sending \A[0-9]+\z for ds and ts column ranges
+        $q .= $$sql if $sql;
+        $q .= ' ORDER BY num ASC LIMIT ' . DEFAULT_LIMIT;
+        $dbh->selectcol_arrayref($q, undef, $beg, $end);
+}
+
 1;