Fix wrong marshalling for call17 & eval responses + add support for unknown request types and response body keys #77
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.
The problem
Hi! We use your library for our tarantool proxy and have encountered few flaws:
*Result
marshalling might be different from original sequence of bytes it was umarshalled from. It's a case at least for call17 and eval responses.The documentation specifies response as a list of values:
https://www.tarantool.io/en/doc/2.11/dev_guide/internals/iproto/requests/#iproto-call
Instead the library forcefully wraps it to be a list of tuples of values:
go-tarantool/result.go
Line 86 in 6f8008d
Additionally it skips unknown keys encountered in the body which might be critical for currently unsupported types of responses like IPROTO_ID:
go-tarantool/result.go
Line 106 in 6f8008d
go-tarantool/packet.go
Lines 117 to 120 in 6f8008d
The solution