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


Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #8 from Michael Kay <mike@saxonica.com> ---
The following proposal was accepted:

(A) in 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 (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


If all the following conditions are satisfied:

* B is crawling;

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

* Neither P, nor any operand of P, at any depth provided it has F as its
focus-setting container, 
is a context item expression, an axis expression, or a call on a
focus-dependent function; [[it would be useful to explain the implications of
this rule]]

then striding and the sweep of B

(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.


(a) we don't recognize .//a[position() = 12] as striding - but this can be
rewritten .//a[12].

(b) we classify .//a[(1 to 5)] as striding, it actually throws a dynamic error,
but this doesn't affect the streamability analysis

(c) generally, give examples of where this analysis is helpful

In Streamability of Axis Steps, apply the same rules.

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

Received on Thursday, 31 July 2014 13:40:23 UTC