Re: CAP-13: Another CAL-QUERY / VAGENDA question

[email protected] Fri, 4 Jun 2004 16:05:59 -0400
Newsgroups gmane.ietf.calendar
Message-ID <OF283E2CF7.05924674-ON85256EA9.006A9E84-85256EA9.006E3D5B@notesdev.ibm.com>
Doug responeded on 06/04/2004 12:05:36 PM:
> > Can anyone point me to the parts I missing that describe "*.*"?  I 
> > also question the need/use of "*.*" for VAGENDA and VCALSCALE.  Why 
> > aren't the same rules from Section 6.1.1 sufficient for VAGENDA and 
> > VCALSCALE but they are sufficient for all other components that have 
> > the same nesting structure?
[Snip, snip]
> We need a way to get top level properties and not contained components.
> And we need to way to get everything. '*' vs '*.*' just strings as far
> as I am concerned.

Ahh, now I see.  You dont need it for _retrieving_ top level properties, 
you want it for top level property _discovery_ w/o having to download the 
other subcomponents. 

Thats all fine I think but there is _no_ text in CAP that actually 
_defines_ this explicitly.  There are 2 uses of the phrase "the special 
'*.*' value" but there is no actual CAP text that describes this special 
value or its meaning (and how its different from "*").  Thats my point 
here.

Actually, I think there has been some misunderstanding about "*.*" as 
well.  In CAP-13 I read:

   To fetch all of the properties from the targeted VAGENDA and all of
   the contained components, use the special '*.*' value:

   SELECT *.* FROM VAGENDA

but how is this NOT equivalent to how "*" is used in Section 6.1.1?  That 
is:

   SELECT * FROM VAGENDA

should be the same equivalent as "(d) SELECT * FROM VEVENT" which is 
interpreted as:

       (d) Selects every property and every component
        that is in any "VEVENT" component...

They sure sound the same to me.  Yet I think Doug is saying that the "*" 
case for VAGENDAs and VCALSTOREs is not the same; that "*.*" is the proper 
equivalent.

There is also nothing in Section 6.1.1 that exempts VCALSTOREs and 
VAGENDAs from bullet item 7 that describes the use of "."  nor is there 
any text at all in CAP actually defining what the meaning of "*" is in 
CAP-QL (see other thread).

I can find no text in CAP-13 that says that "*" for VAGENDAs and 
VCALSTOREs is just properties and no subcontainers.  If this had been part 
of the changes we made over time, it got lost from CAP and needs to be put 
back (or in).  In addition, there needs

It is also worth noting that the "*.*" is NOT necessary for property 
retrieval, merely for discovery.  However its not _strinctly_ necessary 
since discovery can be done by using "*", you just have the added mush to 
wade thru.

So, to summarize if I can:

1: There is no text in CAP-13 that actually defines "*."* for VCALSTORE 
and VAGENDA.  There are 2 references to it but no actual defintion of it.
2: The addition of "*.*" for VCALSTORE and VAGENDA are strictly for top 
level property discovery.  It is not necessary for actual top level 
property retrieval.
3: There is text in CAP-13 that makes "*.*" for VAGENDAs / VCALSTOREs 
equivalent to using "*" on all other components (including VAGENDAs / 
VCALSTOREs). 
4: There was intent in the past to redefine "*" for VAGENDA / VCALSTORE to 
mean "no subcontainers, properties only" but we have no actual text to 
this effect.

As previous WG flare ups have shown, we should not leave this kind of 
intent unwritten in the draft for future readers to intuit.   I think we 
need to fill in some of the gaps with actual text expressly codifying our 
intentions.  Anyone averse to clearing this up?

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...