[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: UID SEARCH responses
On Mon, 13 Aug 2007, Dave Cridland wrote:
RFC4731 defines MIN, MAX, and COUNT - none of which are part of this
discussion - and ALL - which you are contending is broken. ALL can be
deprecated and replaced by something else quite easily without affecting MIN,
MAX, COUNT, or the ESEARCH response as a whole.
You'll still have to create a new capability. Otherwise the client won't
know the difference between RFC 4731 compliant servers and RFC xxxx
compliant servers.
In addition, I still do not believe that there is consensus to do this - as
far as I can tell, there is only one voice in support of such an action. That
voice happens to have substantial weight as the author of RFC3501, however
neither author of RFC4731, nor any other implementor, has leant any support
to it, whereas there appears to me to be wide support in favour of retaining
the intended behaviour, and clarifying it in errata and a subsequent
revision.
I will vigorously oppose such a "clarification", including IESG appeals if
necessary.
I believe that I have strong arguments:
. although RFC 4315 has a syntax for UID sequence ranges that seem to
have the same semantics as the authors of RFC 4731 claim to have
intended, RFC 4315 uses its own rules to describe those ranges and
does not use sequence-set in order to indicate differing semantics.
. unlike RFC 4315, RFC 4466/4731 uses RFC 3501's sequence-set rule.
. there are two other ways in the base specification to accomplish
the functionality of acquiring the UID/msgno map.
. RFC 4731 says nothing about acquiring the UID/msgno map.
. RFC 4731 mentions use of the returned UID sequence-set in the
IMAP commands which have the RFC 3501 sequence-set semantics. My
interpretation is fully in compliance with this use.
. RFC 4731 gives, as a motivation, the desire to return a "more
compact" representation. My interpretation is fully in compliance
with this motivation, and in fact it is demonstrably more compact
than the contrary interpretation.
. The operation of obtaining the UID/msgno map is typically a one-time
operation in a session. Once the map is known to the client,
removal from the map can be mathematically calculated from an EXPUNGE
response, and additional to the map can be obtained with a short
map fetch.
. Searches typically are done many times in a session, and as noted
above the re-fetch of the map data is unnecessary.
. INBOX tends to have frequent expunges, and consequently the UID space
in an INBOX can become very sparse. Anecdotally (I can collect the
data if you insist), some people have very large INBOXes. In one
interpretation, ESEARCH optimizes search results; in the other, it
does not.
. In one interpretation, ESEARCH optimizes search results even if the
server does not allocate contiguous UID values in a mailbox. In
the other, it does not.
. I contend that the optimizing interpretion in the two previous points
is superior.
. No evidence has been offered to debunk the assertation that RFC 4731
is ambiguous.
. Assuming that RFC 4731 is ambiguous, server implementations with
either interpretation are fully compliant. The only issue is that a
client must be aware of the issue.
. Assuming that RFC 4731 is ambiguous on this point, there is an
existing deployed implementation that is fully compliant with RFC
4731 and would be broken by the proposed clarification. This is
therefore an incompatible change, not a clarification, and must be
designed and published as such.
I will also oppose, but less vigorously, a new specification that
deprecates ESEARCH entirely in favor of a new capability.
-- Mark --
http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.