- From: <bugzilla@jessica.w3.org>
- Date: Tue, 18 May 2010 07:00:24 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=9757
Summary: Group By Clause: Equivalence: "atomic" is incorrect
Product: XPath / XQuery / XSLT
Version: Working drafts
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: XQuery 1.1
AssignedTo: jonathan.robie@redhat.com
ReportedBy: jmdyck@ibiblio.org
QAContact: public-qt-comments@w3.org
[Reiterates point #1 from
http://lists.w3.org/Archives/Member/w3c-xsl-query/2009Nov/0075.html (Members
only)]
The definition of "equivalence" begins:
"Equivalence of two atomic values V1 and V2 is defined..."
However, the word "atomic" is incorrect, because either value might be an empty
sequence, which is not an atomic value.
(I don't think we have a term for "an atomic value or empty sequence".)
(a)
We could simply delete the word "atomic" from the definition. The procedure
would then appear to apply to any two values. (So, e.g. it would say that (1,2)
is not equivalent to itself.) Of course, it would still only be "invoked" with
atomic-or-empty values.
(b)
In addition to deleting "atomic", we could add:
"where each value is an atomic value or an empty sequence"
to the beginning of the definition.
(c)
Another possibility would be to expand the definition to actually handle any
two values. Note that in both uses of the procedure (in 'group by' clauses and
switch statements), the two values are the result of atomization. So we could
say something like:
Equivalence of two values V1 and V2 is defined by the following process:
1. Atomize each value.
2. If either resulting value is more than one item, error.
3. [proceed with existing rules]
This would then lead to somewhat briefer wording at the "call points".
(d)
One other possibility (mutually exclusive with (c), I think) occurred to me
when I noticed that the rules for equivalence have a similar shape to those for
'greater-than' in [Order By Clause]. We could possibly merge the two into one
procedure that, given two atomic-or-empty values V1 and V2, returns one of four
findings:
V1 is-greater-than V2
V1 is-less-than V2
V1 is-equivalent-to V2
V1 is-not-comparable-to V2
It would be nice if XQuery 1.1 didn't have to add yet another way to
compare two values.
Value Comparison (involving fn:compare)
General Comparison (involving "magnitude relationship")
fn:distinct-values
fn:deep-equal
"greater-than" (for order by)
and now "equivalence" (for group by and switch)
Did I miss any?
[This last bit is similar to Bug 8222, but that suggests merging 'equivalence'
with distinct-values(), whereas this suggests merging 'equivalence' with
'greater-than'.]
--
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
Received on Tuesday, 18 May 2010 07:00:29 UTC