[UPD] The intention behind fn:put()

Dear all,

   this is a brief question with which I hope to get a clearer  
picture of the original intention behind the new built-in function  
fn:put() that has been added to the current XQuery Update Facility  
draft.

In 2.5.1., the draft says: ''[fn:put($node as node(), $uri as  
xs:string)] stores a document or element to the location specified by  
an xs:anyURI. This function is normally invoked to create a resource  
on an external storage system such as a file system or a database.''

What's the intended interpretation of 'external' in the above?

At least two interpretations come to mind:

(1) The node (and its descendants) are serialized/packaged up/encoded  
and then submitted to an *external system* ('external' in the sense  
of, e.g. 'remote, different host on a network'), maybe even via an  
HTTP PUT command (this is what the name fn:put() could suggest).

(2) The node (and its descendants) are serialized/packaged up/encoded  
in such a way that a system *external to the core query processor*  
(e.g., an underlying database back-end) can receive it and then store  
it for later access).

In both interpretations it is conceivable that an fn:doc() call using  
the same URI used during the fn:put() invocation can retrieve the  
node and its descendants.

(Please note that I realize that the interpretation of the URI used  
in fn:put() is implementation-defined and configurable such that, at  
the end of the day, I can realize both above interpretations and  
several more.  I am asking for the original intention that led to the  
proposal of fn:put().)

Thanks and cheers,
    --Torsten
--
   | Prof. Dr. Torsten Grust                         grust@in.tum.de |
   |                                 http://www-db.in.tum.de/~grust/ |
   |     Database Systems - Technische Universität München (Germany) |

Received on Tuesday, 8 August 2006 13:46:50 UTC