Project

Profile

Help

Bug #1918

Incorrect W3C streamability analysis for filter expressions

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

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
-
Start date:
2013-10-07
Due date:
% Done:

100%

Legacy ID:
Applies to branch:
Fix Committed on Branch:
Fixed in Maintenance Release:
Found in version:
9.5
Fixed in version:
9.5.1.3

Description

Given the code:

<xsl:variable name="thisNode" select="copy-of(.)"/>
<xsl:if test="$thisNode[tag[@k eq 'name:en'] and tag[@k eq 'name:ko']]">

where the context item is a streamed node, Saxon reports that the filter is not streamable according to W3C rules because it makes two downward selections.

Saxon is actually implementing the rules in the W3C draft correctly, but the rules in the (current published) W3C draft are incorrect.

Saxon implements two sets of streamability rules, the W3C rules and its own rules, and the Saxon rules in this case produce the correct answer, which means that streamed execution goes ahead. (The difference is that the Saxon rules recognise that the filter is being applied to a node which is not a streamed node.) The warning concerning the W3C rules is misleading, and will be removed.

History

#1 Updated by Michael Kay about 3 years ago

  • Project changed from Saxon - Development to Saxon

#2 Updated by O'Neil Delpratt about 3 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 0 to 100
  • Fixed in version set to 9.5.1.3

Big fix applied in the Saxon 9.5.1.3 maintenance release.

Also available in: Atom PDF