<?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>4542</bug_id>
          
          <creation_ts>2007-05-04 23:41:12 +0000</creation_ts>
          <short_desc>[UPD] Section 2.6.1 fn:put: Remove it</short_desc>
          <delta_ts>2008-05-15 19:50:38 +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>Update Facility</component>
          <version>Working drafts</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Rys">mrys</reporter>
          <assigned_to name="Andrew Eisenberg">andrew.eisenberg</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>15018</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Rys">mrys</who>
    <bug_when>2007-05-04 23:41:12 +0000</bug_when>
    <thetext>Remove fn:put()! The semantics are almost completely implementation defined and not every implementation will support it. This does not belong into this spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15019</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2007-05-05 08:37:39 +0000</bug_when>
    <thetext>An update facility that doesn&apos;t allow you to create or delete documents in your database seems completely weird to me. If fn:put() is poorly defined then it needs to be better defined, not dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15020</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Rys">mrys</who>
    <bug_when>2007-05-05 19:40:09 +0000</bug_when>
    <thetext>Many implementations already have mechanisms to define and create documents inside a database. And these mechanisms are already well-defined and specific to the &quot;hosting&quot; environment and need more options than fn:put can provide in an interoperable way.

Adding a function like this to the language standard does not make sense since it assumes that the hosting environment for example is URI based. But many environment are not (e.g., SQL-2006&apos;s SQL/XML).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15298</commentid>
    <comment_count>3</comment_count>
    <who name="John Snelson">john.snelson</who>
    <bug_when>2007-06-06 16:07:34 +0000</bug_when>
    <thetext>(In reply to comment #2)
&gt; Adding a function like this to the language standard does not make sense since
&gt; it assumes that the hosting environment for example is URI based. But many
&gt; environment are not (e.g., SQL-2006&apos;s SQL/XML).

XQuery itself already assumes that the hosting environment is URI based, with it&apos;s specification of fn:doc() and fn:collection(). If you have an implementation of these functions then I imagine that you could equally well come up with a solution for the URI based fn:put().
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15305</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Rys">mrys</who>
    <bug_when>2007-06-06 19:33:22 +0000</bug_when>
    <thetext>Well, some implementations do not implement fn:doc() and fn:collection() because of the URL issue. Also note that creating documents using put needs potentially more complex functionality to talk about how the created objects gets mapped at the physical level (partitioning, filegroups/tablespaces etc).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15307</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2007-06-06 19:45:12 +0000</bug_when>
    <thetext>If it doesn&apos;t implement fn:doc() and fn:collection() then it&apos;s not an XQuery implementation; but any implementation does have the option of stating that in the dynamic context, the set of available documents and the set of available collections will always be empty. Similarly, I would expect an implementation to be required to implement fn:put(), but permitted to reject any particular URI that you might supply as an unrecognized URI. 

This might sound academic, but it&apos;s much easier to write interoperable applications when you know that the function will always be available, even though you might have to include run-time logic to cope with variations as to what URIs are accepted as arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15992</commentid>
    <comment_count>6</comment_count>
    <who name="Don Chamberlin">chamberl</who>
    <bug_when>2007-07-31 20:51:11 +0000</bug_when>
    <thetext>Michael,
On July 31, 2007, the Query working group considered this bug and decided to retain the fn:put() function as part of the Update specification. The working group hopes that you will find this resolution acceptable and will change the status of this item to &quot;Closed&quot;.
Regards,
Don Chamberlin (for the Query working group)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>20118</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Rys">mrys</who>
    <bug_when>2008-05-15 19:50:38 +0000</bug_when>
    <thetext>We still feel that fn:put() is an ill-specified function that is defining functionality that belongs to the embedding environment and will most likely not be supported interoperably in many implementations (if at all).

We will probably re-raise this issues in CR.
</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>