@qt4cg statuses
This page displays recent status updates about the QT4CG project.
The are also captured in an RSS feed.
By year: 2026, 2025, 2024, 2023, 2022, 2021, 2020
QT4 CG meeting 188 draft minutes #minutes-11-10
Draft minutes published.
Pull request #3058 created #created-3058
3057 Casting to records: use target %fixed values
…could be treated as editorial, as we have added extensible records just yesterday.
Closes #3057
Issue #3057 created #created-3057
Casting to a record type: use the target’s `%fixed` values
In the following example…
declare record R(x as xs:integer, %fixed f := 1);
declare record S extends R(%fixed f := 2);
S(1) cast as R
…the result is { "x": 1, "f": 2 }, labeled as R. The value of f is kept because S(1) is already an instance of R, and the %fixed check is skipped in that case.
As a result, the cast returns an R record whose fixed field differs from R’s declaration. A cast to R should give R’s fixed values.
Proposal: If a field is declared %fixed in the target record type, the cast always uses the target type’s initializer instead of the input value. An error is still raised if the input is not an instance of the target type and has a different value for the fixed field.
Pull request #3056 created #created-3056
3053 Guarded expressions: runtime type errors
Closes #3053
Issue #2831 closed #closed-2831
2809 fn:deep-equal, debug option: nondeterminism
Issue #2809 closed #closed-2809
fn:deep-equal, debug option
Issue #3055 closed #closed-3055
2567 Replace leftover %static with %fixed
Pull request #3055 created #created-3055
2567 Replace leftover %static with %fixed
This is a little follow-up, which renames %static to %fixed in my record-extending changes. I’ll merge it by myself.
Pull request #3054 created #created-3054
3050 Clarifications regarding errors and type inferences
Fix #3050
Issue #3053 created #created-3053
Guarded expressions: FLWOR
The current spec says in 2.6.5 Guarded Expressions:
In a FLWOR expression, an expression that is logically dependent on the tuples in the tuple stream is guarded by the existence of a relevant tuple. This applies even where the expression does not actually reference any of the variable bindings in the tuple stream.
This might inhibit implementations from performing optimizations that could speed up valid code. For example, two popular XQuery 4.0 processors returns FORG0006 for…
declare function f($n, $e) {
for $_ in 1 to $n where $e return 0
};
f(0, (1, 2))
BaseX in particular violates the guarded expression rule by rewriting this code to:
declare function f($n, $e) {
if($e) { (1 to $n) ! 0 }
};
f(0, (1 to 2))
I wonder how strict we want to be?
Issue #2991 closed #closed-2991
The trusted and trust-external options: detailed rules
Issue #3031 closed #closed-3031
2576 Match record types in the result of parse-json
Issue #3038 closed #closed-3038
Align record-declaration constraints with the definition of err:XPST0003
Issue #3021 closed #closed-3021
Change %static keyword
Issue #3039 closed #closed-3039
3021 Change keyword %static to %fixed
Issue #2998 closed #closed-2998
2991 Rules for Untrusted Functions
Issue #2948 closed #closed-2948
2919 fn:distinct-by
Issue #2567 closed #closed-2567
Allow one named record type to extend another
Issue #3037 closed #closed-3037
2567 Allow one named record type to extend another
Issue #2848 closed #closed-2848
Functions: (non)determinism
Issue #3042 closed #closed-3042
2848 Improve Discussion of Determinism
Issue #3043 closed #closed-3043
`coerce as`: explicit coercion
Issue #3044 closed #closed-3044
3043 `coerce as`: explicit coercion
Issue #2999 closed #closed-2999
Update: $replacement argument
Issue #3046 closed #closed-3046
2999 Update: $replacement argument
Issue #3047 closed #closed-3047
Atomization of JNode selectors
Issue #3048 closed #closed-3048
3047 Clarify Rules for JNode selectors
Issue #2786 closed #closed-2786
Clarify interoperability of fragment identifiers
Issue #2996 closed #closed-2996
IETF MIME Type Registrations
Issue #3040 closed #closed-3040
2996 Drop XQUery MIME-type Appendix
See 6357 more statuses in yearly archives.