This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 29058 - [FO31] determinism of function calls with arrays and maps
Summary: [FO31] determinism of function calls with arrays and maps
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: Functions and Operators 3.1 (show other bugs)
Version: Candidate Recommendation
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
Depends on:
Reported: 2015-08-17 05:14 UTC by Abel Braaksma
Modified: 2016-12-16 19:55 UTC (History)
1 user (show)

See Also:


Description Abel Braaksma 2015-08-17 05:14:34 UTC
During the XSLWG we discussed the determinism of function calls under as it was implemented internally (we shared screen with Michael Kay, I don't see the same text in the internal draft yet).

The list of items that determine whether two calls can return the same (cached) result omits array and map arguments (function items are mentioned, but don't special-case arrays or maps, for which identity exists).

Also: under fn:collection, the link to "deterministic" does not lead to the term deterministic. Other links seem to work, but I didn't check all of them.
Comment 1 Abel Braaksma 2015-08-26 20:18:14 UTC
The link in comment#0 should be:, under section 1.7.4. Properties of functions, notably the numbered list.
Comment 2 Michael Kay 2015-09-02 17:05:27 UTC
I was actioned to produce a proposal. I propose to add to the list of conditions in 1.7.4 (Two values are defined to be *identical* if any of the following....)

3. Both items are maps, both maps have the same number of entries, and for every entry E1 in the first map there is an entry E2 in the second map such that the keys of E1 and E2 are *the same key*, and the corresponding values V1 and V2 are *identical*.

4. Both items are arrays, both arrays have the same number of members, and the members are pairwise *identical*

5 (was 3). Both items are function items, <add>neither is a map or an array</add>, and...
Comment 3 Michael Kay 2015-09-02 17:10:29 UTC
Although not yet approved by the WG, the proposed wording has been added to the specification.
Comment 4 Andrew Coleman 2015-09-08 16:29:43 UTC
The WG accepted the proposal and wording