Project

Profile

Help

Bug #3465

closed

Loop-lifting optimization can make code non-streamable

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

Status:
Closed
Priority:
Normal
Assignee:
Category:
Streaming
Sprint/Milestone:
-
Start date:
2017-10-03
Due date:
% Done:

100%

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

Description

Martin Honnen on the help forum has provided a test case where loop lifting makes streamable code non-streamable. Specifically, in the streamable template

   <xsl:template match="itemA">
        <xsl:value-of select="for $col in $columns return @*[name() eq $col] || ''" separator=","/>
    </xsl:template>

the expression @* is lifted out of the for-expression. This means it gets bound to a local variable, and binding of streamed nodes to a variable is not allowed.

Please register to edit this issue

Also available in: Atom PDF