[Bug 9026] [Update 3.0] Inability to combine expressions creating pending updates & values

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

Jonathan Robie <jonathan.robie@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jonathan.robie@gmail.com

--- Comment #4 from Jonathan Robie <jonathan.robie@gmail.com> ---
Didn't we resolve this in Hurseley?

https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Jul/0092.html


Q2.1.2 Update primitive items, PULs as items, and Bugzilla Bug 9026,
[Update 3.0] Inability to combine expressions creating pending updates & values
See https://lists.w3.org/Archives/Member/w3c-xsl-query/2013Jul/0101.html

Status: In progress; see
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Jan/0052.html,
et al, and
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Feb/0116.html, et seq

See
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Mar/0010.html
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Feb/0123.html
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Feb/0126.html

1. "Minimalist" solution (2014Feb/0126.html) but complex queries will
   need extensive rewriting if they become updating
   . least editing work
   . probably least implementation work
   . keeps the complexity of different kinds of expressions & how they combine
   . "it's a hack"
   . hard to retract later

2. Full query mode (Josh has indicated Oracle doesn't want to implement)
   . hard to implement for some people

3. Allow more restrictive modes

4. Status quo
   . we have a MUST requirement, may get formal objections

Need more feedback from implementors in the WG
(Ghislain's Proposal)
Can we make one of the modes be the proposal and get rid of the modes?
It'd have to be the partial mode.

re-reading Ghislain's proposal...

Jonathan: it'll probably take a couple more weeks to add Ghislain's
"partitioned" [Liam's term] proposal to update.
Can live with it. Preferable to modes. Seems only viable approach today.

DECISION: accept the partial query mode from Ghislain's proposal in
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Jan/0052.html
but allowing updates inside constructors for nodes, maps and arrays.

ACTION A-579-19: John Snelson to incorporate Ghislain's proposal from
https://lists.w3.org/Archives/Member/w3c-xsl-query/2014Jan/0052.html
into update spec, but allowing updates inside constructors for nodes,
maps and arrays. ETA 9th September.

Jonathan's notes from the discussion [[
. Minimalist solution
- requires expressions combining updates + values to be extensively
rewritten.
- least editing work, easiest to write up
- keeps the complexity of different kinds of expressions and how they
combine

2. "Full query mode" as the only mode
- Oracle won't implement

3. Allow more restrictive modes
- Modes? compatibility!

4. Status quo

-------------

* FLWOR Expressions
If the query mode is query, only the return clause may be updating.
If the query mode is full, the constraint that the non­return
clauses in a FLWOR expression must be simple is relaxed.

* Typeswitch Expressions
If the query mode is query, the test expression must be simple.
If the query mode is full, the constraint that the test
expression must be simple is relaxed.

* Conditional Expressions
If the query mode is query, the test expression must be simple.
If the query mode is full, the constraint that the test expression must be
simple is relaxed.

* Switch Expressions­ Constructor functions
­ Simple map expressions
­ Validate expressions
­ Transform expressions (modify operand may also be updating in "query"
query mode!)
If the query mode is query, the test expression and the test clauses must
be simple.
If the query mode is full, there is no constraint.

* Expressions that may be simple or updating:

If the query mode is full, the following expressions are updating
if one of their direct operands is updating, simple otherwise.

If the query mode is query though, they are always simple and
operands must be simple as well (except the modify clause of a transform
expression).

­ Filter expressions
  a[b]
  error if b is updating
­ Simple dynamic function calls (operands may still be updating in "full"
query mode!)
  $a(b)
  error if b is updating
­ Simple static function call (operands may still be updating in "full"
query mode!)
  a(b)
  error if b is updating
­ Path expressions
  a/b
  error if b is updating
­ Comma expressions
  a,b
  error if b is updating? a or b?
­ Arithmetic expressions
  a*b
  error if b is updating? a or b?
­ String concatenation expressions
­ Comparison expressions
­ Logical expressions
­ Quantified expressions
­ Node constructors
  #### => Take this out of the list! (ask Josh nicely ....)
­ Unordered, ordered expressions
­ Instance/Cast/Castable/Treat expressions
­ Constructor functions
­ Simple map expressions
­ Validate expressions
­ Transform expressions (modify operand may also be updating in "query"
query mode!)

#=> Do not include map constructors, array constructors in this list
]]

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

Received on Tuesday, 28 October 2014 22:21:13 UTC