Subject: CAP Questions and Comments

From: [email-masked]
Date: Fri, 18 Aug 2000 11:27:53 -0700 (PDT)

Doug, 

Here are some more questions and comments regarding the latest CAP draft. 

1) Are all the examples in the CAP draft in SQL-MIN format?

2) For SQL-MIN, there is apparently no way to seach for components based
on parameter value. Is this intended? If so, I presume that you need to
use the SQL-92 format, but there don't seem to be any examples of its use.

3) If you are allowing any SQL-92 statement that follows the schema, then
it looks like you could return data that is not representable in RFC2445
format, such as:

	SELECT VALUE_KEY FROM TRANSP WHERE VALUE=OPAQUE

I'd expect this to return a list of integers if it were issued to a
database. Does CAP automatically translate these value keys into
components? Or, are these disallowed?

4) What is capmin-coms, referenced in (5) of section 5.1.2, page 30?

5) What is the precedece for AND and OR in WHERE? For instance, how do you
interpret:
	
	WHERE x AND y OR z

6) In the SQL grammar section, there is no description of colvalue, other
than its use in capmin-cmp, and it looks like query-min and capselect-min
conflict.

7) 7.1.10.1.  UPNEXPAND Method

	UPNEXPAND is actually a command, right?

eric.

---

From: Doug Royer <[email-masked]>
Date: Fri, 18 Aug 2000 16:25:44 -0700

> 1) Are all the examples in the CAP draft in SQL-MIN format?

I'll check. If yes - did you find a bug?

> use the SQL-92 format, but there don't seem to be any examples of its use.

Would this suffice if we added this to SQL-MIN:

	QUERY:SELECT *
         FROM VEVENT
	 WHERE RECURRENCE-ID >= '20000801T000000Z'
	 AND RECURRENCE-ID <= '20000831T235959Z'
	 AND METHOD = 'CREATE'
         AND ORGANIZER.SENT-BY = cal-address

And change 'colname' to something like:

colname          = ( "*" / cap-prop / cap-propDotParam )

cap-prop         = ; Any valid iCal, iTIP, iMIP or CAP property.

cap-propDocParam = cap-prop 1*( "." cap-param)

cap-parm         = ; Any iCal,  iTIP, iMIP or CAP paramater
                   ; valid for the cap-prop used.

> components? Or, are these disallowed?

I'll add a statement something like

  The query is SQL, however all responses must be in VCALENDAR
  format. And as VALUE_KEY is not a VCALENDAR object, it would
  be an invalid query.

  I have also changed capmin-col to:

  capmin-col       = ; Any property name found in any of the components.
                     ; These are NOT schema names.

> 4) What is capmin-coms, referenced in (5) of section 5.1.2, page 30?

Typo - should have been capmin-comps.

> 5) What is the precedece for AND and OR in WHERE? For instance, how do you

The correct answer is what ever the precedience for SQL is.
I'll look it up.

> than its use in capmin-cmp, ...

Added:

  colvalue     = ; Any value valid for the colname selected.

and made:

  capmin-col   = ( ; Any property name found in any of the components.
                   ; These are NOT schema names.
                  / "*" )

> ...and it looks like query-min and capselect-min conflict.

Yep - I'll fix.

>         UPNEXPAND is actually a command, right?

Yep - fixed.

---

From: Eric Busboom <[email-masked]>
Date: Fri, 18 Aug 2000 23:17:32 -0700 (PDT)

>          AND ORGANIZER.SENT-BY = cal-address

In this case, an implementation has to distinguish between
property.parameter (ORGANIZER.SENT-BY) and component.property
(VALARM.TRIGGER). Ick. I like the simplicity of SQL-MIN, and would be
happier if it did not allow for searching by parameter, instead requiring
SQL-92 to search for parameters. ( Sorry if my question was leading ) 

Some SQL-92 examples would be really nice, and perhaps an explaination of
why there are two variants.
 
>   format. And as VALUE_KEY is not a VCALENDAR object, it would

And note what response code is generated when the query is not valid. 

eric.