[Tarantool-patches] [PATCH 1/2] tuple: hide internal functions from box.tuple.*
Nikita Pettik
korablev at tarantool.org
Mon Mar 16 16:15:45 MSK 2020
On 15 Feb 19:08, Vladislav Shpilevoy wrote:
> box.tuple.bless, .encode, and .is are internal. Their
> behaviour is not documented, and they may omit some checks for the
> sake of speed, and can crash if used without thinking.
>
> Nonetheless, despite they are not documented, curious users could
> notice them in box.tuple.* output via autocompletion, for example.
> And they could try to use them. This is not ok.
>
> box.tuple.bless() being called by a user leads either to a crash,
> or to a leak (because it is basically tuple reference counter
> increment).
>
> box.tuple.encode() is kind of a wrapper around msgpack, and users
> should not touch it. It may change, may be removed. And is just
> makes no sense except some rare cases in schema.lua.
>
> bless() and encode() were used in schema.lua only, so the patch
> simply moves them to box.internal.tuple.
>
> box.tuple.is() is kept as is, because
> - this is used in the tests a lot;
> - it is totally safe;
> - that function actually makes sense, and some users could have
> already started using it.
>
> There is no a test, since nothing to test - bless() is not
> available for users anymore (assuming no one is brave enough to
> rely on box.internal).
LGTM
More information about the Tarantool-patches
mailing list