- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 23 Aug 2007 14:52:07 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=4980
Summary: Optimization rules
Product: XPath / XQuery / XSLT
Version: Working drafts
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: XQuery
AssignedTo: chamberl@almaden.ibm.com
ReportedBy: oliver@cbcl.co.uk
QAContact: public-qt-comments@w3.org
I am a bit confused as to what optimizations are permitted by the spec.
Could, for example,
let $x = codepoints-to-string(12)
return $x = $x
be legitimately optimized down to true(), despite the fact that
codepoints-to-string(12) should throw an FOCH0001 error?
Section 2.3.4 of the spec says:
"Consider an expression Q that has an operand (sub-expression) E. In general
the value of E is a sequence. At an intermediate stage during evaluation of the
sequence, some of its items will be known and others will be unknown. If, at
such an intermediate stage of evaluation, a processor is able to establish that
there are only two possible outcomes of evaluating Q, namely the value V or an
error, then the processor may deliver the result V without evaluating further
items in the operand E."
which seems to imply the above optimization is fine.
If this is correct then could the following expression be optimised down to
true() as well (which is clearly not the intention of the query)?
typeswitch(.)
case $a as xs:integer return true()
default return error()
Received on Thursday, 23 August 2007 14:52:13 UTC