Fix: support for CBOR chunked strings #236
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ES will split the large string values into chunks (of up to 3996 bytes),
even though the entire set of chunks is contained within the answer
(and thus chunking is unnecessary; this is similar to ES'es use of
CBOR undefined length arrays, as possibly programming convenience,
rather than considerations for the transport layers. HTTP/TCP layers
won't benefit from this behavior).
Confusingly, the tinycbor library won't distinguish between a container
of chunked string values and a container of a contiguous string value.
This PR corrects driver's handling of chunked string values:
references, if the value is chunked; this is mostly useful for fetching
object key names, which are part of the protocol and short (should
never be chunked);
be allocated by the tinycbor library.
into one contiguous value for the row string values (that will later
require conversion to UTF16).