Re: CAP 13: Bad CAL-QUERY example / description?

[email protected] Fri, 11 Jun 2004 15:07:35 -0400
Newsgroups gmane.ietf.calendar
Message-ID <OF7C87E946.613661A2-ON85256EB0.006432F6-85256EB0.0068DD4D@notesdev.ibm.com>
Doug responded on 06/11/2004 01:40:31 PM:
> > 1: Component integrity is not always preserved.
> 
> 
> So you say. EXACTLY HOW?

Go reread my previous posts in this thread for citations and examples.  I 
wont repeat them here ad infinitum.

> >  There has been no justification given for the component-name.* use in 

> > the SELECT clause.  It results in data that is all mushed togther and 
> > not useable as returned.
> > 2: There are "special cases" in CAP that result in different formats 
> > returning the same data.  So far there has been no reason given for 
> > why we need the special cases really. 
> 
> Simply not true.

Actually it is true.  I have based all my points on actual CAP text and 
included relevant citations.  Please feel free to go and check them for 
accuracy and make corrections if I missed something.

Please show us how removing the BEGIN/END markers so that all properties 
and subcontainer properties are mixed together in an unusable is _not_ 
true?  One only has to try an actual example to see how useless this is. 

Try a VEVENT with 3 VALARMs: a display, an email and an audio alarm.  The 
VALARM ATTENDEE, ATTACH, DURATION, DESCRIPTION and SUMMARY properties of 
each VALARM will be freely mixed in with each others and those of the 
VEVENT making them inseparable in any meaningful way.  I am now strongly 
inclined to believe that this "component.*" concept is residual from the 
original SQL query modeling and serves no productive purpose in CAP-QL.

Please show us where in CAP it actually defines "*" in the SELECT clause 
as meaning "all properties and subcontainers" or "all properties and no 
subcontainers".

Please show us where in Section 6.1.1 where it gives an special meaning to 
"*" on VAGENDAs and VCALSTOREs thats different from other containers.

Now that I reread 6.1.1 in greater detal, please show how bullet item 4 in 
Section 6.1.1 does NOT actually prohibit querying for subcomponents?  That 
is, "SELECT DTSTART,DTEND,VALARM FROM VEVENT WHERE UID = '[email protected]'" 
is illegal by:

   4.  Everything in the "SELECT" clause and "WHERE" clauses in MUST BE
       from the same component type, or "VAGENDA" component OR
       "VCALSTORE" component in the "FROM" clause.
 
My proposal is intended to fix up all these ambiguities and unspecified 
things so that query behaviour is clear and consistant for all containers. 
 (Actually I just noticed that bullet #4 bit now and didnt address it but 
I think we should...)

Bruce
===========================================================================
Bruce Kahn                                INet: 
[email protected]
Messaging & Collaboration                 Phone: 978.399.6496
IBM Software Group                         FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...