w3c / qtspecs

XSLT and XQuery Specifications - the source used to build the specs, and the errata
Other
30 stars 25 forks source link

[xslt30] Streamability of intersect and except expressions #40

Open michaelhkay opened 2 years ago

michaelhkay commented 2 years ago

In 19.8.8.4 rule 4, it is stated that for the union, intersect, and except expressions, if X and Y are both striding, then X op Y is crawling.

This is fine for union: given A/B union A/B/C, both operands are striding, but the result can contain nodes whose ancestors are also in the result, so the result must be crawling.

However, with intersect and except, the result is always a subset of the first operand, so if the first operand is striding, then the result must also be striding.