Project

Profile

Help

Bug #2656

closed

Streaming: mixing striding and grounded posture

Added by Michael Kay about 6 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Streaming
Sprint/Milestone:
-
Start date:
2016-02-28
Due date:
% Done:

100%

Estimated time:
Legacy ID:
Applies to branch:
9.7
Fix Committed on Branch:
9.7
Fixed in Maintenance Release:
Platforms:

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

Actions #1

Updated by Michael Kay about 6 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.

Actions #2

Updated by Michael Kay about 6 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.

Actions #3

Updated by O'Neil Delpratt about 6 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

Also available in: Atom PDF