Release 3.0.10
-
N-Triples/N-Quads:
- Single quote (') was missing from N-Triples/Quads escaped characters.
- Change N-Triples literal output encoding to limit the number of
ECHAR
escapes used based on Canonical form of N-Triples:- Within
STRING_LITERAL_QUOTE
, only the charactersU+0022
,U+005C
,U+000A
,U+000D
are encoded usingECHAR
.ECHAR **must not** be used for characters that are allowed directly in
STRING_LITERAL_QUOTE`.
- Within
- Fix bug in
NTriples::Reader.unescape
where it was overeager; now uses a string scanner to iterate through the string buffer.
-
Query:
- Make query validation optional. (Notation-3 patterns will appear to be invalid).
- Better support for non-distinguished variables.
- Calculate pattern cost based on position of variables.
- Add
Solutions#dup
. - Add
existential
modifier to variables. Note that this is not preserved from queries, which record the binding using the variable name, without other qualities. - Have solution iterators also return enumerators.
- Guard against nil bindings in solutions.
- Add
Solutions#merge
based on JOIN semantics.
-
Miscellaneous:
- Update Repository to remember statement options along with object, and not simply the object itself. This allows inferred statements to be added to the repo, and come back as having been inferred.
- Implement URI marshaling methods to avoid issue with serializing mutex.
- Dup components of a URI to avoid freeze issues.
- Support milliseconds in dateTime and time datatyped literals.