[Bug 24317] New: [xslt 3.0] Parallel splitting: the dynamic multi-coloured widgets problem

https://www.w3.org/Bugs/Public/show_bug.cgi?id=24317

            Bug ID: 24317
           Summary: [xslt 3.0] Parallel splitting: the dynamic
                    multi-coloured widgets problem
           Product: XPath / XQuery / XSLT
           Version: Last Call drafts
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: mike@saxonica.com
        QA Contact: public-qt-comments@w3.org

There is a streaming use case that we currently cannot handle, exemplified by
the following stylesheet:

<xsl:for-each-group select="/*/widget" group-by="colour"
   bind-group="g" bind-grouping-key="k">
  <xsl:result-document href="{$k}.xml">
   <widgets colour="{$k}">
     <xsl:sequence select="$g"/>
   </widgets>
  </xsl:result-document>
</xsl:for-each-group>

It's easy to see that this is in principle capable of executing with bounded
memory (or at worst, memory proportional to the number of colours encountered).

We can handle the case where the set of colours is known statically, by using
xsl:fork, but I don't think we have a solution for the case where the set of
colours is not known in advance.

One solution might simply be to deem xsl:for-each-group/@group-by to be
streamable (grounded) provided that the body of the instruction is an
xsl:result-document instruction.

Or of course, we might decide that this requirement is out of scope.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 17 January 2014 09:02:09 UTC