QT4 CG Meeting 162 Minutes 2026-04-28
Meeting index / QT4CG.org / Dashboard / GH Issues / GH Pull Requests
Table of Contents
- Summary of new and continuing actions
[0/12] - Draft Minutes
- 1. Administrivia
- 2. Technical agenda
- 2.1. PR #2470: 1310 Function fn:matching-segments
- 2.2. Issue 2489: fn:parts-of-dateTime, fn:parse-uri: names & types
- 2.3. Issue 2314: fn:error: return type xs:error ?
- 2.4. Issue 2312: Map/Array Filter: too much syntactic sugar?
- 2.5. PR #2593: 2592 Change number-parser option to number-format
- 2.6. PR #2589: 2587 Streamability of context value expressions
- 2.7. PR #2566: 1979 Records with type annotations
- 3. Any other business
Summary of new and continuing actions [0/12]
[ ]QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests[ ]QT4CG-144-01: MK to consider if any now lost value comparisons should be added as examples.[X]QT4CG-150-04: NW to see about a status update on PR #2345; possibly schedule discussion- Absent any recent feedback, I propose closing this for now
[ ]QT4CG-156-01: MK: add reference to data model in F&O 9.2[ ]QT4CG-156-03: MK to revise PR #2516 in light of the comments.[ ]QT4CG-158-01: MK to revisit the Conformance section to revise in light of #2556 error changes[ ]QT4CG-158-02: MK to addsystem-properties()keys for file and binary support[ ]QT4CG-160-01: MK to fix the markup error in method/method call in #2578[ ]QT4CG-160-02: NW to think about how to promote the dated drafts for broader community feedback.
Draft Minutes
1. Administrivia
1.1. Roll call [10/10]
[X]David J Birnbaum (DB)[X]Reece Dunn (RD)[X]Christian Grün (CG)[X]Joel Kalvesmaki (JK) [x:10-][X]Michael Kay (MK)[X]Juri Leino (JLO)[X]John Lumley (JWL)[X]Alan Painter (AP)[X]Wendell Piez (WP)[X]Norm Tovey-Walsh (NW) Scribe. Chair.
1.2. Accept the agenda
Proposal: Accept the agenda.
Accepted.
1.3. Approve minutes of the previous meeting
Proposal: Accept the minutes of the previous meeting.
Accepted.
1.4. Next meeting
The next meeting is planned for 5 May 2026.
No regrets heard.
1.5. Review of open action items [4/12]
[ ]QT4CG-143-02: MK to try to recover the ability to extract formal equivalences into tests[ ]QT4CG-144-01: MK to consider if any now lost value comparisons should be added as examples.[X]QT4CG-150-04: NW to see about a status update on PR #2345; possibly schedule discussion- Absent any recent feedback, I propose closing this for now
[ ]QT4CG-156-01: MK: add reference to data model in F&O 9.2[ ]QT4CG-156-03: MK to revise PR #2516 in light of the comments.[ ]QT4CG-158-01: MK to revisit the Conformance section to revise in light of #2556 error changes[ ]QT4CG-158-02: MK to addsystem-properties()keys for file and binary support[ ]QT4CG-160-01: MK to fix the markup error in method/method call in #2578[ ]QT4CG-160-02: NW to think about how to promote the dated drafts for broader community feedback.[X]QT4CG-161-01: MK to add a record parameter to thedm:record-getaccessor. (Editorial)[X]QT4CG-161-02: MK to review thebuild-dateTimeexample inwithand correct as necessary.[X]QT4CG-161-03: MK to review the grammar;withseems to be unreferenced.
1.6. Review of open pull requests and issues
This section summarizes all of the issues and pull requests that need to be resolved before we can finish. See Technical Agenda below for the focus of this meeting.
1.6.1. Blocked
The following PRs are open but have merge conflicts or comments which suggest they aren’t ready for action.
1.6.2. Substantive PRs
2. Technical agenda
2.1. PR #2470: 1310 Function fn:matching-segments
See PR #2470
- MK: This was previously bundled with the proposal for an
fn:regexfunction; it’s now been decoupled as requested.- … It’s sort of equivalent to
xsl:analyze-stringexcept that it returns the information in map form. - … It returns all the information about how a regex matches an input string in a single shot: including groups, etc.
- … It relies on disjoint matching segments which we already define.
- … It’s sort of equivalent to
MK reviews the examples in the specification.
- NW: Is it possible for the group keys to be non-sequential?
- MK: Yes, it’s a map because it can be sparse.
- JLO: Do we have an option to name groups?
- MK: No. That’s a feature of some regex dialects.
- JLO: We now get a sequence of maps only with matching segments. If I want to construct the string again out of the segments, that will be challenge.
- MK: A challenge for the reader! (Might be nice to have an example showing that.)
- JLO: In the date example, we do match on the hyphen, but they aren’t in the output. Is that intended?
- MK: Yes, it’s part of the substring as a whole but not of any group.
MK points back to disjoint-matching-segments where the processing model and logic are outlined.
Proposal: accept this PR.
Accepted.
2.2. Issue 2489: fn:parts-of-dateTime, fn:parse-uri: names & types
See issue #2489.
This issue is marked propose closing after discussion.
- CG: I wondered whether we should change than name of a couple of functions.
- … Majority of feedback was negative, I’m fine with that.
Proposal: close this issue with no further action.
Accepted.
2.3. Issue 2314: fn:error: return type xs:error ?
See issue #2314.
This issue is marked propose closing after discussion.
- CG: There was a long discussion in this issue; MK suggested changing the return type.
- MK: From the perspective of a reader of the spec, a return type of
xs:errormakes more sense. - JLO: Why is it a problem to implement
xs:erroras the return type? - MK: We declare the return type as
item()*because it stops the optimizer from making inferences and optimizing it away. - CG: Ok, I’ll do a PR.
Okay, that issue will get closed by that PR.
2.4. Issue 2312: Map/Array Filter: too much syntactic sugar?
See issue #2312.
This issue is marked propose closing after discussion.
- CG: I wonder if we should remove some syntactic sugar. The syntax
filter(?key, ?value)isn’t used anywhere else.- … We could just use map filter functions.
- MK: Remove the predicate for both maps and arrays. I think I’d probably go
along with that.
- … We started out with the idea that if something can be done with sequences, it should be just as easy with arrays.
- … But it’s another bit of syntax for people to remember and FLOWR
expressions are probably the first thing people will turn to. But there’s now
whereclause in XPath.
- RD: What’s the objection to adding the
whereclause to XPath? - MK: The
whereandorder byare the only things that operate on tuples of variable bindings.- … You can do weird things with that; it adds quite a bit of complexity. It
doesn’t reduce to just doing two nested
forexpressions.
- … You can do weird things with that; it adds quite a bit of complexity. It
doesn’t reduce to just doing two nested
- JWL: On the
for key $key value $v …expressionkeyandvalueare both keywords. - RD:
valueis full-text? It’s one of the extensions. - JLO: I have never noticed this syntax before; I found this hard to explain. I’m in favor of dropping it.
Some discussion of the syntax of the example and how arrays and sequences relate.
- MK: Not listed here, there are also ways of doing this with JNodes.
- CG: I can do a PR for it.
2.5. PR #2593: 2592 Change number-parser option to number-format
See PR #2593
- MK: This is removing some functionality in the interest of making things simpler.
- MK: We get rid of the
number-parserfunction and replace it withnumber-formatthat has three possible values.- … This is to do with what you do with numbers in the
parse-jsonfunction.
- … This is to do with what you do with numbers in the
- MK: In XPath 3, you always get double.
- MK: You can now choose to between double and decimal or base it on the lexical form.
MK describes the options.
Some discussion of different options for different fields. No, you don’t get that.
- CG: My preference would have been to make the adaptive behavior the default, but I can see why it isn’t.
Proposal: accept this PR.
Accepted.
2.6. PR #2589: 2587 Streamability of context value expressions
See PR #2589
- MK: This is all in the streaming spec.
- MK: This is a partial response to the long standing action that says we need to define the streamability of new construct.
- MK: Changing context item into context value caused lots of problems on my first attempt.
- MK: This is my attempt to define things so that it’ll work.
MK reviews the streamability rules for new constructs.
- MK: I’ll revise this after we accept the PR that removes map and array filter expressions.
2.7. PR #2566: 1979 Records with type annotations
See PR #2566
- MK: The only new thing here are some specific corrections from our review and
in addition the conflict with the query update syntax using the
withoperator.- … I changed the
withoperator to+:=(the record put operator).
- … I changed the
- MK: I also restricted it to records as requested.
- MK: There is more work needed on types and
instance of. It’s complete in it’s current form, I think it’s a good checkpoint.- … Named vs anonymous record types in
instance ofneeds some more thought.
- … Named vs anonymous record types in
- CG: I think it could be worthwhile to look at the comments on this PR.
- … The XQFO spec still talks about raising errors; other parts of the spec says the functions behave as before.
MK will review the comments and bring it back.
3. Any other business
- JLO: I got confirmation from Prague that I’ll be doing an XQuery 4.0 workshop.
- JWL: I’d say that the XSLT stuff is only about 1/8th of all the stuff so I wouldn’t worry to much about it.
- MK: I’m happy to help fill in on the XSLT side.