<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>29690</bug_id>
          
          <creation_ts>2016-06-08 15:59:43 +0000</creation_ts>
          <short_desc>[XSLT30] Streamability rules, &quot;must&quot; process using streaming when construct is guaranteed streamable</short_desc>
          <delta_ts>2017-01-30 12:52:10 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XPath / XQuery / XSLT</product>
          <component>XSLT 3.0</component>
          <version>Candidate Recommendation</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows NT</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Abel Braaksma">abel.braaksma</reporter>
          <assigned_to name="Michael Kay">mike</assigned_to>
          
          
          <qa_contact name="Mailing list for public feedback on specs from XSL and XML Query WGs">public-qt-comments</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>126709</commentid>
    <comment_count>0</comment_count>
    <who name="Abel Braaksma">abel.braaksma</who>
    <bug_when>2016-06-08 15:59:43 +0000</bug_when>
    <thetext>Perhaps the most important rule on streamability is found in 19.10 and says that:


1) If a construct is guaranteed-streamable then it MUST be processed using streaming.

This text, and the text around it, do not seem to say that when the supplied node is itself not a streamed node, then it will not be processed using streaming (consider the input to IMS, or a copy-of() call, or an apply-templates with a non-streamed input tree to a streamable mode).

I propose something along the following:

1) If a construct is guaranteed-streamable and the input tree is provided as a streamed node, then it MUST be processed using streaming.

I think this takes care of the scenarios where an input tree is not a streamed tree, or where a calling construct creates a non-streamed tree, or is itself invoked with a non-streamed tree.

We could add a Note that says that it is an API matter how a processor provides a streamed node as input. Note also that we do not forbid a non-streamed node as input (except for xsl:stream and xsl:merge-source).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126710</commentid>
    <comment_count>1</comment_count>
    <who name="Abel Braaksma">abel.braaksma</who>
    <bug_when>2016-06-08 16:11:28 +0000</bug_when>
    <thetext>Another angle to this is: consider an initial-function invocation with a streamable function, the streamable argument can be of type &quot;item()&quot;, but there is nothing to stream if you supply it a text node, or a string. In such cases, the current way 19.10, Rule (1) is written seems in conflict with itself..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126744</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2016-06-13 16:45:23 +0000</bug_when>
    <thetext>The WG accepted the proposed change, however the editor was actioned to check whether there was any interaction with the resolution to bug #29472.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127264</commentid>
    <comment_count>3</comment_count>
    <who name="Abel Braaksma">abel.braaksma</who>
    <bug_when>2016-09-01 15:19:17 +0000</bug_when>
    <thetext>I&apos;m wondering whether these changes have been applied to the most recent (last week&apos;s) internal WD. I didn&apos;t see a change log entry, and I think the original definition of this rule is still in place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>128426</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2017-01-30 12:52:10 +0000</bug_when>
    <thetext>On investigation I found that:

(a) the necessary changes have been applied to the spec

(b) for some reason the changes are tagged (quite wrongly) as belonging to the unrelated bug 29989

(c) there appears to be no entry in the change log.

I have fixed this.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>