tarantool / tntcxx

Tarantool C++ connector
Other
8 stars 6 forks source link

Client: use new decoder #59

Closed drewdzzz closed 11 months ago

drewdzzz commented 1 year ago

The patch rewrites response decoding logic using new decoder. Field IPROTO_ERROR_24 is not parsed anymore - it is a duplicate of the last error message in the error stack. Also, the whole error stack is decoded now (before the patch, only the first value was decoded). MP_ERROR_FIELDS are still not decoded.

Public structure Data is reworked. Now you need to call data.decode method and pass a container of arrays - every tuple will be decoded as an array and put to the container.

CuriousGeorgiy commented 1 year ago

Obviously not related to your patch set, just noting this here. The CI failure looks very suspicious:

(libev) cannot allocate -32 bytes, aborting

I haven't checked this out yet, but it looks like we do not correctly handle this test case, i.e., using a connection that is not connected (sounds like an oxymoron). In light of this, I think it would be nice to add ASAN and, perhaps, valgrind workflows.