Bug #2656
closed

Streaming: mixing striding and grounded posture
100%
Description
See spec bug 29507.
Saxon isn't able to stream expressions of the form
(/books/book, $extraBooks) / price
It complains that the expression needs sorting into document order. But it is streamable according to the spec, and there is a feasible strategy for evaluating the expression that doesn't involve buffering the streamed nodes (because these will always be in document order).
Updated by Michael Kay over 7 years ago
A patch is being committed that fixes this test case. It does so by means of a custom streamed implementation of document-sort expressions where the posture mixes striding and grounded nodes.
As part of the change, the rules for document order have been changed so streamed nodes always precede unstreamed nodes (this is possible because the spec leaves document order across different trees implementation-dependent). To achieve this, streamed documents are allocated negative document numbers.
More work is needed to see if this can be extended to crawling expressions.
Updated by Michael Kay over 7 years ago
- Status changed from New to Resolved
- Fix Committed on Branch 9.7 added
The patch seems to deal with the cases we know about.
The analogous crawling expressions are not streamable according to W3C rules - for details see the W3C bug entry.
Updated by O'Neil Delpratt about 7 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in Maintenance Release 9.7.0.4 added
Bug fix applied in the Saxon 9.7.0.4 maintenance release.
Please register to edit this issue