[Bug 25316] [XSLT 3.0] Streamabilty and numeric predicates

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25316

--- Comment #3 from Michael Kay <mike@saxonica.com> ---
I was asked to produce a concrete wording proposal.

Proposal 

(A) in 19.8.7.8 change "For a filter expression of the form B[P]" to "For a
filter expression F of the form B[P]" 


(B) change rule 1 of 19.8.7.8 (Streamability of Filter Expressions) from

If B is crawling and consuming, and P is either a numeric literal, or a
variable reference whose static type is a subtype of U{xs:decimal, xs:double,
xs:float}, then crawling and consuming

to

If all the following conditions are satisifed:

* B is crawling and consuming;

* The static type of P is a subtype of U{xs:decimal, xs:double, xs:float}, or

* Neither P, nor any operand of P at any depth that has F as its focus-setting
container, is a context item expression, an axis expression, or a call on a
focus-dependent function other than last();

then crawling and consuming

(C) in section 19.2 (Determining Static Type), in the table entries for
AdditiveExpr and MultiplicativeExpr, qualify the current entries to say: "But
if the expression is a predicate (that is, if it appears between square
brackets in a filter expression or axis step), then U{xs:decimal, xs:double,
xs:float}. This type inference is possible because any other result of an
addition or subtraction [or multiplicative operation] within a predicate, for
example an xs:duration or xs:dateTime, would cause a type error, and static
type inference only needs to consider the type of non-error results.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Monday, 14 July 2014 15:49:14 UTC