- From: <bugzilla@wiggum.w3.org>
- Date: Fri, 06 Feb 2009 18:05:42 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5332 zhen hua liu <zhen.liu@oracle.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |zhen.liu@oracle.com --- Comment #8 from zhen hua liu <zhen.liu@oracle.com> 2009-02-06 18:05:42 --- This bug does not seemed to be resolved yet based on the latest XQUF spec. > > > From: w3c-xml-query-wg-request@w3.org [mailto:w3c-xml-query-wg-request@w3.org] On Behalf Of Zhen Liu > Sent: 05 February 2009 20:13 > To: w3c-xml-query-wg@w3.org > Subject: issues of vacuous expression in XQUF > > In the latest XQUF spec, vacuous expression is defined as > Definition: A vacuous expression is a simple expression that can only return an empty sequence or raise an error.] > I recall it is introduced because March 2008 version of XQuery scripting extension has > added vacuous expression concept and then XQUF started to adopt this concept. > > My first question: > ===================== > My understanding from the rest of XQUF spec that defines how vacuous expression is > determined is that the vacuous expression analysis is done statically. This means one can > figure this out without dynamic evaluation. If so, we shall fix the definition to reflect this. It is > not clear from the definition that vacuous expression is determined statically. > > Furthermore, what type of static analysis is allowed here ? > > For example, given the following expression: > if (fn:true()) then () else 3 > > If the static analysis is sophisticated, it can figure out this expression only returns empty sequence, > so it is a vacuous expression. But if one follows the current XQUF spec AS IS, this is not > vacuous expression. This appears to be quite inconsistent as the current XQUF can deduce that > if (cond) then () else () > as vacuous expression, but why not > if (fn:true()) then () else 3 > > My second question regarding to function call: > ======================================== > According to 2.5.6 Function call in XQUF, it states that a call to the built-in function fn:error() > is a vacuous expression. What about calling a function which always return empty sequence? > That function call shall be considered as vacuous expression, right ? > > If so, then just as 'updating' keyword, > 'vacuous' shall be used as a keyword to describe function as well > But this is not the case in the XQUF spec. > > The other situation is that in many situations, a caller may invoke functions defined in other modules > whose query text may not be available to do static analysis, in such case, > how could one determine if a > function call is vacuous unless vacuous is a keyword to describe a function. > > So it seems to me that introducing vacuous expression in XQUF appears to be unnecessary. > The latest XQuery scripting extension has dropped the vacuous expression category completely. > Shall we revert the XQUF back to the version which does not have vacuous expression > definition ? > > The trigger that promotes me on this is that the latest XQUF conformance tests start to add > test cases that require static analysis of vacuous expressions crossing typeswitch, conditional > expr, sequence expr etc. While adding static analysis to support vacuous expression determination > is a simple exercise, there appears to be some fundamental issues > regarding to vacuous expressions (described above) that needs to be resolved. > > Thanks > > zhen > -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Friday, 6 February 2009 18:05:51 UTC