While IMAP UIDs are specified as 32-bit in RFC 3501, there's no reason we can't support 64-bit article numbers on our end when the time comes. Neither NNTP nor POP3 have the 32-bit limitation, even, so it's not inconceivable that IMAP will drop that limitation at some point, too. --- lib/PublicInbox/Isearch.pm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/lib/PublicInbox/Isearch.pm b/lib/PublicInbox/Isearch.pm index 2b45e08e..5cbc36fd 100644 --- a/lib/PublicInbox/Isearch.pm +++ b/lib/PublicInbox/Isearch.pm @@ -1,12 +1,11 @@ -# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org> +# Copyright (C) all contributors <meta@public-inbox.org> # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> # Provides everything the PublicInbox::Search object does; # but uses global ExtSearch (->ALL) with an eidx_key query to # emulate per-Inbox search using ->ALL. package PublicInbox::Isearch; -use strict; -use v5.10.1; +use v5.12; use PublicInbox::ExtSearch; use PublicInbox::Search; @@ -48,8 +47,8 @@ SELECT MAX(docid) FROM xref3 WHERE ibx_id = ? AND xnum >= ? AND xnum <= ? $r[1] = $sth->fetchrow_array; if (defined($r[1]) && defined($r[0])) { $opt{limit} = $r[1] - $r[0] + 1; - } else { - $r[1] //= 0xffffffff; + } else { # these are fed to SQLite + $r[1] //= '0x7'.('f'x15); # string for some 32-bit Perl $r[0] //= 0; } $opt{uid_range} = \@r;