tarantool / crud

Easy assess to data stored in vshard cluster
BSD 2-Clause "Simplified" License
40 stars 14 forks source link

crud: store the cursor's `after_tuple` explicitly as a Lua table #387

Closed CuriousGeorgiy closed 1 year ago

CuriousGeorgiy commented 1 year ago

In scope of tarantool/tarantool#8147, a new context-dependent extension for box tuples, MP_TUPLE, is introduced. If the merger's buffer source is used, raw MsgPack is received, which does not allow for passing the context required for decoding MP_TUPLE.

At the same time, all box tuples are now encoded as MP_TUPLE by default. If the merger's tuple chunk can be decoded by manually skipping the extension header of MP_TUPLE and the tuple format of individual tuples, the cursor is decoded using the Lua msgpack library, which cannot handle MP_TUPLEs without a decoding context.

The cursor's after_tuple field is a box tuple, so in order to overcome the limitation above, we need to explicitly convert it to a Lua table.

I didn't forget about

Needed for tarantool/tarantool#8147