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
ECHARescapes used based on Canonical form of N-Triples:- Within
STRING_LITERAL_QUOTE, only the charactersU+0022,U+005C,U+000A,U+000Dare encoded usingECHAR.ECHAR **must not** be used for characters that are allowed directly inSTRING_LITERAL_QUOTE`.
- Within
- Fix bug in
NTriples::Reader.unescapewhere 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
existentialmodifier 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#mergebased 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.