Subject: do the sample queries actually work?

From: Dan Winship <[email-masked]>
Date: 02 Apr 2003 18:38:21 -0500

There are only two examples in cap-10 of a complete response to a SEARCH
command, and both of them are errors. There really need to be some
example successful queries.

I think most of the examples currently in the spec are actually broken
given the current definitions. :-/

> If provided as "component-name.*", then only the properties and any
> contained components will be returned:
>
> SELECT VALARM.* FROM VEVENT WHERE UID = "123"
>
> Will return all of the properties in each "VALARM" component
> in the matching "VEVENT" component:
>
> TRIGGER;RELATED=END:PT5M
> REPEAT:4
> ...
> TRIGGER;RELATED=START:PT5M
> DURATION:PT10M
> ...
> ...

So how do I know whether the "REPEAT:4" is associated with the
RELATED=END alarm or the RELATED=START alarm? Even if you assume the CS
will return all of the pieces of one VALARM before any of the pieces of
the next VALARM (which the spec does not seem to require), there's no
way for sure to know where the dividing line between one alarm's
properties and the next's is (until you get to a duplicate property).

If this interpretation is right, then any query that uses "SELECT foo.*"
or "SELECT foo,bar" and can match more than one component is pretty much
useless. (eg, the examples in 6.1.1.15, 6.1.1.19, 6.1.1.20).

If "SELECT *" also doesn't return BEGIN/END fields (and its behavior in
SCOPEs and RESTRICTIONs seems to imply that it doesn't), then examples
6.1.1.17 and most of 6.1.1.18 are also useless for the same reason, and
6.1.1.16 is at best annoying (since you'd get back a mass of properties
without being told if the object they came from was a VEVENT or VTODO).

-- Dan