|
View:
New views
13 Messages
—
Rating Filter:
Alert me
|
|
|
XQuery Update Facility Working DraftsTwo new Working Drafts were published today: XQuery Update Facility W3C Working Draft 27 January 2006 http://www.w3.org/TR/2006/WD-xqupdate-20060127/ XQuery Update Facility Use Cases W3C Working Draft 27 January 2006 http://www.w3.org/TR/2006/WD-xqupdateusecases-20060127/ I wrote a quick summary of the functionality provided in the following blog entry: http://blogs.datadirect.com/jonathan_robie/2006/01/first_working_d.html Hope this is useful! Jonathan -- Read my Blog: http://blogs.datadirect.com/jonathan_robie/ Learn XQuery: http://media.datadirect.com/download/docs/ddxquery/tutorial_query.html Learn XQJ (the JDBC for XQuery): http://www.datadirect.com/developer/xquery/topics/xqj_tutorial/ Get DataDirect XQuery: http://www.datadirect.com/products/xquery/ |
|
|
Re: XQuery Update Facility Working DraftsI think it is useful to include another "move" update primitive. Although "move" can be achieved through combination of "insert" followed by "delete". It will be much more convenient to have a simple "move". I don't know what's the internal thinking on the expression level of the snapshot semantic: "In principle, upd:applyUpdates could be invoked at a
lower level, resulting in expression-level snapshot semantics. This
change would require other semantic changes to ensure deterministic
results. The Update Language Task Force is currently investigating the
issue of snapshot semantics."I have one suggestion here, which is based on the update mechanism used in Candle (http://www.vibrasoft.net/candle/manual.csp?pid=1038). Firstly, I think it is important to preserve the functional nature (i.e. side-effect free) of the XQuery functions. So I suggest to introduce a new routine type called "method" or "procedure". Within functions, there can be updated instructions, by no applyUpdate. Thus the function only returns an update list and has no side effect. "method" can contain mixture of flow control expr, update primitive and applyUpdate. "method" can call function, by function cannot call method. However, if we proceed along this line, allowing update instructions may seem redundant. And maintaining an update list can be complicated to implement. Thus in Candle the update instructions are excluded completely from the functions. And each update instruction takes effect immediately. Of course that becomes a totally different processing model. Regards Henry Jonathan Robie wrote:
|
|
|
XQuery Update Facility - Transaction ExpressionsI note that transaction semantics (wrt ACID) are not mentioned anywhere in the draft. Is this to be expected in subsequent drafts or that it has already been factored in ? Kuan Hui |
|
|
XQuery Update - unordered collection of update primitivesSection 2.1, Extensions to the Processing Model, carries the following definition. [Definition: A pending update list is an unordered collection of update primitives, which represent node state changes that have not yet been applied.] What is the significance of an <<unordered>> collection of update primitives ? How is updating integrity preserved with an unordered collection of update instructions ? I could not find an explicit description on the above and would appreciate clarifications. Thank you. Kuan Hui |
|
|
|
|
|
|
|
|
Re: XQuery Update - unordered collection of update primitivesLooking at the spec, I see that we didn't really say that. We should put a paragraph in the compatibility appendix to explain what Michael said below. Jonathan Michael Rys wrote: >The updating integrity is guaranteed by the commutability constraints >(only operations considered to be commutable are allowed). The reason >you want an unordered collection is that you can perform your updates >efficiently and potentially in parallel. > >Best regards >Michael > > > >>-----Original Message----- >>From: www-ql-request@... [mailto:www-ql-request@...] On >>Behalf Of TAN Kuan Hui >>Sent: Monday, January 30, 2006 5:07 AM >>To: Jonathan Robie; www-ql@... >>Subject: XQuery Update - unordered collection of update primitives >> >> >>Section 2.1, Extensions to the Processing Model, carries the following >>definition. >> >>[Definition: A pending update list is an unordered collection >>of update primitives, which represent node state changes that have not >>yet been applied.] >> >>What is the significance of an <<unordered>> collection of >>update primitives ? >>How is updating integrity preserved with an unordered >>collection of update >>instructions ? I could not find an explicit description on >>the above and >>would appreciate clarifications. >> >>Thank you. >> >>Kuan Hui >> >> >> >> >> >> >> >> -- Read my Blog: http://blogs.datadirect.com/jonathan_robie/ Learn XQuery: http://media.datadirect.com/download/docs/ddxquery/tutorial_query.html Learn XQJ (the JDBC for XQuery): http://www.datadirect.com/developer/xquery/topics/xqj_tutorial/ Get DataDirect XQuery: http://www.datadirect.com/products/xquery/ |
|
|
Re: XQuery Update Facility - Transaction ExpressionsMichael Rys wrote: >This has been factored in, in that we have the notion of a snapshot at >the top-level statement which needs to guarantee certain consistency >constraints. > >Note that we expect the update language to be used in many different >transaction environments and thus do not define a single transactional >semantics. This means you could use the statements in a fully >serializable transaction, or in an optimistic CC environment. > > I think the XQuery Update Facility Requirements says quite a bit about transactional characteristics here: http://www.w3.org/TR/2005/WD-xquery-update-requirements-20050603/#N1026E We say atomicity, consistency, and durability must be observed. We decided that isolation is a SHOULD, since it's not clear what we can reasonably achieve in the very wide variety of environments that have XQuery implementations - it would be nice if there were a good solution, but we're not at all confident we could find one, so isolation may wind up being implementation defined. The requirements also answer Kuan Hui's question about explicit support for transactions in XQuery syntax - we MAY add support for transactions within a given query, but do not see this as a requirement for our first updates recommendation. And our initial work on this was not promising, we found some problems that were difficult to solve. I'd rather get updates out quickly and think about finer grained transactions in a future version. We need some version of updates quickly, and if we stop to solve all interesting problems, it won't be quick. I think all of the things the requirements say about transactions should be stated explicitly in our spec - I do think the spec is consistent with our requirements, but it is not very explicit about that fact. Thanks, Kuan Hui! Jonathan -- Read my Blog: http://blogs.datadirect.com/jonathan_robie/ Learn XQuery: http://media.datadirect.com/download/docs/ddxquery/tutorial_query.html Learn XQJ (the JDBC for XQuery): http://www.datadirect.com/developer/xquery/topics/xqj_tutorial/ Get DataDirect XQuery: http://www.datadirect.com/products/xquery/ |
|
|
|
|
|
|
|
|
RE: XQuery Update Facility Working DraftsI remember raising a comment on the requirements document that there needed to be features for adding documents to a collection and deleting documents from a collection. I suspect that the task force is focusing its energy on more difficult/interesting problems... Michael Kay > -----Original Message----- > From: www-ql-request@... [mailto:www-ql-request@...] On > Behalf Of Michael Rys > Sent: 01 February 2006 21:40 > To: Fiebig, Thorsten; Jonathan Robie; www-ql@... > Subject: RE: XQuery Update Facility Working Drafts > > > The insert statement as currently defined needs a node as insertion > target. Since you cannot insert a document node into any > other node, you > cannot insert it using the insert statement. You should use a > mechanism > that is specific to your environment to insert documents. E.g. in SQL > you would use the SQL INSERT or UPDATE statement to insert the XML > document into a cell... > > Best regards > Michael > > > -----Original Message----- > > From: www-ql-request@... [mailto:www-ql-request@...] On Behalf > Of > > Fiebig, Thorsten > > Sent: Wednesday, February 01, 2006 1:22 PM > > To: Jonathan Robie; www-ql@... > > Subject: RE: XQuery Update Facility Working Drafts > > > > > > Hi, > > > > I like the update proposal, but I have one major concern. My current > > observation is that proposal allows the removal of document > nodes from > > an XDM instance via the "delete" operation. Assuming that my XDM > > instance represents an XML database I can remove a document (node) > from > > my database via the "delete" operation. > > On the other hand the constraints defined for the "insert" operation > > seem to forbid the insertion of document nodes into an XDM > instance. I > > have a problem with that, because from my point of view > this makes it > > impossible to insert new document nodes into a database via XQuery > > update. > > > > Best Regards, > > > > Thorsten Fiebig > > > > > > -----Original Message----- > > From: www-ql-request@... [mailto:www-ql-request@...] On Behalf > Of > > Jonathan Robie > > Sent: Friday, January 27, 2006 9:11 PM > > To: www-ql@... > > Subject: XQuery Update Facility Working Drafts > > > > > > Two new Working Drafts were published today: > > > > XQuery Update Facility > > W3C Working Draft 27 January 2006 > > http://www.w3.org/TR/2006/WD-xqupdate-20060127/ > > > > XQuery Update Facility Use Cases > > W3C Working Draft 27 January 2006 > > http://www.w3.org/TR/2006/WD-xqupdateusecases-20060127/ > > > > I wrote a quick summary of the functionality provided in > the following > > blog entry: > > > > > http://blogs.datadirect.com/jonathan_robie/2006/01/first_worki > ng_d.html > > > > Hope this is useful! > > > > Jonathan > > > > -- > > Read my Blog: http://blogs.datadirect.com/jonathan_robie/ > > Learn XQuery: > > > http://media.datadirect.com/download/docs/ddxquery/tutorial_query.html > > Learn XQJ (the JDBC for XQuery): > > http://www.datadirect.com/developer/xquery/topics/xqj_tutorial/ > > Get DataDirect XQuery: http://www.datadirect.com/products/xquery/ > > > > > > > > > |
|
|
Re: XQuery Update Facility Working DraftsMichael Rys wrote: > You should use a mechanism > that is specific to your environment to insert documents. E.g. in SQL > you would use the SQL INSERT or UPDATE statement to insert the XML > document into a cell... Unless, of course, you don't use a relational database and SQL/XML. It is desirable to have a standard way to add and remove documents from a collection - since there isn't currently a way to do this if you aren't using SQL/XML. in my opinion, this is a major ommission from the current XQuery Update specification. A lot of people out there are aiming to use XQuery as their only database manipulation language. John -- John Snelson, XML Consultant +44-1865-811184 Parthenon Computing Ltd http://blog.parthcomp.com/dbxml |
|
|
Re: XQuery Update - unordered collection of update primitivesI presume the commutability constrains you are refering to is required by section 3.5 Compatibility of Update Primitives. Is this a really necessary constrain ? Is parallel update <<on the same node>> a must requirement ? While I could appreciate the value of unordered execution for query processing, I am not too sure if the same is warranted for updating. Furthermore, whether you have an ordered or unordered collection of update primitives, it actually has no impact on XQuery update semantics since snapshot imposes a post-query update. Right ? This statement remains true even if expression level snapshots are considered, correct ? Unless it is really justified, I would suggest to the WG to consider removing the "unorder-ness" constrain on update primitives; it can potentially remove a lot of complicated rules from the specs. ----- Original Message ----- From: "Jonathan Robie" <jonathan.robie@...> To: "Michael Rys" <mrys@...> Cc: "TAN Kuan Hui" <kuanhui@...>; <www-ql@...> Sent: Monday, January 30, 2006 11:03 PM Subject: Re: XQuery Update - unordered collection of update primitives > Looking at the spec, I see that we didn't really say that. We should put > a paragraph in the compatibility appendix to explain what Michael said > below. > > Jonathan > > Michael Rys wrote: > > >The updating integrity is guaranteed by the commutability constraints > >(only operations considered to be commutable are allowed). The reason > >you want an unordered collection is that you can perform your updates > >efficiently and potentially in parallel. > > > >Best regards > >Michael > > > > > > > >>-----Original Message----- > >>From: www-ql-request@... [mailto:www-ql-request@...] On > >>Behalf Of TAN Kuan Hui > >>Sent: Monday, January 30, 2006 5:07 AM > >>To: Jonathan Robie; www-ql@... > >>Subject: XQuery Update - unordered collection of update primitives > >> > >> > >>Section 2.1, Extensions to the Processing Model, carries the following > >>definition. > >> > >>[Definition: A pending update list is an unordered collection > >>of update primitives, which represent node state changes that have not > >>yet been applied.] > >> > >>What is the significance of an <<unordered>> collection of > >>update primitives ? > >>How is updating integrity preserved with an unordered > >>collection of update > >>instructions ? I could not find an explicit description on > >>the above and > >>would appreciate clarifications. > >> > >>Thank you. > >> > >>Kuan Hui > >> > >> > >> > >> > >> > >> > >> > >> > > > -- > Read my Blog: http://blogs.datadirect.com/jonathan_robie/ > Learn XQuery: http://media.datadirect.com/download/docs/ddxquery/tutorial_query.html > Learn XQJ (the JDBC for XQuery): http://www.datadirect.com/developer/xquery/topics/xqj_tutorial/ > Get DataDirect XQuery: http://www.datadirect.com/products/xquery/ > > > |
| Free embeddable forum powered by Nabble | Forum Help |