]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/IMAPsearchqp.pm
No ext_urls
[public-inbox.git] / lib / PublicInbox / IMAPsearchqp.pm
index 190fefb9cd5000420f7b393aa3193f0500e420e5..0c37220c9dcf3884d1ddd2b096cb03e1b784fc3e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2020 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>
 # IMAP search query parser.  cf RFC 3501
 
@@ -124,7 +124,7 @@ sub ON {
        my ($self, $item) = @_;
        my $ts = yyyymmdd($item);
        my $end = $ts + 86399; # no leap day
-       push @{$self->{xap}}, "ts:$ts..$end";
+       push @{$self->{xap}}, "rt:$ts..$end";
        my $sql = $self->{sql} or return 1;
        $$sql .= " AND ts >= $ts AND ts <= $end";
 }
@@ -132,7 +132,7 @@ sub ON {
 sub BEFORE {
        my ($self, $item) = @_;
        my $ts = yyyymmdd($item);
-       push @{$self->{xap}}, "ts:..$ts";
+       push @{$self->{xap}}, "rt:..$ts";
        my $sql = $self->{sql} or return 1;
        $$sql .= " AND ts <= $ts";
 }
@@ -140,7 +140,7 @@ sub BEFORE {
 sub SINCE {
        my ($self, $item) = @_;
        my $ts = yyyymmdd($item);
-       push @{$self->{xap}}, "ts:$ts..";
+       push @{$self->{xap}}, "rt:$ts..";
        my $sql = $self->{sql} or return 1;
        $$sql .= " AND ts >= $ts";
 }
@@ -165,7 +165,7 @@ sub msn_set {
 # things that should not match
 sub impossible {
        my ($self) = @_;
-       push @{$self->{xap}}, 'bytes:..0';
+       push @{$self->{xap}}, 'z:..0';
        my $sql = $self->{sql} or return 1;
        $$sql .= ' AND num < 0';
 }
@@ -217,8 +217,8 @@ BEFORE_date : 'BEFORE' date { $q->BEFORE(\%item) }
 
 MSN_set : sequence_set { $q->msn_set($item{sequence_set}) }
 UID_set : "UID" sequence_set { $q->uid_set($item{sequence_set}) }
-LARGER_number : "LARGER" number { $q->xap_only("bytes:$item{number}..") }
-SMALLER_number : "SMALLER" number { $q->xap_only("bytes:..$item{number}") }
+LARGER_number : "LARGER" number { $q->xap_only("z:$item{number}..") }
+SMALLER_number : "SMALLER" number { $q->xap_only("z:..$item{number}") }
 
 DELETED : "DELETED" { $q->impossible }
 OLD : "OLD" { $q->impossible }
@@ -279,6 +279,8 @@ sub parse {
        my $sql = '';
        %$q = (sql => \$sql, imap => $imap); # imap = PublicInbox::IMAP obj
        # $::RD_TRACE = 1;
+       local $::RD_ERRORS = undef;
+       local $::RD_WARN = undef;
        my $res = eval { $prd->search_key(uc($query)) };
        return $@ if $@ && $@ =~ /\A(?:BAD|NO) /;
        return 'BAD unexpected result' if !$res || $res != $q;