[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: I-D ACTION:draft-ietf-imapext-i18n-06.txt
Dave Cridland writes:
4) Section 4.4:
I suspect that COMPARATOR is weak, but good enough for some
circumstances, albeit I'd prefer a more complex SEARCH. One problem
is that as specified, the example sequence B123 to B125 cannot be
pipelined.
Could we add a COMPARATOR SEARCH option, which would override the
comparator used for that command only? Something like:
B123 SEARCH COMPARATOR (i;octet) OR BODY GIF87A BODY GIF89A
I think Alexey's IMAP ABNF has the template syntax present for a
search option.
We had this and dropped it. 18 months ago? There weren't any good
examples, which always makes me feel bad. If one can't dream up at
least one good example for an extension, maybe that extension isn't so
useful in practice... so I asked whether any clients would use this and
whether anything would be lost by omitting the COMPARATOR search-key.
As I recall, noone stepped forward to speak in favour of the extra
search-key, and Mark spoke in favour of simplicity.
There are four options:
1. No way to change comparator within the search command. Simple to
implement for servers. Clients must change comparator before/after the
search command.
2. Comparator can be set at the start, much like CHARSET. A bit tricky
to do in the syntax, if I remember correctly, and saves a roundtrip or
two. Otherwise identical to the previous option.
3. A comparator thingy which can go between any two search-keys and
which changes the comparator used from that point onwards. (This is
what we had, if I remember correctly.)
4. A new search-key which takes a comparator name and a search-key, and
executes that search-key with that collation.
3 and 4 are subtly different. 3 is more like a preprocessor directive in
C, 4 is more like a wrapper function. To show the difference between
them, take this command:
a search or or body arnt or from arnt to arnt cc arnt
I'm using a MUA with proportional spacing, so no ASCII art, sorry.
You'll have to draw your own tree diagrams of this search.
Here are three variants with COMPARATOR:
b search comparator i;octet or or body arnt or from arnt to arnt cc arnt
c search or comparator i;octet or body arnt or from arnt to arnt cc arnt
d search or or comparator i;octet body arnt or from arnt to arnt cc arnt
Using 3, all these are the same. The 'comparator' is before the first
leaf node, so all four conditions are handled using i;octet. Using 4,
they're different. For b, all four conditions are handled using
i;octet. For c, i;octet is used only for body, from and to, while cc is
handled by the active comparator. For d, only the body condition is
subject to i;octet.
Which approach is the better one, 2, 3 or 4?
Is it good enough to be worth the bother? Will any client actually use
it? (Will it deter any server from offering the extension?)
Discussion, please.
Arnt