- From: <bugzilla@jessica.w3.org>
- Date: Tue, 13 Aug 2013 10:35:42 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=22936
Bug ID: 22936
Summary: [XSLT 3.0] Streamability : dynamic calls to context
dependent functions
Classification: Unclassified
Product: XPath / XQuery / XSLT
Version: Working drafts
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: mike@saxonica.com
QA Contact: public-qt-comments@w3.org
We say that a NamedFunctionRef is motionless.
Similarly we have no special rules for function-lookup().
However, in both cases these constructs are not as innocent as they seem,
because they capture the dynamic context at the point they are evaluated, and
use that dynamic context later when the resulting function is called.
For example:
<xsl:variable name="saved-current" select="current#0"/>
<xsl:for-each select="transaction">
<xsl:if test="value = $saved-current()/value">
...
</xsl:if>
</xsl:for-each>
is clearly not streamable.
So:
(a) A NamedFunctionRef should be free-ranging if the function is dependent on
(relevant parts of?) the dynamic context
(b) function-lookup() should always be free-ranging (because we have no way of
knowing what it might do).
(c) Partial function application could also be dangerous in the same way if we
had any focus-dependent functions with two or more arguments. Fortunately we
don't, though it seems a little odd to assume that.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Tuesday, 13 August 2013 10:35:43 UTC