Subject: Re: [lemonade] CONTEXT with sequence searches

From: Dan Karp <[email-masked]>
Date: Wed, 4 Jun 2008 17:52:37 -0700 (PDT)

> If a mailbox has 3+ messages and I use:
> 
> 1 SEARCH RETURN (UPDATE) 2
> * ESEARCH (TAG "1") 2
> 1 OK

I was under the impression that sequence sets (and UID sets) in
SEARCH/SORT contexts applied only at SEARCH/SORT time.  So "2"
in your example would mean "the message at sequence 2 at time of
search", not "whichever message currently occupies sequence 2".
The latter interpretation doesn't seem real-world useful.
_______________________________________________
lemonade mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/lemonade
Supplemental Web Site:
http://www.standardstrack.com/ietf/lemonade

---

From: Timo Sirainen <[email-masked]>
Date: Thu, 05 Jun 2008 04:05:39 +0300

> search", not "whichever message currently occupies sequence 2".

I don't really see this specified one way or another anywhere. But your
interpretation could be better, or at least it's a lot easier to
implement.

> The latter interpretation doesn't seem real-world useful.

One potential use case would be a PARTIAL replacement. Like "show me
first 100 messages" where they get updated whenever messages get
expunged. But I guess that's not all that useful.

---

From: Dave Cridland <[email-masked]>
Date: Thu, 05 Jun 2008 09:54:48 +0100

> The latter interpretation doesn't seem real-world useful.

Yes, the MSNs in the SEARCH or SORT command are evaluated at the time  
the command is accepted. Not actually stated except in RFC 3501  
errata, I believe, so probably needs reiterating here. (UIDs are not  
specified in this way, but since UIDs are stable at least within a  
session, these are more predictable).

Equally, MSNs used within a response are evaluated at the time of the  
response.

So in your example, you'd see a REMOVEFROM which left the context  
empty, followed by an EXPUNGE, and that would be all. Confusingly,  
though, a PARTIAL would actually find a message, since the MSNs would  
be different.

So:

C: A01 SEARCH RETURN (ALL UPDATE) 2
S: * ESEARCH (TAG "A01") ALL 2
S: A01 OK Yarp.
[...]
S: * EXPUNGE 1
[...]
S: * ESEARCH (TAG "A01") REMOVEFROM (1 1)
S: * EXPUNGE 1
[...]
C: A02 SEARCH RETURN (ALL) 2
S: * ESEARCH (TAG "A02") ALL 2
S: A02 OK Yarp.

Dave.
-- 
Dave Cridland - mailto:[email-masked] - xmpp:[email-masked]
  - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
  - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade
_______________________________________________
lemonade mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/lemonade
Supplemental Web Site:
http://www.standardstrack.com/ietf/lemonade